UNPKG

airship-server

Version:

Airship is a framework for Node.JS & TypeScript that helps you to write big, scalable and maintainable API servers.

64 lines 2.52 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); class GroupService { constructor(db, vkApi) { this._db = db; this._vkApi = vkApi; } addGroupToken(groupId, token, scope) { return __awaiter(this, void 0, void 0, function* () { yield this._db.VKGroupToken.destroy({ where: { groupId: groupId } }); yield this._db.VKGroupToken.create({ token, scope, groupId: groupId }); return; }); } getGroupToken(groupId) { return __awaiter(this, void 0, void 0, function* () { let storedToken = yield this._db.VKGroupToken.findOne({ where: { groupId: groupId } }); if (!storedToken) return null; return storedToken.token; }); } validateGroupToken(groupId) { return __awaiter(this, void 0, void 0, function* () { let storedToken = yield this._db.VKGroupToken.findOne({ where: { groupId: groupId } }); //let groupToken = await this.getGroupToken(groupId) if (!storedToken) return false; if (!(storedToken.scope & 4096) || !(storedToken.scope & 64)) return false; try { let response = yield this._vkApi.callWithRetry('groups.getById', storedToken.token, {}); console.log(response); if (response && response.response && response.response[0] && response.response[0].id === groupId) return true; } catch (e) { return false; } return false; }); } } exports.default = GroupService; //# sourceMappingURL=GroupService.js.map