UNPKG

mi-auth-client

Version:
756 lines 61.2 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); var mockStrapiClientTool_1 = require("./mock/mockStrapiClientTool"); var axios_1 = require("axios"); var utils_1 = require("./utils"); var _ = require("lodash"); var R = require("ramda"); var pjson = require('../package.json'); var version = pjson.version; function strapiClientTool(url) { axios_1.default.defaults.baseURL = utils_1.setUrl(url); return { // user operations addBrandOwner: function (token, owners, advertisers) { return __awaiter(this, void 0, void 0, function () { var superAdmins; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.listUsers(token, { ids: owners })]; case 1: superAdmins = (_a.sent()).data; superAdmins.forEach(function (user) { _this.updateUser(token, user.id, { advertisers: _.concat(user.advertisers.map(function (e) { return e.id; }), advertisers) }); }); return [2 /*return*/]; } }); }); }, // user operations addBrandManager: function (token, manager, advertisers) { return __awaiter(this, void 0, void 0, function () { var superAdmins; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.listUsers(token, { ids: manager })]; case 1: superAdmins = (_a.sent()).data; superAdmins.forEach(function (user) { _this.updateUser(token, user.id, { advertisers: _.concat(user.advertisers.map(function (e) { return e.id; }), advertisers) }); }); return [2 /*return*/]; } }); }); }, deleteSuperAdmin: function (token, brand) { return __awaiter(this, void 0, void 0, function () { var superAdmins, advertisers; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.listUsers(token, { brands: [brand], roles: ['superAdmin'] })]; case 1: superAdmins = (_a.sent()).data; return [4 /*yield*/, this.listAdvertisers(token, { brands: [brand] })]; case 2: advertisers = (_a.sent()).data; return [4 /*yield*/, Promise.all[superAdmins.forEach(function (e) { var updatedAdvertisers = _.filter(e.advertisers, function (advertiser) { return (!advertisers.map(function (e) { return e.id; }).includes(advertiser.id)); }); _this.updateUser(token, e.id, { advertisers: updatedAdvertisers.map(function (e) { return e.id; }) }); })]]; case 3: _a.sent(); return [2 /*return*/]; } }); }); }, deleteManager: function (token, brand) { return __awaiter(this, void 0, void 0, function () { var managers, advertisers; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.listUsers(token, { brands: [brand], roles: ['manager'] })]; case 1: managers = (_a.sent()).data; return [4 /*yield*/, this.listAdvertisers(token, { brands: [brand] })]; case 2: advertisers = (_a.sent()).data; return [4 /*yield*/, Promise.all[managers.forEach(function (e) { var updatedAdvertisers = _.filter(e.advertisers, function (advertiser) { return (!advertisers.map(function (e) { return e.id; }).includes(advertiser.id)); }); _this.updateUser(token, e.id, { advertisers: updatedAdvertisers.map(function (e) { return e.id; }) }); })]]; case 3: _a.sent(); return [2 /*return*/]; } }); }); }, createUser: function (token, profile) { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, function () { var username, email, password, role, platform, advertisers, allRoles, allPlatforms, data, config; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!profile) { resolve({ data: null, error: "Please provide your user profile." }); } username = profile.username, email = profile.email, password = profile.password, role = profile.role, platform = profile.platform, advertisers = profile.advertisers; if (!username && !email && !password && !role && !platform && !advertisers) { resolve({ data: null, error: "Please provide username, email, password, role, access, advertiser in profile." }); } if (typeof (username) != 'string') { resolve({ data: null, error: "Type of username must be string." }); } if (!utils_1.isEmail(email)) { resolve({ data: null, error: "Invalid email format." }); } if (typeof (password) != 'string') { resolve({ data: null, error: "Type of password must be string." }); } if (!utils_1.isValidKey(role, utils_1.roleNames)) { resolve({ data: null, error: "Type of role must be string." }); } if (!Array.isArray(platform)) { resolve({ data: null, error: "Type of platform must be array." }); } return [4 /*yield*/, utils_1.roles(token)]; case 1: allRoles = _a.sent(); return [4 /*yield*/, this.listPlatforms(token)]; case 2: allPlatforms = _a.sent(); data = profile; data.role = _.find(allRoles, function (e) { return e.name == role; }).id; data.platforms = _.map(_.filter(allPlatforms, function (e) { return platform.includes(e.name); }), function (e) { return e.id; }); config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.post('/auth/local/register', data, config).then(function (res) { return __awaiter(_this, void 0, void 0, function () { var _a, id, email, username, role, _b, platforms, _c, advertisers, brandIds, reducedPlatform, brand, _d, data; return __generator(this, function (_e) { switch (_e.label) { case 0: _a = res.data.user, id = _a.id, email = _a.email, username = _a.username, role = _a.role, _b = _a.platforms, platforms = _b === void 0 ? [] : _b, _c = _a.advertisers, advertisers = _c === void 0 ? [] : _c; brandIds = new Set(); reducedPlatform = []; advertisers.forEach(function (e) { brandIds.add(e.brand); }); platforms.forEach(function (e) { reducedPlatform.push(e.name); }); if (!(brandIds.size == 0)) return [3 /*break*/, 1]; _d = []; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.listBrands(token, { ids: Array.from(brandIds) })]; case 2: _d = _e.sent(); _e.label = 3; case 3: brand = _d; data = { id: id, email: email, username: username, role: utils_1.roleNames2GUI(role.name), platform: reducedPlatform, brand: brand.data, advertisers: advertisers }; resolve({ data: data, error: null }); return [2 /*return*/]; } }); }); }).catch(function (err) { console.log(err); resolve({ data: null, error: utils_1.parseErrorMessage(err) }); }); return [2 /*return*/]; } }); }); })]; }); }); }, login: function (name, password) { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { if (!name) { resolve({ data: null, error: "Please provide your name, which is email." }); } if (!password) { resolve({ data: null, error: "Please provide your password." }); } if (!utils_1.isEmail(name)) { resolve({ data: null, error: "Invalid email format." }); } if (typeof (password) != 'string') { resolve({ data: null, error: "Type of password must be string." }); } axios_1.default.post('/auth/local', { identifier: name, password: password }) .then(function (res) { return __awaiter(_this, void 0, void 0, function () { var _a, jwt, _b, id, email, username, role, platforms, advertisers, brandIds, brand, _c, reducedPlatform, data; return __generator(this, function (_d) { switch (_d.label) { case 0: _a = res.data, jwt = _a.jwt, _b = _a.user, id = _b.id, email = _b.email, username = _b.username, role = _b.role, platforms = _b.platforms, advertisers = _b.advertisers; brandIds = new Set(); advertisers.forEach(function (e) { brandIds.add(e.brand); }); if (!(brandIds.size == 0)) return [3 /*break*/, 1]; _c = []; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.listBrands(jwt, { ids: Array.from(brandIds) })]; case 2: _c = _d.sent(); _d.label = 3; case 3: brand = _c; reducedPlatform = _.map(platforms, function (e) { return e.name; }); data = { id: id, email: email, username: username, role: utils_1.roleNames2GUI(role.name), platform: reducedPlatform, brand: brand.data, advertisers: advertisers }; resolve({ data: { jwt: jwt, user: data }, error: null }); return [2 /*return*/]; } }); }); }) .catch(function (err) { resolve({ data: null, error: utils_1.parseErrorMessage(err) }); }); return [2 /*return*/]; }); }); })]; }); }); }, getMe: function (token) { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { var config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.get('/users/me', config) .then(function (res) { return __awaiter(_this, void 0, void 0, function () { var _a, id, email, username, role, platforms, advertisers, brandIds, reducedPlatform, brand, _b, data; return __generator(this, function (_c) { switch (_c.label) { case 0: _a = res.data, id = _a.id, email = _a.email, username = _a.username, role = _a.role, platforms = _a.platforms, advertisers = _a.advertisers; brandIds = new Set(); reducedPlatform = []; advertisers.forEach(function (e) { brandIds.add(e.brand); }); if (!(brandIds.size == 0)) return [3 /*break*/, 1]; _b = []; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.listBrands(token, { ids: Array.from(brandIds) })]; case 2: _b = _c.sent(); _c.label = 3; case 3: brand = _b; platforms.forEach(function (e) { reducedPlatform.push(e.name); }); data = { id: id, email: email, username: username, role: utils_1.roleNames2GUI(role.name), platform: reducedPlatform, brand: brand.data, advertisers: advertisers }; resolve({ data: data, error: null }); return [2 /*return*/]; } }); }); }) .catch(function (err) { resolve({ data: null, error: utils_1.parseErrorMessage(err) }); }); })]; }); }); }, listUsers: function (token, select, options) { if (select === void 0) { select = {}; } return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () { var ids, brands, advertisers, roles, params, _a, limit, _b, sort_1, sortFilter_1, config; var _this = this; return __generator(this, function (_c) { if (!token) { resolve({ data: null, error: "Please provide your token." }); } ids = select.ids, brands = select.brands, advertisers = select.advertisers, roles = select.roles; params = new URLSearchParams(); if (ids) { ids.forEach(function (e) { if (e) params.append('id_in', e.toString()); }); } if (brands) { brands.forEach(function (e) { if (e) params.append('advertisers.brand_in', e.toString()); }); } if (advertisers) { advertisers.forEach(function (e) { if (e) params.append('advertisers.id_in', e.toString()); }); } if (roles) { roles.forEach(function (e) { if (e) params.append('role.name_in', utils_1.roleNames[e.toString()]); }); } if (options) { _a = options.limit, limit = _a === void 0 ? -1 : _a, _b = options.sort, sort_1 = _b === void 0 ? {} : _b; sortFilter_1 = []; params.append('_limit', limit.toString()); _.keys(sort_1).forEach(function (e) { sortFilter_1.push(e + ":" + utils_1.sortSetting[sort_1[e]]); }); if (sortFilter_1.length) params.append('_sort', sortFilter_1.join(',')); } config = { params: params, headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.get('/users', config).then(function (res) { return __awaiter(_this, void 0, void 0, function () { var data, allBrands; return __generator(this, function (_a) { switch (_a.label) { case 0: data = []; return [4 /*yield*/, this.listBrands(token)]; case 1: allBrands = _a.sent(); res.data.forEach(function (user) { var id = user.id, email = user.email, username = user.username, role = user.role, platforms = user.platforms, advertisers = user.advertisers; var brandIds = new Set(); var reducedPlatform = []; advertisers.forEach(function (e) { brandIds.add(e.brand); }); platforms.forEach(function (e) { reducedPlatform.push(e.name); }); var brand = allBrands.data.filter(function (e) { return Array.from(brandIds).includes(e.id); }); data.push({ id: id, email: email, username: username, role: utils_1.roleNames2GUI(role.name), platform: reducedPlatform, brand: brand, advertisers: advertisers }); }); resolve({ data: data, error: null }); return [2 /*return*/]; } }); }); }).catch(function (err) { resolve({ data: null, error: utils_1.parseErrorMessage(err) }); }); return [2 /*return*/]; }); }); })]; }); }); }, updateUser: function (token, id, profile) { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () { var username, password, role, platform, data, allRoles, allPlatforms, config; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: username = profile.username, password = profile.password, role = profile.role, platform = profile.platform; if (password && typeof (password) != 'string') { resolve({ data: null, error: "Type of password must be string." }); } if (role && typeof (role) != 'string') { resolve({ data: null, error: "Type of role must be string." }); } if (platform && !Array.isArray(platform)) { resolve({ data: null, error: "Type of platform must be array." }); } data = profile; if (!role) return [3 /*break*/, 2]; return [4 /*yield*/, utils_1.roles(token)]; case 1: allRoles = _a.sent(); data.role = _.find(allRoles, function (e) { return e.name == role; }).id; _a.label = 2; case 2: if (!platform) return [3 /*break*/, 4]; return [4 /*yield*/, this.listPlatforms(token)]; case 3: allPlatforms = _a.sent(); data.platforms = _.map(_.filter(allPlatforms, function (e) { return platform.includes(e.name); }), function (e) { return e.id; }); _a.label = 4; case 4: config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.put("/users/" + id, data, config).then(function (res) { return __awaiter(_this, void 0, void 0, function () { var _a, id, email, username, role, platforms, advertisers, brandIds, reducedPlatform, brand, _b, data; return __generator(this, function (_c) { switch (_c.label) { case 0: _a = res.data, id = _a.id, email = _a.email, username = _a.username, role = _a.role, platforms = _a.platforms, advertisers = _a.advertisers; brandIds = new Set(); reducedPlatform = []; advertisers.forEach(function (e) { brandIds.add(e.brand); }); platforms.forEach(function (e) { reducedPlatform.push(e.name); }); if (!(brandIds.size == 0)) return [3 /*break*/, 1]; _b = []; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.listBrands(token, { ids: Array.from(brandIds) })]; case 2: _b = _c.sent(); _c.label = 3; case 3: brand = _b; data = { id: id, email: email, username: username, role: utils_1.roleNames2GUI(role.name), platform: reducedPlatform, brand: brand.data, advertisers: advertisers }; resolve({ data: data, error: null }); return [2 /*return*/]; } }); }); }).catch(function (err) { resolve({ data: null, error: utils_1.parseErrorMessage(err) }); }); return [2 /*return*/]; } }); }); })]; }); }); }, deleteUser: function (token, id) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { var config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.delete("/users/" + id, config).then(function (res) { resolve({ data: res.data, error: null }); }).catch(function (err) { resolve({ data: null, error: utils_1.parseErrorMessage(err) }); }); })]; }); }); }, // role operations listRoles: function (token) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { var config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.get('/users-permissions/roles', config).then(function (res) { resolve(res.data.roles.map(function (e) { return __assign(__assign({}, e), { name: utils_1.roleNames2GUI(e.name) }); })); }).catch(function (err) { console.log(utils_1.parseErrorMessage(err)); reject(err); }); })]; }); }); }, createRole: function (token, params) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { var config = { headers: { Authorization: "Bearer " + token } }; axios_1.default.post('/users-permissions/roles', R.omit(['id'], params), config).then(function (res) { resolve({ data: res.data.role, error: null }); }).catch(function (err) { resolve({ data: null, error: err.response.data.message[0].messages }); //reject(err) }); })]; }); }); }, updateRole: function (token, params) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { var config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.put("/users-permissions/roles/" + params.id, R.omit(['id'], params), config).then(function (res) { resolve({ data: res.data.role, error: null }); }).catch(function (err) { console.log(err); reject(err); }); })]; }); }); }, deleteRole: function (token, id) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { var config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.delete("/users-permissions/roles/" + id, config).then(function (res) { resolve({ data: res.data.role, error: null }); }).catch(function (err) { console.log(err); reject(err); }); })]; }); }); }, // platform operations listPlatforms: function (token) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { var config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.get('/platforms', config).then(function (res) { resolve(res.data); }).catch(function (err) { console.log(err); reject(err); }); })]; }); }); }, // brand operations createBrand: function (token, profile) { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () { var name, _a, owners, config; var _this = this; return __generator(this, function (_b) { name = profile.name, _a = profile.owners, owners = _a === void 0 ? [] : _a; if (!name) { resolve({ data: null, error: "Please provie name in profile" }); } if (typeof (name) != 'string') { resolve({ data: null, error: "Invalid type of name" }); } config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.post('/brands', profile, config).then(function (res) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) { resolve({ data: res.data, error: null }); return [2 /*return*/]; }); }); }).catch(function (err) { resolve({ data: null, error: utils_1.parseErrorMessage(err) }); }); return [2 /*return*/]; }); }); })]; }); }); }, listBrands: function (token, select, options) { if (select === void 0) { select = {}; } return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { var ids = select.ids, disabled = select.disabled; var params = new URLSearchParams(); if (ids) { ids.forEach(function (e) { if (e) params.append('id_in', e.toString()); }); } if (disabled !== undefined) { params.append('disabled_eq', disabled.toString()); } if (options) { var _a = options.limit, limit = _a === void 0 ? -1 : _a, _b = options.sort, sort_2 = _b === void 0 ? {} : _b; var sortFilter_2 = []; params.append('_limit', limit.toString()); _.keys(sort_2).forEach(function (e) { sortFilter_2.push(e + ":" + utils_1.sortSetting[sort_2[e]]); }); if (sortFilter_2.length) params.append('_sort', sortFilter_2.join(',')); } var config = { params: params, headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.get("/brands", config).then(function (res) { return __awaiter(_this, void 0, void 0, function () { var data, saParams, superAdmins, managerParams, allManagers; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: data = []; saParams = new URLSearchParams(); saParams.append('role.name', utils_1.roleNames['superAdmin']); return [4 /*yield*/, utils_1.users(token, saParams)]; case 1: superAdmins = _a.sent(); managerParams = new URLSearchParams(); managerParams.append('role.name', utils_1.roleNames['manager']); return [4 /*yield*/, utils_1.users(token, managerParams)]; case 2: allManagers = _a.sent(); res.data.forEach(function (e) { return __awaiter(_this, void 0, void 0, function () { var owners, managers, owner, manager, brand; return __generator(this, function (_a) { owners = superAdmins.filter(function (o) { var ad = o.advertisers.map(function (v) { return v.brand; }); return ad.includes(e.id); }); managers = allManagers.filter(function (o) { var ad = o.advertisers.map(function (v) { return v.brand; }); return ad.includes(e.id); }); owner = owners.length ? owners.map(function (o) { return { username: o.username, email: o.email, id: o.id, role: utils_1.roleNames2GUI(o.role.name), platform: o.platforms.map(function (e) { return e.name; }) }; }) : []; manager = managers.length ? managers.map(function (o) { return { username: o.username, email: o.email, id: o.id, role: utils_1.roleNames2GUI(o.role.name), platform: o.platforms.map(function (e) { return e.name; }) }; }) : []; brand = __assign(__assign({}, e), { owners: owner, manager: manager }); data.push(brand); return [2 /*return*/]; }); }); }); resolve({ data: data, error: null }); return [2 /*return*/]; } }); }); }).catch(function (err) { resolve({ data: null, error: utils_1.parseErrorMessage(err) }); }); })]; }); }); }, updateBrand: function (token, id, profile) { return __awaiter(this, void 0, void 0, function () { var name, owners, advertisers, manager, disabled; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: name = profile.name, owners = profile.owners, advertisers = profile.advertisers, manager = profile.manager, disabled = profile.disabled; if (!owners) return [3 /*break*/, 2]; return [4 /*yield*/, this.deleteSuperAdmin(token, id)]; case 1: _a.sent(); _a.label = 2; case 2: if (!manager) return [3 /*break*/, 4]; return [4 /*yield*/, this.deleteManager(token, id) // update brand ]; case 3: _a.sent(); _a.label = 4; case 4: // update brand return [2 /*return*/, new Promise(function (resolve, reject) { var config = { headers: { Authorization: "Bearer " + token, cliVersion: version } }; axios_1.default.put("/brands/" + id, { name: name, advertisers: advertisers, disabled: disabled }, config).then(function (res) { return __awaiter(_this, void 0, void 0, function () { var advertisers; return __generator(this, function (_a) { switch (_a.label) { case 0: advertisers = res.data.advertisers; if (!(owners && owners.length != 0)) return [3 /*break*/, 2]; return [4 /*yield*/, this.addBrandOwner(token, owners, advertisers.map(function (e) { return e.id; })) // add manager ]; case 1: _a.sent(); _a.label = 2; case 2: if (!(manager && manager.length != 0)) return [3 /*break*/, 4]; return [4 /*yield*/, this.addBrandManager(token, manager, advertisers.map(function (e) { return e.id; }))]; case 3: _a.sent(); _a.label = 4; case 4: resolve({ data: _.pick(res.data, ['id', 'name', 'advertisers', 'disabled']), error: null }); return [2 /*return*/]; } }); }