UNPKG

@studyportals/sp-hs-misc

Version:

Miscellaneous code used in HouseStark's projects

86 lines 3.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.K2SOUserPrivilegesDataHelper = void 0; /** * @deprecated Use @studyportals/client-internal-platform-authorization */ class K2SOUserPrivilegesDataHelper { _baseUrl; _requestsFactory; 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)); }); } async filterCampaignsByUserAccess(username, campaignIds) { 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