UNPKG

libzotero

Version:
92 lines (71 loc) 2.19 kB
'use strict'; var log = require('./Log.js').Logger('libZotero:Client'); var Fetcher = require('./Fetcher.js'); var Client = function Client() { var apiKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; this._apiKey = apiKey; this.net = require('./Net.js'); }; Client.prototype.getUserGroups = function (userID) { var aparams = { 'target': 'userGroups', 'libraryType': 'user', 'libraryID': userID, 'order': 'title' }; if (this._apiKey) { aparams['key'] = this._apiKey; } return Zotero.ajaxRequest(aparams).then(function (response) { log.debug('fetchUserGroups proxied callback', 3); var groupJson = response.data; var groups = groupJson.map(function (groupObj) { return new Zotero.Group(groupObj); }); var fetchedGroups = groups.addGroupsFromJson(response.data); response.fetchedGroups = fetchedGroups; return response; }); }; Client.prototype.getUserPublications = function (userID) { var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; log.debug('Zotero.Client.loadPublications', 3); var defaultConfig = { target: 'publications', start: 0, limit: 50, order: Zotero.config.defaultSortColumn, sort: Zotero.config.defaultSortOrder, include: 'bib' }; var urlconfig = Z.extend({}, defaultConfig, config, { 'target': 'publications', 'libraryType': 'user', 'libraryID': userID }); var fetcher = new Fetcher(urlconfig); return fetcher.fetchAll().then(function (results) { return results.map(function (itemObj) { return new Zotero.Item(itemObj); }); }); }; Client.prototype.getKeyPermissions = function () { var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; if (!key) { return false; } var urlconfig = { 'target': 'key', 'apiKey': key, 'libraryType': '' }; return Zotero.ajaxRequest(urlconfig).then(function (response) { var keyObject = JSON.parse(response.data); return keyObject; }); }; Client.prototype.deleteKey = function () { var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; if (!key) { return false; } return this.net.ajax(); }; module.exports = Client;