Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.mdns.eu/nextcloud/passwords-client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius David Wieschollek <passwords.public@mdns.eu>2020-02-19 23:30:54 +0300
committerMarius David Wieschollek <passwords.public@mdns.eu>2020-02-19 23:30:54 +0300
commit44dc505f5a92427bda2cb74a7b9f40ff16c8f592 (patch)
treebd282c790700f059705da4a44f6e9172d8acb937
parent2f933ccfabf0b33fd25931bf174901c4db7d04de (diff)
Add settings api support to api
Signed-off-by: Marius David Wieschollek <passwords.public@mdns.eu>
-rw-r--r--src/Api/Api.js8
-rw-r--r--src/Converter/SettingConverter.js36
-rw-r--r--src/Model/AbstractModel.js4
-rw-r--r--src/Model/AbstractRevisionModel.js24
-rw-r--r--src/Model/CustomField/AbstractField.js6
-rw-r--r--src/Repositories/SettingRepository.js59
6 files changed, 89 insertions, 48 deletions
diff --git a/src/Api/Api.js b/src/Api/Api.js
index 75a6fbf..be87216 100644
--- a/src/Api/Api.js
+++ b/src/Api/Api.js
@@ -54,6 +54,8 @@ import CustomFieldCollection from '../Collection/CustomFieldCollection';
import CustomFieldConverter from '../Converter/CustomFieldConverter';
import Setting from '../Model/Setting/Setting';
import SettingRepository from '../Repositories/SettingRepository';
+import SettingConverter from '../Converter/SettingConverter';
+import SettingCollection from '../Collection/SettingCollection';
export default class Api {
@@ -302,13 +304,15 @@ export default class Api {
password: (...e) => { return new PasswordCollection(this.getInstance('converter.password'), ...e); },
folder : (...e) => { return new FolderCollection(this.getInstance('converter.folder'), ...e); },
field : (...e) => { return new CustomFieldCollection(this.getInstance('converter.field'), ...e); },
- tag : (...e) => { return new TagCollection(this.getInstance('converter.tag'), ...e); }
+ tag : (...e) => { return new TagCollection(this.getInstance('converter.tag'), ...e); },
+ setting : (...e) => { return new SettingCollection(this.getInstance('converter.setting'), ...e); }
},
converter : {
password: () => { return new PasswordConverter(this); },
folder : () => { return new FolderConverter(this); },
field : () => { return new CustomFieldConverter(this); },
- tag : () => { return new TagConverter(this); }
+ tag : () => { return new TagConverter(this); },
+ setting : () => { return new SettingConverter(this); }
},
model : {
password : Password,
diff --git a/src/Converter/SettingConverter.js b/src/Converter/SettingConverter.js
index 831c470..cd7bf8d 100644
--- a/src/Converter/SettingConverter.js
+++ b/src/Converter/SettingConverter.js
@@ -62,6 +62,42 @@ export default class SettingConverter {
}
/**
+ *
+ * @param {Object} object
+ * @return {SettingCollection}
+ */
+ fromApiObject(object) {
+ let settings = [];
+
+ for(let key in object) {
+ if(!object.hasOwnProperty(key)) continue;
+ let index = key.indexOf('.'),
+ scope = key.substr(0, index),
+ name = key.substring(index + 1),
+ value = object[key];
+
+ settings.push(this.fromObject({scope, name, value}));
+ }
+
+ return this._api.getClass('collection.setting', settings);
+ }
+
+ /**
+ * @param {SettingCollection} collection
+ * @return {Object[]}
+ */
+ toApiObject(collection) {
+ let object = {};
+
+ for(let setting of collection) {
+ let key = `${setting.scope}.${setting.name}`;
+ object[key] = setting.value;
+ }
+
+ return object;
+ }
+
+ /**
* @param {SettingCollection} collection
* @return {Object[]}
*/
diff --git a/src/Model/AbstractModel.js b/src/Model/AbstractModel.js
index 9a37d89..bf69014 100644
--- a/src/Model/AbstractModel.js
+++ b/src/Model/AbstractModel.js
@@ -36,7 +36,7 @@ export default class AbstractModel {
* @param {String} property
* @param {*} value
*
- * @return {AbstractModel}
+ * @return {this}
* @api
*/
setProperty(property, value) {
@@ -69,7 +69,7 @@ export default class AbstractModel {
/**
* @param {Object} properties
*
- * @return {AbstractModel}
+ * @return {this}
* @api
*/
setProperties(properties) {
diff --git a/src/Model/AbstractRevisionModel.js b/src/Model/AbstractRevisionModel.js
index 36c2a05..93c455c 100644
--- a/src/Model/AbstractRevisionModel.js
+++ b/src/Model/AbstractRevisionModel.js
@@ -13,7 +13,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {String} value
*
- * @return {AbstractModel}
+ * @return {this}
* @api
*/
setId(value) {
@@ -31,7 +31,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {string} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setRevision(value) {
@@ -49,7 +49,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {string} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setCseType(value) {
@@ -67,7 +67,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
*
* @param {string} value
- * @return {Password}
+ * @return {this}
* @api
*/
setCseKey(value) {
@@ -85,7 +85,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {string} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setSseType(value) {
@@ -103,7 +103,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {string} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setClient(value) {
@@ -121,7 +121,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {Boolean} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setHidden(value) {
@@ -147,7 +147,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {Boolean} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setTrashed(value) {
@@ -173,7 +173,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {Boolean} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setFavorite(value) {
@@ -191,7 +191,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {Date} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setEdited(value) {
@@ -209,7 +209,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {Date} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setCreated(value) {
@@ -227,7 +227,7 @@ export default class AbstractRevisionModel extends AbstractModel {
/**
* @param {Date} value
*
- * @return {Password}
+ * @return {this}
* @api
*/
setUpdated(value) {
diff --git a/src/Model/CustomField/AbstractField.js b/src/Model/CustomField/AbstractField.js
index c67efb7..d1576d7 100644
--- a/src/Model/CustomField/AbstractField.js
+++ b/src/Model/CustomField/AbstractField.js
@@ -46,7 +46,7 @@ export default class AbstractField extends AbstractModel {
/**
* @param {String} value
- * @return {AbstractField}
+ * @return {this}
*/
setType(value) {
return this;
@@ -61,7 +61,7 @@ export default class AbstractField extends AbstractModel {
/**
* @param {String} value
- * @return {AbstractField}
+ * @return {this}
*/
setLabel(value) {
this.label = value;
@@ -78,7 +78,7 @@ export default class AbstractField extends AbstractModel {
/**
* @param {String} value
- * @return {AbstractField}
+ * @return {this}
*/
setValue(value) {
this.value = value;
diff --git a/src/Repositories/SettingRepository.js b/src/Repositories/SettingRepository.js
index c24f63c..c6430df 100644
--- a/src/Repositories/SettingRepository.js
+++ b/src/Repositories/SettingRepository.js
@@ -8,8 +8,8 @@ export default class SettingRepository {
this._api = api;
/** @type Cache **/
this._cache = api.getInstance('cache.cache');
- /** @type AbstractConverter **/
- //this._converter = api.getInstance(`converter.setting`);
+ /** @type SettingConverter **/
+ this._converter = api.getInstance(`converter.setting`);
}
/**
@@ -22,56 +22,57 @@ export default class SettingRepository {
return this;
}
- findAll() {
- let request = this._api.getRequest()
- .setPath(`1.0/settings/list`);
+ async findAll() {
+ let request = await this._api.getRequest()
+ .setPath(`1.0/settings/list`)
+ .send();
+
+ return this._converter.fromApiObject(request.getData());
}
- findByScope(scope) {
- let request = this._api.getRequest()
+ async findByScope(scope) {
+ let request = await this._api.getRequest()
.setPath(`1.0/settings/list`)
- .setData([scope]);
+ .setData({scopes: [scope]})
+ .send();
+
+ return this._converter.fromApiObject(request.getData());
}
- findByScopes(scopes) {
- let request = this._api.getRequest()
+ async findByScopes(scopes) {
+ let request = await this._api.getRequest()
.setPath(`1.0/settings/list`)
- .setData([scopes]);
+ .setData({scopes})
+ .send();
+
+ return this._converter.fromApiObject(request.getData());
}
async findByName(name) {
- let data = await this._api.getRequest()
+ let request = await this._api.getRequest()
.setPath(`1.0/settings/get`)
.setData([name])
.send();
+
+ return this._converter.fromApiObject(request.getData());
}
- findByNames(names) {
- let request = this._api.getRequest()
+ async findByNames(names) {
+ let request = await this._api.getRequest()
.setPath(`1.0/settings/get`)
.setData(names);
+ return this._converter.fromApiObject(request.getData());
}
- set(setting) {
- let request = this._api.getRequest()
+ async set(setting) {
+ let request = await this._api.getRequest()
.setPath(`1.0/settings/set`)
.setData(setting);
}
- reset(setting) {
- let request = this._api.getRequest()
+ async reset(setting) {
+ let request = await this._api.getRequest()
.setPath(`1.0/settings/reset`)
.setData(setting);
}
-
- /**
- *
- * @param {Object} data
- * @returns {Promise<AbstractRevisionModel>}
- * @private
- */
- async _dataToModel(data) {
-
- return model;
- }
} \ No newline at end of file