@altostra/core
Version:
Core library for shared types and logic
1 lines • 2.22 kB
JavaScript
;var __awaiter=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))((function(s,n){function o(e){try{c(r.next(e))}catch(e){n(e)}}function i(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(o,i)}c((r=r.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getUsersCachesDirectory=exports.getAccountMetadata=exports.SECONDS_IN_WEEK=void 0;const path_1=require("path"),Organization_1=require("../common/Models/Organization"),Users_1=require("../common/Models/Users"),DataCache_1=require("../common/Utils/DataCache"),FS_1=require("../common/Utils/FS"),Object_1=require("../common/Utils/Object"),type_validations_1=require("@altostra/type-validations"),AltoEnvVars_1=require("./AltoEnvVars"),TeamsManager_1=require("./ServiceClients/TeamsManager"),Settings_1=require("./Settings");function getAccountMetadata({getToken:e,logger:t,team:a,bossEndpoint:r=AltoEnvVars_1.apiUri,settingsDir:s=AltoEnvVars_1.settingsPath}){const n=new TeamsManager_1.TeamsManager(r,e),o=(0,path_1.join)(getUsersCachesDirectory(s),FS_1.asPath`${a}.json`);return{organizations:new DataCache_1.DataCache({cachePath:(0,Settings_1.getSettingsPath)("accounts.json",s),ttlInSeconds:exports.SECONDS_IN_WEEK,debugLogger:t.appendSource("Organizations metadata"),saveOptions:{mode:384},validate:(0,type_validations_1.recordOf)(Organization_1.isOrganization),fetch(){return __awaiter(this,void 0,void 0,(function*(){const e=yield n.getUserTeams();return(0,Object_1.fromEntries)(e.map(e=>[e.id,e]))}))}}),users:new DataCache_1.DataCache({cachePath:o,ttlInSeconds:exports.SECONDS_IN_WEEK,debugLogger:t.appendSource("Users metadata"),saveOptions:{mode:384},validate:(0,type_validations_1.recordOf)(Users_1.isUserResponse),fetch(){return __awaiter(this,void 0,void 0,(function*(){const e=yield n.getTeamUsers();return(0,Object_1.fromEntries)(e.map(e=>[e.id,e]))}))}})}}function getUsersCachesDirectory(e=AltoEnvVars_1.settingsPath){return(0,Settings_1.getSettingsPath)("users-cache",e)}exports.SECONDS_IN_WEEK=604800,exports.getAccountMetadata=getAccountMetadata,exports.getUsersCachesDirectory=getUsersCachesDirectory;