54170c9cd1313e80a9e21308eb61ced847105d32
[motion2.git] / server / api / license / license.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x6b4e=['json','count','status','apply','reject','save','then','destroy','stack','name','send','index','model','rawAttributes','query','keys','filters','intersection','attributes','fields','length','merge','options','getLicense','catch','update','body','find','params','get','key','demo','eml-format','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end'];(function(_0x46aff0,_0x122890){var _0x9d78cf=function(_0x3f14cb){while(--_0x3f14cb){_0x46aff0['push'](_0x46aff0['shift']());}};_0x9d78cf(++_0x122890);}(_0x6b4e,0x1a8));var _0xe6b4=function(_0x3fd074,_0x24c281){_0x3fd074=_0x3fd074-0x0;var _0xe823eb=_0x6b4e[_0x3fd074];return _0xe823eb;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xe6b4('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xe6b4('0x1'));var BPromise=require(_0xe6b4('0x2'));var Mustache=require(_0xe6b4('0x3'));var util=require(_0xe6b4('0x4'));var path=require(_0xe6b4('0x5'));var sox=require(_0xe6b4('0x6'));var csv=require('to-csv');var ejs=require(_0xe6b4('0x7'));var fs=require('fs');var _=require(_0xe6b4('0x8'));var squel=require(_0xe6b4('0x9'));var crypto=require(_0xe6b4('0xa'));var jsforce=require(_0xe6b4('0xb'));var deskjs=require(_0xe6b4('0xc'));var toCsv=require(_0xe6b4('0xd'));var querystring=require(_0xe6b4('0xe'));var Papa=require(_0xe6b4('0xf'));var Redis=require(_0xe6b4('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xe6b4('0x11'));var as=require(_0xe6b4('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xe6b4('0x13'));var config=require(_0xe6b4('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xe6b4('0x15'))['db'];function respondWithStatusCode(_0x102306,_0x19fe43){_0x19fe43=_0x19fe43||0xcc;return function(_0x21ae59){if(_0x21ae59){return _0x102306[_0xe6b4('0x16')](_0x19fe43);}return _0x102306['status'](_0x19fe43)[_0xe6b4('0x17')]();};}function respondWithResult(_0x184353,_0x67ad14){_0x67ad14=_0x67ad14||0xc8;return function(_0x21ab5b){if(_0x21ab5b){return _0x184353['status'](_0x67ad14)[_0xe6b4('0x18')](_0x21ab5b);}};}function respondWithFilteredResult(_0x2022ca,_0x2e3eff){return function(_0x42876a){if(_0x42876a){var _0x25ad62=_0x42876a[_0xe6b4('0x19')],_0x5ec51c=_0x2e3eff['offset'],_0x3a64a5=_0x2e3eff['offset']+_0x2e3eff['limit'],_0x2c9335;if(_0x3a64a5>=_0x25ad62){_0x3a64a5=_0x25ad62;_0x2c9335=0xc8;}else{_0x2c9335=0xce;}_0x2022ca[_0xe6b4('0x1a')](_0x2c9335);return _0x2022ca['set']('Content-Range',_0x5ec51c+'-'+_0x3a64a5+'/'+_0x25ad62)[_0xe6b4('0x18')](_0x42876a);}return null;};}function patchUpdates(_0x4f7996){return function(_0x200c8f){try{jsonpatch[_0xe6b4('0x1b')](_0x200c8f,_0x4f7996,!![]);}catch(_0x38fb03){return BPromise[_0xe6b4('0x1c')](_0x38fb03);}return _0x200c8f[_0xe6b4('0x1d')]();};}function saveUpdates(_0x1899b4,_0xb7127){return function(_0x1013b8){if(_0x1013b8){return _0x1013b8['update'](_0x1899b4)[_0xe6b4('0x1e')](function(_0x51123e){return _0x51123e;});}return null;};}function removeEntity(_0x44648b,_0x1121cf){return function(_0x2dc1c5){if(_0x2dc1c5){return _0x2dc1c5[_0xe6b4('0x1f')]()[_0xe6b4('0x1e')](function(){_0x44648b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x52ee39,_0x415b57){return function(_0x4aa07f){if(!_0x4aa07f){_0x52ee39[_0xe6b4('0x16')](0x194);}return _0x4aa07f;};}function handleError(_0x31b451,_0x21b07c){_0x21b07c=_0x21b07c||0x1f4;return function(_0x28bfef){logger['error'](_0x28bfef[_0xe6b4('0x20')]);if(_0x28bfef[_0xe6b4('0x21')]){delete _0x28bfef[_0xe6b4('0x21')];}_0x31b451['status'](_0x21b07c)[_0xe6b4('0x22')](_0x28bfef);};}var utilLicense=require('../../config/license/util');exports[_0xe6b4('0x23')]=function(_0x45168a,_0x5a4e25){var _0x332bbd={'raw':!![],'where':{'id':0x1}},_0x31df4a={};_0x31df4a[_0xe6b4('0x24')]=_['keys'](db['License'][_0xe6b4('0x25')]);_0x31df4a[_0xe6b4('0x26')]=_[_0xe6b4('0x27')](_0x45168a[_0xe6b4('0x26')]);_0x31df4a[_0xe6b4('0x28')]=_[_0xe6b4('0x29')](_0x31df4a[_0xe6b4('0x24')],_0x31df4a[_0xe6b4('0x26')]);_0x332bbd[_0xe6b4('0x2a')]=_['intersection'](_0x31df4a['model'],qs[_0xe6b4('0x2b')](_0x45168a[_0xe6b4('0x26')]['fields']));_0x332bbd[_0xe6b4('0x2a')]=_0x332bbd[_0xe6b4('0x2a')][_0xe6b4('0x2c')]?_0x332bbd['attributes']:_0x31df4a[_0xe6b4('0x24')];_0x332bbd=_[_0xe6b4('0x2d')]({},_0x332bbd,_0x45168a[_0xe6b4('0x2e')]);return utilLicense[_0xe6b4('0x2f')](_0x332bbd)[_0xe6b4('0x1e')](respondWithResult(_0x5a4e25,null))[_0xe6b4('0x30')](handleError(_0x5a4e25,null));};exports[_0xe6b4('0x31')]=function(_0x47c1ba,_0x195cb1){if(_0x47c1ba[_0xe6b4('0x32')]['id']){delete _0x47c1ba[_0xe6b4('0x32')]['id'];}return db['License'][_0xe6b4('0x33')]({'where':{'id':_0x47c1ba[_0xe6b4('0x34')]['id']}})['then'](handleEntityNotFound(_0x195cb1,null))[_0xe6b4('0x1e')](function(_0x425b84){var _0x2b846a=_0x425b84[_0xe6b4('0x35')]({'plain':!![]});return utilLicense['checkLicense'](_0x2b846a,_0x47c1ba[_0xe6b4('0x32')][_0xe6b4('0x36')]);})[_0xe6b4('0x1e')](function(_0x5d19c7){if(!_0x5d19c7[_0xe6b4('0x37')]){return saveUpdates(_0x47c1ba['body'],null);}return _0x5d19c7;})[_0xe6b4('0x1e')](respondWithResult(_0x195cb1,null))['catch'](handleError(_0x195cb1,null));};