"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _utils = require("./utils"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var _class = function () { function _class(host, auth, headers) { _classCallCheck(this, _class); this.host = host; this.auth = auth; this.headers = headers; } _createClass(_class, [{ key: "get", value: function get(options) { var _this = this; var operationSettings = { "requiresBody": false, "queryParams": [{ "name": "guid", "nameCamelCase": "guid" }, { "name": "user_guid", "nameCamelCase": "userGuid" }, { "name": "key", "nameCamelCase": "key" }, { "name": "name", "nameCamelCase": "name" }, { "name": "namespace", "nameCamelCase": "namespace" }, { "name": "limit", "nameCamelCase": "limit" }, { "name": "offset", "nameCamelCase": "offset" }], "isApplicationJson": false, "isFormUrlEncoded": false, "method": "GET" }; return (0, _utils.getRequestOptions)(operationSettings, options).then(function (opts) { var uri = _this.host + "/organizations"; var auth = opts.auth || _this.auth; var headers = _this.headers || {}; // Layer in some options local to this class var requestOpts = Object.assign({ headers: headers }, opts, { auth: auth, uri: uri }); return (0, _utils.doRequest)(requestOpts).then(function (serverResponse) { switch (serverResponse.statusCode) { case 200: if (requestOpts.json) { return Promise.resolve(serverResponse.body); } else { return Promise.resolve(JSON.parse(serverResponse.body)); } default: return Promise.reject(new Error('Unknown response code: ' + serverResponse.statusCode)); } }); }); } }, { key: "getByKey", value: function getByKey(key, options) { var _this2 = this; var operationSettings = { "requiresBody": false, "queryParams": [], "isApplicationJson": false, "isFormUrlEncoded": false, "method": "GET" }; return (0, _utils.getRequestOptions)(operationSettings, options).then(function (opts) { var uri = _this2.host + "/organizations/" + key; var auth = opts.auth || _this2.auth; var headers = _this2.headers || {}; // Layer in some options local to this class var requestOpts = Object.assign({ headers: headers }, opts, { auth: auth, uri: uri }); return (0, _utils.doRequest)(requestOpts).then(function (serverResponse) { switch (serverResponse.statusCode) { case 200: if (requestOpts.json) { return Promise.resolve(serverResponse.body); } else { return Promise.resolve(JSON.parse(serverResponse.body)); } case 404: return Promise.reject({ status: serverResponse.statusCode, data: serverResponse.body }); default: return Promise.reject(new Error('Unknown response code: ' + serverResponse.statusCode)); } }); }); } }, { key: "post", value: function post(options) { var _this3 = this; var operationSettings = { "requiresBody": true, "bodyType": "organization_form", "queryParams": [], "isApplicationJson": true, "isFormUrlEncoded": false, "method": "POST" }; return (0, _utils.getRequestOptions)(operationSettings, options).then(function (opts) { var uri = _this3.host + "/organizations"; var auth = opts.auth || _this3.auth; var headers = _this3.headers || {}; // Layer in some options local to this class var requestOpts = Object.assign({ headers: headers }, opts, { auth: auth, uri: uri }); return (0, _utils.doRequest)(requestOpts).then(function (serverResponse) { switch (serverResponse.statusCode) { case 200: if (requestOpts.json) { return Promise.resolve(serverResponse.body); } else { return Promise.resolve(JSON.parse(serverResponse.body)); } case 409: return Promise.reject({ status: serverResponse.statusCode, data: serverResponse.body }); default: return Promise.reject(new Error('Unknown response code: ' + serverResponse.statusCode)); } }); }); } }, { key: "putByKey", value: function putByKey(key, options) { var _this4 = this; var operationSettings = { "requiresBody": true, "bodyType": "organization_form", "queryParams": [], "isApplicationJson": true, "isFormUrlEncoded": false, "method": "PUT" }; return (0, _utils.getRequestOptions)(operationSettings, options).then(function (opts) { var uri = _this4.host + "/organizations/" + key; var auth = opts.auth || _this4.auth; var headers = _this4.headers || {}; // Layer in some options local to this class var requestOpts = Object.assign({ headers: headers }, opts, { auth: auth, uri: uri }); return (0, _utils.doRequest)(requestOpts).then(function (serverResponse) { switch (serverResponse.statusCode) { case 200: if (requestOpts.json) { return Promise.resolve(serverResponse.body); } else { return Promise.resolve(JSON.parse(serverResponse.body)); } case 409: return Promise.reject({ status: serverResponse.statusCode, data: serverResponse.body }); default: return Promise.reject(new Error('Unknown response code: ' + serverResponse.statusCode)); } }); }); } }, { key: "deleteByKey", value: function deleteByKey(key, options) { var _this5 = this; var operationSettings = { "requiresBody": false, "queryParams": [], "isApplicationJson": false, "isFormUrlEncoded": false, "method": "DELETE" }; return (0, _utils.getRequestOptions)(operationSettings, options).then(function (opts) { var uri = _this5.host + "/organizations/" + key; var auth = opts.auth || _this5.auth; var headers = _this5.headers || {}; // Layer in some options local to this class var requestOpts = Object.assign({ headers: headers }, opts, { auth: auth, uri: uri }); return (0, _utils.doRequest)(requestOpts).then(function (serverResponse) { switch (serverResponse.statusCode) { case 204: return Promise.resolve(); default: return Promise.reject(new Error('Unknown response code: ' + serverResponse.statusCode)); } }); }); } }, { key: "getAttributesByKey", value: function getAttributesByKey(key, options) { var _this6 = this; var operationSettings = { "requiresBody": false, "queryParams": [{ "name": "name", "nameCamelCase": "name" }, { "name": "limit", "nameCamelCase": "limit" }, { "name": "offset", "nameCamelCase": "offset" }], "isApplicationJson": false, "isFormUrlEncoded": false, "method": "GET" }; return (0, _utils.getRequestOptions)(operationSettings, options).then(function (opts) { var uri = _this6.host + "/organizations/" + key + "/attributes"; var auth = opts.auth || _this6.auth; var headers = _this6.headers || {}; // Layer in some options local to this class var requestOpts = Object.assign({ headers: headers }, opts, { auth: auth, uri: uri }); return (0, _utils.doRequest)(requestOpts).then(function (serverResponse) { switch (serverResponse.statusCode) { case 200: if (requestOpts.json) { return Promise.resolve(serverResponse.body); } else { return Promise.resolve(JSON.parse(serverResponse.body)); } default: return Promise.reject(new Error('Unknown response code: ' + serverResponse.statusCode)); } }); }); } }, { key: "getAttributesByKeyAndName", value: function getAttributesByKeyAndName(key, name, options) { var _this7 = this; var operationSettings = { "requiresBody": false, "queryParams": [], "isApplicationJson": false, "isFormUrlEncoded": false, "method": "GET" }; return (0, _utils.getRequestOptions)(operationSettings, options).then(function (opts) { var uri = _this7.host + "/organizations/" + key + "/attributes/" + name; var auth = opts.auth || _this7.auth; var headers = _this7.headers || {}; // Layer in some options local to this class var requestOpts = Object.assign({ headers: headers }, opts, { auth: auth, uri: uri }); return (0, _utils.doRequest)(requestOpts).then(function (serverResponse) { switch (serverResponse.statusCode) { case 200: if (requestOpts.json) { return Promise.resolve(serverResponse.body); } else { return Promise.resolve(JSON.parse(serverResponse.body)); } case 404: return Promise.reject({ status: serverResponse.statusCode, data: serverResponse.body }); default: return Promise.reject(new Error('Unknown response code: ' + serverResponse.statusCode)); } }); }); } }, { key: "putAttributesByKeyAndName", value: function putAttributesByKeyAndName(key, name, options) { var _this8 = this; var operationSettings = { "requiresBody": true, "bodyType": "attribute_value_form", "queryParams": [], "isApplicationJson": true, "isFormUrlEncoded": false, "method": "PUT" }; return (0, _utils.getRequestOptions)(operationSettings, options).then(function (opts) { var uri = _this8.host + "/organizations/" + key + "/attributes/" + name; var auth = opts.auth || _this8.auth; var headers = _this8.headers || {}; // Layer in some options local to this class var requestOpts = Object.assign({ headers: headers }, opts, { auth: auth, uri: uri }); return (0, _utils.doRequest)(requestOpts).then(function (serverResponse) { switch (serverResponse.statusCode) { case 200: if (requestOpts.json) { return Promise.resolve(serverResponse.body); } else { return Promise.resolve(JSON.parse(serverResponse.body)); } case 201: if (requestOpts.json) { return Promise.resolve(serverResponse.body); } else { return Promise.resolve(JSON.parse(serverResponse.body)); } case 404: return Promise.reject({ status: serverResponse.statusCode, data: serverResponse.body }); case 409: return Promise.reject({ status: serverResponse.statusCode, data: serverResponse.body }); default: return Promise.reject(new Error('Unknown response code: ' + serverResponse.statusCode)); } }); }); } }, { key: "deleteAttributesByKeyAndName", value: function deleteAttributesByKeyAndName(key, name, options) { var _this9 = this; var operationSettings = { "requiresBody": false, "queryParams": [], "isApplicationJson": false, "isFormUrlEncoded": false, "method": "DELETE" }; return (0, _utils.getRequestOptions)(operationSettings, options).then(function (opts) { var uri = _this9.host + "/organizations/" + key + "/attributes/" + name; var auth = opts.auth || _this9.auth; var headers = _this9.headers || {}; // Layer in some options local to this class var requestOpts = Object.assign({ headers: headers }, opts, { auth: auth, uri: uri }); return (0, _utils.doRequest)(requestOpts).then(function (serverResponse) { switch (serverResponse.statusCode) { case 204: return Promise.resolve(); case 401: return Promise.reject({ status: serverResponse.statusCode, data: serverResponse.body }); case 404: return Promise.reject({ status: serverResponse.statusCode, data: serverResponse.body }); default: return Promise.reject(new Error('Unknown response code: ' + serverResponse.statusCode)); } }); }); } }]); return _class; }(); exports.default = _class;