generated from idea2app/Strapi-PNPM-Docker-ts
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdata-transformer.ts
More file actions
74 lines (71 loc) · 2.61 KB
/
data-transformer.ts
File metadata and controls
74 lines (71 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import { MigrationSchema, TargetPatch } from 'mobx-restful-migrator';
import { SourceOrganization, TargetOrganization } from '../types';
import { AddressTransformer } from './address-transformer';
import { DateTransformer } from './date-transformer';
import { ServiceTransformer } from './service-transformer';
import { QualificationTransformer } from './qualification-transformer';
import { UserTransformer } from './user-transformer';
import { DataUtils } from '../utils/data-utils';
import { TargetUserModel } from '../utils/strapi-api';
export const migrationMapping: MigrationSchema<
SourceOrganization,
TargetOrganization
> = {
常用名称: ({ 常用名称: value }) => ({ name: { value, unique: true } }),
机构信用代码: 'code',
实体类型: ({ 实体类型: value }) => ({
entityType: { value: DataUtils.transformEntityType(value) },
}),
注册国籍: ({ 注册国籍: value }) => ({
registrationCountry: {
value: DataUtils.transformRegistrationCountry(value),
},
}),
成立时间: ({ 成立时间: value }) => ({
establishedDate: { value: DateTransformer.parseDate(value) },
}),
'机构/项目简介': ({ ['机构/项目简介']: value }) => {
value ||= '';
return {
description: { value: DataUtils.cleanDescription(value) },
coverageArea: {
value: ServiceTransformer.extractCoverageFromDescription(value),
},
};
},
'机构/项目全职人数': ({ ['机构/项目全职人数']: value }) => ({
staffCount: { value: DataUtils.parseStaffCount(value) },
}),
注册地: ({ 注册地, 具体地址 }) => {
const addressData = {
province: AddressTransformer.extractProvinceFromAddress(
注册地 || 具体地址,
),
city: AddressTransformer.extractCityFromAddress(注册地 || 具体地址),
district: AddressTransformer.extractDistrictFromAddress(
注册地 || 具体地址,
),
street: 具体地址 || '',
};
return {
address: { value: AddressTransformer.transformAddress(addressData) },
};
},
机构官网: (row) => ({
services: { value: ServiceTransformer.transformServices(row) },
}),
机构微信公众号: (row) => ({
internetContact: { value: ServiceTransformer.transformContacts(row) },
}),
登记管理机关: (org) => ({
qualifications: {
value: QualificationTransformer.transformQualifications(org),
},
}),
机构联系人联系人姓名: (org) => {
const value = UserTransformer.transformUser(org);
return (
!value ? {} : { contactUser: { value, model: TargetUserModel } }
) as TargetPatch<TargetOrganization>;
},
};