@studyportals/sp-hs-misc
Version:
Miscellaneous code used in HouseStark's projects
86 lines • 3.75 kB
JavaScript
;
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