UNPKG

@studyportals/sp-hs-misc

Version:

Miscellaneous code used in HouseStark's projects

95 lines 4.48 kB
"use strict"; 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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.K2SOUserPrivilegesDataHelper = void 0; /** * @deprecated Use @studyportals/client-internal-platform-authorization */ class K2SOUserPrivilegesDataHelper { get baseUrl() { return this._baseUrl; } get requestsFactory() { return this._requestsFactory; } constructor(requestFactory, baseUrl = "") { this._requestsFactory = requestFactory; this._baseUrl = baseUrl; } canGenerateReports(username) { const request = this.requestsFactory.post(`${this.baseUrl}reports/generate`); return new Promise((resolve) => { request.send({ username: username }); request.end((err, res) => this.handleAuthorizationRequest(err, res, resolve)); }); } canDeleteReports(username) { const request = this.requestsFactory.post(`${this.baseUrl}reports/delete`); return new Promise((resolve) => { request.send({ username: username }); request.end((err, res) => this.handleAuthorizationRequest(err, res, resolve)); }); } canAccessOrganisation(username, organisationId) { const request = this.requestsFactory.post(`${this.baseUrl}organisations`); return new Promise((resolve) => { request.send({ username: username, organisationId: organisationId }); request.end((err, res) => this.handleAuthorizationRequest(err, res, resolve)); }); } filterOrganisationsByUserAccess(username, organisationIds) { const request = this.requestsFactory.post(`${this.baseUrl}organisations/multiple`); return new Promise((resolve) => { request.send({ username: username, organisationIds: organisationIds }); request.end((err, res) => this.handleIdsFilteringRequest(err, res, resolve)); }); } filterCampaignsByUserAccess(username, campaignIds) { return __awaiter(this, void 0, void 0, function* () { const request = this.requestsFactory.post(`${this.baseUrl}campaigns/multiple`); return new Promise((resolve) => { request.send({ username: username, campaignIds: campaignIds }); request.end((err, res) => this.handleIdsFilteringRequest(err, res, resolve)); }); }); } canAccessCampaign(username, campaignId) { const request = this.requestsFactory.post(`${this.baseUrl}campaigns`); return new Promise((resolve) => { request.send({ username: username, campaignId: campaignId }); request.end((err, res) => this.handleAuthorizationRequest(err, res, resolve)); }); } canInitiateInvalidation(username, campaignId) { const request = this.requestsFactory.post(`${this.baseUrl}invalidations`); return new Promise((resolve) => { request.send({ username: username, campaignId: campaignId }); request.end((err, res) => this.handleAuthorizationRequest(err, res, resolve)); }); } handleAuthorizationRequest(err, res, resolveFn) { this.handleRequest(err, res, resolveFn, () => false, result => !result.failed); } handleIdsFilteringRequest(err, res, resolveFn) { this.handleRequest(err, res, resolveFn, () => [], result => result.failed ? [] : result.ids); } handleRequest(err, res, resolveFn, errorValueFactory, resultValueExtractor) { if (err) { resolveFn(errorValueFactory()); } else { const result = res.body; resolveFn(resultValueExtractor(result)); } } } exports.K2SOUserPrivilegesDataHelper = K2SOUserPrivilegesDataHelper; //# sourceMappingURL=k2so-user-privileges-data-helper.class.js.map