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
JavaScript
;
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