/** * @return void */ public static function checkOrg() { try { if (!\PodioOrganization::get(self::$orgId)) { die('Not member of org.'); } } catch (\PodioForbiddenError $e) { die('Not member of org.'); } }
function do_backup($downloadFiles) { global $config, $verbose; if ($verbose) { echo "Warning: This script may run for a LONG time\n"; } $currentdir = getcwd(); $timeStamp = date('Y-m-d_H-i'); $backupTo = $config['backupTo']; $path_base = $backupTo . '/' . $timeStamp; mkdir($path_base); $podioOrgs = PodioOrganization::get_all(); foreach ($podioOrgs as $org) { //org_id if ($verbose) { echo "Org: " . $org->name . "\n"; } $path_org = $path_base . '/' . fixDirName($org->name); mkdir($path_org); $contactsFile = ''; try { $contacts = PodioFetchAll::iterateApiCall('PodioContact::get_for_org', $org->org_id); $contactsFile .= contacts2text($contacts); } catch (PodioError $e) { show_error($e); $contactsFile .= "\n\nPodio Error:\n" . $e; } file_put_contents($path_org . '/' . 'podio_organization_contacts.txt', $contactsFile); foreach ($org->spaces as $space) { // space_id if ($verbose) { echo "Space: " . $space->name . "\n"; } $path_space = $path_org . '/' . fixDirName($space->name); mkdir($path_space); $contactsFile = ''; try { if ($space->name == "Employee Network") { $filter = array('contact_type' => 'user'); } else { $filter = array('contact_type' => 'space'); } $contacts = PodioFetchAll::iterateApiCall('PodioContact::get_for_space', $space->space_id, $filter); $contactsFile .= contacts2text($contacts); } catch (PodioError $e) { show_error($e); $contactsFile .= "\n\nPodio Error:\n" . $e; } file_put_contents($path_space . '/' . 'podio_space_contacts.txt', $contactsFile); $spaceApps = array(); try { $spaceApps = PodioApp::get_for_space($space->space_id); RateLimitChecker::preventTimeOut(); } catch (PodioError $e) { show_error($e); } foreach ($spaceApps as $app) { backup_app($app, $path_space, $downloadFiles); } } } if ($verbose) { show_success("Backup Completed successfully to " . $currentdir . "/" . $backupTo . "/" . $timeStamp); } }