@altostra/core
Version:
Core library for shared types and logic
1 lines • 1.63 kB
JavaScript
;var __awaiter=this&&this.__awaiter||function(e,r,t,i){return new(t||(t=Promise))((function(n,o){function a(e){try{u(i.next(e))}catch(e){o(e)}}function s(e){try{u(i.throw(e))}catch(e){o(e)}}function u(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(a,s)}u((i=i.apply(e,r||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Auth0UsersRepository=void 0;const jwt_1=require("../../../jwt"),Owner_1=require("../../Domain/Models/Owner"),ServiceError_1=require("../../Domain/Models/ServiceError");class Auth0UsersRepository{constructor(e){this.client=e}getUserInfo(e){var r;return __awaiter(this,void 0,void 0,(function*(){try{const{user_id:t,email:i,name:n,nickname:o,app_metadata:a}=yield this.client.getUser({id:e.userId});if(!(t&&i&&n&&o))throw new ServiceError_1.ServiceError("Auth0: API returned invalid data.",520,void 0,{userId:e.userId,data:{userId:t,email:i,name:n,nickname:o}});return{userId:t,email:i,fullName:n,name:o,organization:null!==(r=null==a?void 0:a.organization)&&void 0!==r?r:new Owner_1.Organization(null==a?void 0:a.organization)}}catch(r){throw new ServiceError_1.ServiceError("Auth0: Failed to get user info.",520,r,{userId:e.userId})}}))}getOwner(e){var r;return __awaiter(this,void 0,void 0,(function*(){try{const t=null===(r=e.claims.altostra)||void 0===r?void 0:r[jwt_1.AltostraClaimNamespace+"/organization"];return"string"==typeof t?new Owner_1.Organization(t):new Owner_1.User(e.user)}catch(r){throw new ServiceError_1.ServiceError("Failed to get owner.",520,r,{jwt:e})}}))}}exports.Auth0UsersRepository=Auth0UsersRepository;