UNPKG

baasic-sdk-javascript

Version:

JavaScript SDK provides core functionality for building web and mobile applications on [Baasic](http://www.baasic.com/).

147 lines (146 loc) 7.6 kB
"use strict"; /* globals module */ /** * @module organizationClient * @description Organization Client provides Baasic route templates which can be expanded to Baasic REST URIs. Various services can use Baasic Organization Route Service to obtain needed routes while other routes will be obtained through HAL. By convention, all route services use the same function names as their corresponding services. */ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var inversify_1 = require("inversify"); ; var httpApi_1 = require("../../../httpApi"); var _1 = require("./"); var OrganizationClient = /** @class */ (function () { function OrganizationClient(organizationRoute, organizationBatchClient, apiClient) { this.organizationRoute = organizationRoute; this.organizationBatchClient = organizationBatchClient; this.apiClient = apiClient; } Object.defineProperty(OrganizationClient.prototype, "routeDefinition", { get: function () { return this.organizationRoute; }, enumerable: true, configurable: true }); Object.defineProperty(OrganizationClient.prototype, "batch", { get: function () { return this.organizationBatchClient; }, enumerable: true, configurable: true }); /** * Returns a promise that is resolved once the find action has been performed. Success response returns a list of organization resources matching the given criteria. * @method * @param options Query resource options object. * @returns A promise that is resolved once the find action has been performed. * @example organizationClient.find({ pageNumber : 1, pageSize : 10, orderBy : '<field>', orderDirection : '<asc|desc>', search : '<search-phrase>' }) .then(function (collection) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ OrganizationClient.prototype.find = function (options) { return this.apiClient.get(this.routeDefinition.find(options)); }; /** * Returns a promise that is resolved once the get action has been performed. Success response returns the organization resource. * @method * @param id Organization id which uniquely identifies resource that needs to be retrieved. * @param options Query resource options object. * @returns A promise that is resolved once the get action has been performed. * @example organizationClient.get(id, options) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ OrganizationClient.prototype.get = function (id, options) { return this.apiClient.get(this.organizationRoute.get(id, options)); }; /** * Returns a promise that is resolved once the create organization action has been performed; this action creates a new organization resource. * @method * @param data An organization object that needs to be inserted into the system. * @returns A promise that is resolved once the create organization action has been performed. * @example organizationClient.create({ description : '<description>', name : '<name>', slug: '<slug>' }) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ OrganizationClient.prototype.create = function (data) { return this.apiClient.post(this.routeDefinition.create(), this.routeDefinition.createParams(data)); }; /** * Returns a promise that is resolved once the update organization action has been performed; this action updates an organization resource. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `organizationRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.removeParams(organization); * let uri = params['model'].links('put').href; * ``` * @method * @param data An organization object used to update specified organization resource. * @returns A promise that is resolved once the update organization action has been performed. * @example // organization is a resource previously fetched using get action. organization.description = '<description>'; organizationClient.update(organization) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ OrganizationClient.prototype.update = function (data) { return this.apiClient.put(this.routeDefinition.update(data), this.routeDefinition.updateParams(data)); }; /** * Returns a promise that is resolved once the remove action has been performed. This action will remove an organization resource from the system if successfully completed. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `organizationRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.removeParams(organization); * let uri = params['model'].links('delete').href; * ``` * @method * @param data An organization object used to delete specified organization resource. * @returns A promise that is resolved once the remove action has been performed. * @example // organization is a resource previously fetched using get action. organizationClient.remove(organization) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ OrganizationClient.prototype.remove = function (data) { return this.apiClient.delete(this.routeDefinition.delete(data)); }; OrganizationClient = tslib_1.__decorate([ inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(_1.TYPES.OrganizationRoute)), tslib_1.__param(1, inversify_1.inject(_1.TYPES.OrganizationBatchClient)), tslib_1.__param(2, inversify_1.inject(httpApi_1.httpTYPES.ApiClient)), tslib_1.__metadata("design:paramtypes", [_1.OrganizationRoute, _1.OrganizationBatchClient, httpApi_1.ApiClient]) ], OrganizationClient); return OrganizationClient; }()); exports.OrganizationClient = OrganizationClient;