@chevre/domain 22.13.0-alpha.11 → 22.13.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example/src/chevre/migrateProjectSettings.ts +64 -0
- package/example/src/chevre/roles/addPermissionIfNotExists.ts +2 -2
- package/lib/chevre/repo/project.d.ts +1 -1
- package/lib/chevre/repo/project.js +8 -5
- package/package.json +2 -2
- package/example/src/chevre/migrateProjectTokenIssuers.ts +0 -100
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// tslint:disable:no-console
|
|
2
|
+
import * as mongoose from 'mongoose';
|
|
3
|
+
|
|
4
|
+
import { chevre } from '../../../lib/index';
|
|
5
|
+
|
|
6
|
+
// tslint:disable-next-line:max-func-body-length
|
|
7
|
+
async function main() {
|
|
8
|
+
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
9
|
+
|
|
10
|
+
const projectRepo = await chevre.repository.Project.createInstance(mongoose.connection);
|
|
11
|
+
|
|
12
|
+
const cursor = projectRepo.getCursor(
|
|
13
|
+
{
|
|
14
|
+
// _id: { $eq: 'cinerino' }
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
_id: 1,
|
|
18
|
+
settings: 1,
|
|
19
|
+
typeOf: 1
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
console.log('docs found');
|
|
23
|
+
|
|
24
|
+
let i = 0;
|
|
25
|
+
let updateCount = 0;
|
|
26
|
+
await cursor.eachAsync(async (doc) => {
|
|
27
|
+
i += 1;
|
|
28
|
+
const project: Pick<chevre.factory.project.IProject, 'id' | 'typeOf' | 'settings'> = doc.toObject();
|
|
29
|
+
|
|
30
|
+
console.log(
|
|
31
|
+
'alreadyMigrated?', project.id, i);
|
|
32
|
+
const includeCustomerAsFindByConfirmationNumberResult = project.settings?.includeCustomerAsFindByConfirmationNumberResult;
|
|
33
|
+
let alreadyMigrated = false;
|
|
34
|
+
if (typeof includeCustomerAsFindByConfirmationNumberResult === 'boolean') {
|
|
35
|
+
alreadyMigrated = true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (alreadyMigrated) {
|
|
39
|
+
console.log(
|
|
40
|
+
'already migrated.', project.id, i);
|
|
41
|
+
} else {
|
|
42
|
+
console.log(
|
|
43
|
+
'updating project...',
|
|
44
|
+
project.id, i);
|
|
45
|
+
await projectRepo.updateById({
|
|
46
|
+
id: project.id,
|
|
47
|
+
settings: {
|
|
48
|
+
includeCustomerAsFindByConfirmationNumberResult: true
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
updateCount += 1;
|
|
52
|
+
console.log(
|
|
53
|
+
'updated.',
|
|
54
|
+
project.id, i);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
console.log(i, 'docs checked');
|
|
59
|
+
console.log(updateCount, 'docs updated');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
main()
|
|
63
|
+
.then()
|
|
64
|
+
.catch(console.error);
|
|
@@ -9,10 +9,10 @@ async function main() {
|
|
|
9
9
|
const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
|
|
10
10
|
|
|
11
11
|
const roleNames = [
|
|
12
|
-
chevre.factory.role.organizationRole.RoleName.
|
|
12
|
+
chevre.factory.role.organizationRole.RoleName.AdminInventoryManager
|
|
13
13
|
];
|
|
14
14
|
const permissions = [
|
|
15
|
-
'
|
|
15
|
+
'admin.sellers.events.*'
|
|
16
16
|
];
|
|
17
17
|
for (const roleName of roleNames) {
|
|
18
18
|
for (const permission of permissions) {
|
|
@@ -27,7 +27,7 @@ export declare class ProjectRepo {
|
|
|
27
27
|
logo?: string;
|
|
28
28
|
hasMerchantReturnPolicy?: Pick<factory.project.IHasMerchantReturnPolicy, 'sameAs' | 'identifier'>;
|
|
29
29
|
name?: string;
|
|
30
|
-
settings?: {
|
|
30
|
+
settings?: Pick<factory.project.ISettings, 'includeCustomerAsFindByConfirmationNumberResult'> & {
|
|
31
31
|
sendEmailMessage?: factory.project.ISendEmailMessageSettings;
|
|
32
32
|
sendgridApiKey?: string;
|
|
33
33
|
};
|
|
@@ -134,23 +134,26 @@ class ProjectRepo {
|
|
|
134
134
|
}
|
|
135
135
|
updateById(params) {
|
|
136
136
|
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
-
var _a, _b, _c, _d, _e, _f;
|
|
137
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
138
138
|
let hasMerchantReturnPolicy;
|
|
139
139
|
if (typeof ((_a = params.hasMerchantReturnPolicy) === null || _a === void 0 ? void 0 : _a.sameAs) === 'string') {
|
|
140
140
|
hasMerchantReturnPolicy = Object.assign({ sameAs: params.hasMerchantReturnPolicy.sameAs, typeOf: 'MerchantReturnPolicy' }, (typeof params.hasMerchantReturnPolicy.identifier === 'string')
|
|
141
141
|
? { identifier: params.hasMerchantReturnPolicy.identifier } : undefined);
|
|
142
142
|
}
|
|
143
|
-
|
|
143
|
+
const includeCustomerAsFindByConfirmationNumberResult = (_b = params.settings) === null || _b === void 0 ? void 0 : _b.includeCustomerAsFindByConfirmationNumberResult;
|
|
144
|
+
yield this.projectModel.findOneAndUpdate({ _id: { $eq: params.id } }, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (typeof params.alternateName === 'string' && params.alternateName.length > 0)
|
|
144
145
|
? { alternateName: params.alternateName }
|
|
145
|
-
: undefined), (typeof params.name === 'string' && params.name.length > 0) ? { name: params.name } : undefined), (typeof params.logo === 'string' && params.logo.length > 0) ? { logo: params.logo } : undefined), (typeof ((
|
|
146
|
+
: undefined), (typeof params.name === 'string' && params.name.length > 0) ? { name: params.name } : undefined), (typeof params.logo === 'string' && params.logo.length > 0) ? { logo: params.logo } : undefined), (typeof ((_e = (_d = (_c = params.settings) === null || _c === void 0 ? void 0 : _c.sendEmailMessage) === null || _d === void 0 ? void 0 : _d.sender) === null || _e === void 0 ? void 0 : _e.email) === 'string')
|
|
146
147
|
? {
|
|
147
148
|
'settings.sendEmailMessage': {
|
|
148
149
|
sender: { email: params.settings.sendEmailMessage.sender.email }
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
|
-
: undefined), (typeof ((
|
|
152
|
+
: undefined), (typeof ((_f = params.settings) === null || _f === void 0 ? void 0 : _f.sendgridApiKey) === 'string')
|
|
152
153
|
? { 'settings.sendgridApiKey': params.settings.sendgridApiKey }
|
|
153
|
-
: undefined), (typeof
|
|
154
|
+
: undefined), (typeof includeCustomerAsFindByConfirmationNumberResult === 'boolean')
|
|
155
|
+
? { 'settings.includeCustomerAsFindByConfirmationNumberResult': includeCustomerAsFindByConfirmationNumberResult }
|
|
156
|
+
: undefined), (typeof ((_g = params.subscription) === null || _g === void 0 ? void 0 : _g.useEventServiceAsProduct) === 'boolean')
|
|
154
157
|
? { 'subscription.useEventServiceAsProduct': params.subscription.useEventServiceAsProduct }
|
|
155
158
|
: undefined), (hasMerchantReturnPolicy !== undefined) ? { hasMerchantReturnPolicy } : undefined), { $unset: {
|
|
156
159
|
'settings.cognito': 1 // 廃止(2023-11-10~)
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/client-cognito-identity-provider": "3.600.0",
|
|
13
13
|
"@aws-sdk/credential-providers": "3.600.0",
|
|
14
|
-
"@chevre/factory": "4.398.0-alpha.
|
|
14
|
+
"@chevre/factory": "4.398.0-alpha.7",
|
|
15
15
|
"@cinerino/sdk": "12.2.0",
|
|
16
16
|
"@motionpicture/coa-service": "9.6.0",
|
|
17
17
|
"@motionpicture/gmo-service": "5.4.0-alpha.1",
|
|
@@ -115,5 +115,5 @@
|
|
|
115
115
|
"postversion": "git push origin --tags",
|
|
116
116
|
"prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
|
|
117
117
|
},
|
|
118
|
-
"version": "22.13.0-alpha.
|
|
118
|
+
"version": "22.13.0-alpha.12"
|
|
119
119
|
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
// tslint:disable:no-console
|
|
2
|
-
import * as mongoose from 'mongoose';
|
|
3
|
-
|
|
4
|
-
import { chevre } from '../../../lib/index';
|
|
5
|
-
|
|
6
|
-
// const project = { id: String(process.env.PROJECT_ID) };
|
|
7
|
-
// const excludedProject = { id: String(process.env.EXCLUDED_PROJECT_ID) };
|
|
8
|
-
|
|
9
|
-
// tslint:disable-next-line:max-func-body-length
|
|
10
|
-
async function main() {
|
|
11
|
-
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
12
|
-
|
|
13
|
-
const identityProviderRepo = await chevre.repository.IdentityProvider.createInstance(mongoose.connection);
|
|
14
|
-
const projectRepo = await chevre.repository.Project.createInstance(mongoose.connection);
|
|
15
|
-
|
|
16
|
-
const cursor = projectRepo.getCursor(
|
|
17
|
-
{
|
|
18
|
-
// _id: { $eq: 'cinerino' }
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
_id: 1,
|
|
22
|
-
settings: 1,
|
|
23
|
-
typeOf: 1
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
console.log('docs found');
|
|
27
|
-
|
|
28
|
-
let i = 0;
|
|
29
|
-
let updateCount = 0;
|
|
30
|
-
await cursor.eachAsync(async (doc) => {
|
|
31
|
-
i += 1;
|
|
32
|
-
const project: Pick<chevre.factory.project.IProject, 'id' | 'typeOf' | 'settings'> = doc.toObject();
|
|
33
|
-
|
|
34
|
-
console.log(
|
|
35
|
-
'alreadyMigrated?', project.id, i);
|
|
36
|
-
const tokenIssuers: string[] | undefined = (<any>project.settings).tokenIssuers;
|
|
37
|
-
let alreadyMigrated = false;
|
|
38
|
-
if (Array.isArray(tokenIssuers)) {
|
|
39
|
-
let existingProvidersCount = 0;
|
|
40
|
-
for (const tokenIssuer of tokenIssuers) {
|
|
41
|
-
const existingProviders = await identityProviderRepo.projectFields(
|
|
42
|
-
{
|
|
43
|
-
limit: 1,
|
|
44
|
-
page: 1,
|
|
45
|
-
project: { id: { $eq: project.id } },
|
|
46
|
-
identifier: { $eq: tokenIssuer }
|
|
47
|
-
},
|
|
48
|
-
['identifier']
|
|
49
|
-
);
|
|
50
|
-
existingProvidersCount += existingProviders.length;
|
|
51
|
-
}
|
|
52
|
-
if (existingProvidersCount === tokenIssuers.length) {
|
|
53
|
-
alreadyMigrated = true;
|
|
54
|
-
}
|
|
55
|
-
} else {
|
|
56
|
-
alreadyMigrated = true;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (alreadyMigrated) {
|
|
60
|
-
console.log(
|
|
61
|
-
'already migrated.', project.id, i);
|
|
62
|
-
} else {
|
|
63
|
-
if (Array.isArray(tokenIssuers)) {
|
|
64
|
-
const newProviders = tokenIssuers.map((tokenIssuer) => {
|
|
65
|
-
return {
|
|
66
|
-
identifier: tokenIssuer,
|
|
67
|
-
project: {
|
|
68
|
-
id: project.id,
|
|
69
|
-
typeOf: <chevre.factory.organizationType.Project>chevre.factory.organizationType.Project
|
|
70
|
-
},
|
|
71
|
-
typeOf: <chevre.factory.organizationType.Organization>chevre.factory.organizationType.Organization,
|
|
72
|
-
verified: true
|
|
73
|
-
};
|
|
74
|
-
});
|
|
75
|
-
console.log(
|
|
76
|
-
'updating project...',
|
|
77
|
-
project.id, i, newProviders.length, 'newProviders');
|
|
78
|
-
for (const newProvider of newProviders) {
|
|
79
|
-
console.log(
|
|
80
|
-
'updating project...',
|
|
81
|
-
project.id, i, newProvider);
|
|
82
|
-
// await identityProviderRepo.save({
|
|
83
|
-
// attributes: newProvider
|
|
84
|
-
// });
|
|
85
|
-
}
|
|
86
|
-
updateCount += 1;
|
|
87
|
-
console.log(
|
|
88
|
-
'updated.',
|
|
89
|
-
project.id, i);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
console.log(i, 'docs checked');
|
|
95
|
-
console.log(updateCount, 'docs updated');
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
main()
|
|
99
|
-
.then()
|
|
100
|
-
.catch(console.error);
|