summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Popov <info@valentineus.link>2017-11-23 17:42:47 +0300
committerValentin Popov <info@valentineus.link>2017-11-23 17:44:30 +0300
commit4bf6f61131af5a3b7847e5e0491eb218120faba2 (patch)
tree663c5bc0aea8c5573a75d4621dbc0487957b1000
parent3da34ec7f132cae85d5b49a2f39b33fb7f090ce1 (diff)
downloadlocal_webhooks-4bf6f61131af5a3b7847e5e0491eb218120faba2.tar.xz
local_webhooks-4bf6f61131af5a3b7847e5e0491eb218120faba2.zip
External backup function
-rw-r--r--index.php2
-rw-r--r--lib.php26
-rw-r--r--restorebackup.php10
3 files changed, 29 insertions, 9 deletions
diff --git a/index.php b/index.php
index 8fb92f2..318520a 100644
--- a/index.php
+++ b/index.php
@@ -54,7 +54,7 @@ $callbacks = local_webhooks_get_list_records();
/* Upload settings as a file */
if (boolval($backupservices)) {
- $filecontent = local_webhooks_archiving_data($callbacks);
+ $filecontent = local_webhooks_create_backup();
$filename = "webhooks_" . date("U") . ".backup";
send_file($filecontent, $filename, 0, 0, true, true);
}
diff --git a/lib.php b/lib.php
index ab20526..c423e9b 100644
--- a/lib.php
+++ b/lib.php
@@ -109,6 +109,32 @@ function local_webhooks_update_record($data, $insert = true) {
}
/**
+ * Make a backup copy of all the services.
+ *
+ * @return string
+ */
+function local_webhooks_create_backup() {
+ $listservices = local_webhooks_get_list_records();
+ $listservices = local_webhooks_archiving_data($listservices);
+ return $listservices;
+}
+
+/**
+ * Restore the data from the backup.
+ *
+ * @param string $data
+ */
+function local_webhooks_restore_backup($listservices = "") {
+ $listservices = local_webhooks_unarchive_data($listservices);
+
+ local_webhooks_remove_list_records();
+
+ foreach ($listservices as $servicerecord) {
+ local_webhooks_update_record($servicerecord, true);
+ }
+}
+
+/**
* Compress an array into a string.
*
* @param array $data
diff --git a/restorebackup.php b/restorebackup.php
index b4cfce0..011de03 100644
--- a/restorebackup.php
+++ b/restorebackup.php
@@ -46,14 +46,8 @@ if ($mform->is_cancelled()) {
/* Processing the received file */
if ($data = $mform->get_data()) {
- $content = $mform->get_file_content("backupfile");
- $callbacks = local_webhooks_unarchive_data($content);
-
- local_webhooks_remove_list_records();
- foreach ($callbacks as $callback) {
- local_webhooks_update_record($callback, true);
- }
-
+ $content = $mform->get_file_content("backupfile");
+ local_webhooks_restore_backup($content);
redirect($managerservice, new lang_string("restorefinished", "moodle"));
}