UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

114 lines (100 loc) 4.29 kB
// tslint:disable:no-console import { CognitoIdentityProvider, ListUsersCommandOutput, UserType } from '@aws-sdk/client-cognito-identity-provider'; import { fromEnv } from '@aws-sdk/credential-providers'; // import * as GMO from '@motionpicture/gmo-service'; import * as mongoose from 'mongoose'; // import { deleteCreditCardsById, getCreditCardPaymentServiceChannel } from '../../../../lib/chevre/service/task/deletePerson'; import { chevre } from '../../../../lib/index'; // tslint:disable-next-line:max-func-body-length async function main(): Promise<void> { await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false }); // const paymentServiceRepo = await chevre.repository.PaymentService.createInstance(mongoose.connection); const settingRepo = await chevre.repository.Setting.createInstance(mongoose.connection); const setting = await settingRepo.findOne({ project: { id: { $eq: '*' } } }, ['userPoolIdOld']); if (typeof setting?.userPoolIdOld !== 'string') { throw new chevre.factory.errors.NotFound('setting.userPoolIdOld'); } // const userPoolId: string = setting.userPoolIdNew; const userPoolId: string = setting.userPoolIdOld; const awsCredentials = fromEnv(); const cognitoIdentityServiceProvider = new CognitoIdentityProvider({ apiVersion: 'latest', region: 'ap-northeast-1', credentials: awsCredentials }); // create user const oldPersonRepo = await chevre.repository.Person.createInstance({ userPoolId: userPoolId, cognitoIdentityServiceProvider }); // const credentials = await getCreditCardPaymentServiceChannel({ // project: { id: 'xxxxxxxx' }, // paymentMethodType: 'CreditCard' // })({ paymentService: paymentServiceRepo }); // const creditCardRepo = await chevre.repository.paymentMethod.CreditCard.createInstance({ // siteId: credentials.siteId, // sitePass: credentials.sitePass, // cardService: new GMO.service.Card( // { // endpoint: credentials.endpoint, // useFetch: true // }, // { // timeout: 20000 // cronで実行の場合は長めに(2024-10-05~) // } // ) // }); const users: UserType[] = []; let nextToken: string | undefined = ''; let page: number = 0; while (typeof nextToken === 'string') { // tslint:disable-next-line:no-magic-numbers // if (page > 1000) { // break; // } page += 1; console.log('listUsersInGroup processing...', nextToken, page); const listUsersResult = <ListUsersCommandOutput>await oldPersonRepo.cognitoIdentityServiceProvider.listUsers( { Limit: 50, UserPoolId: userPoolId, ...(typeof nextToken === 'string' && nextToken !== '') ? { PaginationToken: nextToken } : undefined } ); // tslint:disable-next-line:no-null-keyword console.dir(listUsersResult.Users?.at(0), { depth: null }); nextToken = listUsersResult.PaginationToken; if (Array.isArray(listUsersResult.Users)) { users.push(...listUsersResult.Users); } } console.log('listUsers processed', nextToken, page); console.log(users.length, 'users found'); let i = 0; for (const user of users) { i += 1; const sub = user.Attributes?.find(({ Name }) => Name === 'sub')?.Value; // if (i > 10) { // continue; // } console.log('deleteCreditCardsById prossing...', user.Username, sub, i); // await deleteCreditCardsById( // { // id: String(user.Username), // useUsernameAsGMOMemberId: false // }, // { userPoolIdOld: userPoolId } // )(<any>{ // person: undefined, // creditCard: creditCardRepo, // cognitoIdentityServiceProvider: undefined // }); console.log('deleteCreditCardsById processed.', user.Username, sub, i); } console.log(users.length, 'users processed'); } main() .then(() => { console.log('success!'); }) .catch(console.error);