UNPKG

baasic-sdk-javascript

Version:

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

300 lines (299 loc) 16.4 kB
"use strict"; /* globals module */ /** * @module IBlogPostClient * @description Blogs Client provides an easy way to consume Blogs REST API end-points. In order to obtain needed routes `IBlogPostClient` uses `blogPostRoute`. */ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var inversify_1 = require("inversify"); ; var common_1 = require("../../common"); var httpApi_1 = require("../../httpApi"); var _1 = require("./"); var BlogPostClient = /** @class */ (function () { function BlogPostClient(blogRoute, apiClient) { this.blogRoute = blogRoute; this.apiClient = apiClient; this.utility = new common_1.Utility(); this.blogPostUtility = new _1.BaasicBlogPostUtility(); } Object.defineProperty(BlogPostClient.prototype, "routeDefinition", { /** * Provides direct access to `IBlogPostRoute`. * @method * @example IBlogPostClient.routeDefinition.get(); **/ get: function () { return this.blogRoute; }, enumerable: true, configurable: true }); /** * Returns a promise that is resolved once the find action has been performed. Success response returns a list of blogPost resources matching the given criteria. * @method * @param options A promise that is resolved once the find action has been performed. * @returns A promise that is resolved once the find action has been performed. * @example IBlogPostClient.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 }); **/ BlogPostClient.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 a single blogPost resource. * @method * @param id Blog slug or id which uniquely identifies blogPost resource that needs to be retrieved. * @param options Options object that contains embed items. * @returns a promise that is resolved once the get action has been performed. * @example IBlogPostClient.get('<blogPost-id>') .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.get = function (id, options) { return this.apiClient.get(this.routeDefinition.get(id, options)); }; /** * Returns a promise that is resolved once the create blogPost action has been performed, this action creates a new blogPost resource. * @method * @param data An blogPost object that needs to be inserted into the system. * @returns a promise that is resolved once the create blogPost action has been performed. * @example IBlogPostClient.create({ publishDate : new Date(), title : '<title>', content : '<content>', slug : '', status : baasicBlogService.statuses.draft, $tags : ['<tag1>', '<tag2>'] }) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.create = function (data) { return this.apiClient.post(this.routeDefinition.create(), this.routeDefinition.createParams(data)); }; /** * Returns a promise that is resolved once the update blogPost action has been performed; this action updates an blogPost resource. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `blogPostRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.updateParams(blogPost); * let uri = params['model'].links('put').href; * ``` * @method * @param data An blogPost object that needs to be updated into the system. * @returns A promise that is resolved once the update blogPost action has been performed. * @example // blogPost is a resource previously fetched using get action. blogPost.title = '<title>'; IBlogPostClient.update(blogPost) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.update = function (data) { return this.apiClient.put(this.routeDefinition.update(data), this.routeDefinition.updateParams(data)); }; /** * Returns a promise that is resolved once the update blogPost action has been performed; this action updates an blogPost resource. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `blogPostRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.updateParams(blogPost); * let uri = params['model'].links('put').href; * ``` * @method * @param data An blogPost object that needs to be updated into the system. * @returns A promise that is resolved once the update blogPost action has been performed. * @example // blogPost is a resource previously fetched using get action. blogPost.title = '<title>'; IBlogPostClient.publish(blogPost) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.publish = function (data) { return this.apiClient.put(this.routeDefinition.publish(data), this.routeDefinition.updateParams(data)); }; /** * Returns a promise that is resolved once the update blogPost action has been performed; this action updates an blogPost resource. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `blogPostRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.updateParams(blogPost); * let uri = params['model'].links('put').href; * ``` * @method * @param data An blogPost object that needs to be updated into the system. * @returns A promise that is resolved once the update blogPost action has been performed. * @example // blogPost is a resource previously fetched using get action. blogPost.title = '<title>'; IBlogPostClient.unPublish(blogPost) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.unPublish = function (data) { return this.apiClient.put(this.routeDefinition.unPublish(data), this.routeDefinition.updateParams(data)); }; /** * Returns a promise that is resolved once the update blogPost action has been performed; this action updates an blogPost resource. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `blogPostRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.updateParams(blogPost); * let uri = params['model'].links('put').href; * ``` * @method * @param data An blogPost object that needs to be updated into the system. * @returns A promise that is resolved once the update blogPost action has been performed. * @example // blogPost is a resource previously fetched using get action. blogPost.title = '<title>'; IBlogPostClient.draft(blogPost) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.draft = function (data) { return this.apiClient.put(this.routeDefinition.draft(data), this.routeDefinition.updateParams(data)); }; /** * Returns a promise that is resolved once the update blogPost action has been performed; this action updates an blogPost resource. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `blogPostRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.updateParams(blogPost); * let uri = params['model'].links('put').href; * ``` * @method * @param data An blogPost object that needs to be updated into the system. * @returns A promise that is resolved once the update blogPost action has been performed. * @example // blogPost is a resource previously fetched using get action. blogPost.title = '<title>'; IBlogPostClient.reject(blogPost) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.reject = function (data) { return this.apiClient.put(this.routeDefinition.reject(data), this.routeDefinition.updateParams(data)); }; /** * Returns a promise that is resolved once the update blogPost action has been performed; this action updates an blogPost resource. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `blogPostRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.updateParams(blogPost); * let uri = params['model'].links('put').href; * ``` * @method * @param data An blogPost object that needs to be updated into the system. * @returns A promise that is resolved once the update blogPost action has been performed. * @example // blogPost is a resource previously fetched using get action. blogPost.title = '<title>'; IBlogPostClient.archive(blogPost) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.archive = function (data) { return this.apiClient.put(this.routeDefinition.archive(data), this.routeDefinition.updateParams(data)); }; /** * Returns a promise that is resolved once the update blogPost action has been performed; this action updates an blogPost resource. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `blogPostRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.updateParams(blogPost); * let uri = params['model'].links('put').href; * ``` * @method * @param data An blogPost object that needs to be updated into the system. * @returns A promise that is resolved once the update blogPost action has been performed. * @example // blogPost is a resource previously fetched using get action. blogPost.title = '<title>'; IBlogPostClient.reviewPending(blogPost) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.reviewPending = function (data) { return this.apiClient.put(this.routeDefinition.reviewPending(data), this.routeDefinition.updateParams(data)); }; /** * Returns a promise that is resolved once the remove blogPost action has been performed. If the action is successfully completed, the blogPost resource will be permanently removed from the system. This route uses HAL enabled objects to obtain routes and therefore it doesn't apply `blogPostRoute` route template. Here is an example of how a route can be obtained from HAL enabled objects: * ``` * let params = modelMapper.removeParams(blogPost); * let uri = params['model'].links('delete').href; * ``` * @method * @param data An blogPost object that needs to be removed from the system. * @returns A promise that is resolved once the remove blogPost action has been performed. * @example // blogPost is a resource previously fetched using get action. IBlogPostClient.remove(blogPost) .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.remove = function (data) { return this.apiClient.delete(this.routeDefinition.delete(data)); }; /** * Returns a promise that is resolved once the purge blogPosts action has been performed. Please note that all blogPost resources will be deleted from the system once the action is successfully completed and therefore it can only be executed by user assigned to account owner role. * @method * @example IBlogPostClient.purge() .then(function (data) { // perform success action here }, function (response, status, headers, config) { // perform error handling here }); **/ BlogPostClient.prototype.purge = function () { return this.apiClient.delete(this.routeDefinition.purge()); }; BlogPostClient = tslib_1.__decorate([ inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(_1.TYPES.BlogPostRoute)), tslib_1.__param(1, inversify_1.inject(httpApi_1.httpTYPES.ApiClient)), tslib_1.__metadata("design:paramtypes", [_1.BlogPostRoute, httpApi_1.ApiClient]) ], BlogPostClient); return BlogPostClient; }()); exports.BlogPostClient = BlogPostClient; /** * @overview ***Notes:** - Refer to the [REST API documentation](https://github.com/Baasic/baasic-rest-api/wiki) for detailed information about available Baasic REST API end-points. - All end-point objects are transformed by the associated route service. */