UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

60 lines (59 loc) 3.46 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.person2username = person2username; const factory = require("../../../factory"); // import { Settings } from '../../../settings'; const person_1 = require("../../../repo/person"); const SSKTS_PROVIDER_NAME = 'SSKTS'; function person2username(person, cognitoIdentityServiceProvider, setting // settings: Settings ) { return __awaiter(this, void 0, void 0, function* () { var _a, _b, _c, _d; // const USERPOOL_ID_OLD = settings.userPoolIdOld; const USERPOOL_ID_OLD = setting === null || setting === void 0 ? void 0 : setting.userPoolIdOld; if (typeof USERPOOL_ID_OLD !== 'string') { throw new factory.errors.NotFound('setting.userPoolIdOld'); } let username = (_a = person.memberOf) === null || _a === void 0 ? void 0 : _a.membershipNumber; // ユーザープールが本家の場合とsskstの場合に対応 // 本家にssktsをプロバイダーとしてログインしている場合、追加特性に以下のような値のidentitiesがあるはず // [{"userId":"xxxx","providerName":"SSKTS","providerType":"OIDC"}] const userIdentitiesStr = (_c = (_b = person.additionalProperty) === null || _b === void 0 ? void 0 : _b.find((p) => p.name === 'identities')) === null || _c === void 0 ? void 0 : _c.value; if (typeof userIdentitiesStr === 'string' && userIdentitiesStr.length > 0) { try { const identities = JSON.parse(userIdentitiesStr); if (Array.isArray(identities) && identities.length > 0) { const providerName = identities[0].providerName; const userIdByIdentities = identities[0].userId; if (providerName === SSKTS_PROVIDER_NAME) { if (typeof userIdByIdentities === 'string' && userIdByIdentities.length > 0) { const personRepo = new person_1.PersonRepo({ cognitoIdentityServiceProvider, userPoolId: USERPOOL_ID_OLD }); // oldUserは必ず存在するはず const oldUser = yield personRepo.findById({ userId: userIdByIdentities }); username = String((_d = oldUser.memberOf) === null || _d === void 0 ? void 0 : _d.membershipNumber); } } } } catch (error) { // tslint:disable-next-line:no-console console.error('person2username throwed', error); throw error; } } return username; }); }