/**
* Update the database to use the new ID system, which replaces linkdate primary keys.
- * Also, creation and update dates are now DateTime objects.
+ * Also, creation and update dates are now DateTime objects (done by LinkDB).
*
* Since this update is very sensitve (changing the whole database), the datastore will be
* automatically backed up into the file datastore.<datetime>.php.
*
+ * LinkDB also adds the field 'shorturl' with the precedent format (linkdate smallhash),
+ * which will be saved by this method.
+ *
* @return bool true if the update is successful, false otherwise.
*/
public function updateMethodDatastoreIds()
$links = array_reverse($links);
$cpt = 0;
foreach ($links as $l) {
- $l['created'] = DateTime::createFromFormat('Ymd_His', $l['linkdate']);
- if (! empty($l['updated'])) {
- $l['updated'] = DateTime::createFromFormat('Ymd_His', $l['updated']);
- }
unset($l['linkdate']);
$l['id'] = $cpt;
$this->linkDB[$cpt++] = $l;
return true;
}
+
+ /**
+ * Initialize API settings:
+ * - api.enabled: true
+ * - api.secret: generated secret
+ */
+ public function updateMethodApiSettings()
+ {
+ if ($this->conf->exists('api.secret')) {
+ return true;
+ }
+
+ $this->conf->set('api.enabled', true);
+ $this->conf->set(
+ 'api.secret',
+ generate_api_secret(
+ $this->conf->get('credentials.login'),
+ $this->conf->get('credentials.salt')
+ )
+ );
+ $this->conf->write($this->isLoggedIn);
+ return true;
+ }
}
/**