pim-import 5.0.1 → 5.0.3

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.
Files changed (249) hide show
  1. package/dist/algolia/clean.js +0 -1
  2. package/dist/algolia/config.js +0 -1
  3. package/dist/algolia/downloads.js +0 -1
  4. package/dist/algolia/families.js +0 -1
  5. package/dist/algolia/inspirations.js +0 -1
  6. package/dist/algolia/models.js +0 -1
  7. package/dist/algolia/news.js +0 -1
  8. package/dist/algolia/pressRelease.js +0 -1
  9. package/dist/algolia/pressReview.js +0 -1
  10. package/dist/algolia/products.js +0 -1
  11. package/dist/algolia/projects.js +0 -1
  12. package/dist/algolia/stories.js +0 -1
  13. package/dist/algolia/subFamilies.js +0 -1
  14. package/dist/algolia/subModels.js +0 -1
  15. package/dist/browser.js +0 -1
  16. package/dist/downloads/classes/manageEntry.js +0 -1
  17. package/dist/downloads/import.js +0 -1
  18. package/dist/index.js +0 -1
  19. package/dist/libs/contentful-cda.js +0 -1
  20. package/dist/libs/contentful.js +0 -1
  21. package/dist/libs/imgix.js +0 -1
  22. package/dist/libs/logs.js +0 -1
  23. package/dist/libs/netlify.js +0 -1
  24. package/dist/libs/notifications.js +0 -1
  25. package/dist/libs/pdf.js +0 -1
  26. package/dist/libs/s3.js +0 -1
  27. package/dist/libs/sentry.js +0 -1
  28. package/dist/pim/config.js +0 -1
  29. package/dist/pim/endpoints.js +0 -1
  30. package/dist/pim/methods/bulkPublish.js +0 -1
  31. package/dist/pim/methods/catalogs.js +0 -1
  32. package/dist/pim/methods/checkTopicDraftAndPagePublished.js +0 -1
  33. package/dist/pim/methods/designers.js +0 -1
  34. package/dist/pim/methods/dictionary.js +0 -1
  35. package/dist/pim/methods/families.js +0 -1
  36. package/dist/pim/methods/latestProducts.js +0 -1
  37. package/dist/pim/methods/migrateEntryFields.js +0 -1
  38. package/dist/pim/methods/models.js +0 -1
  39. package/dist/pim/methods/pages/catalogs.js +0 -1
  40. package/dist/pim/methods/pages/families.js +0 -1
  41. package/dist/pim/methods/pages/subfamilies.js +0 -1
  42. package/dist/pim/methods/products.js +0 -1
  43. package/dist/pim/methods/subfamilies.js +0 -1
  44. package/dist/pim/methods/submodels.js +0 -1
  45. package/dist/pim/request.js +0 -1
  46. package/dist/resources/AllProducts.js +0 -1
  47. package/dist/resources/Audit.js +0 -1
  48. package/dist/resources/CatalogDetails.js +0 -1
  49. package/dist/resources/CollectionModels.js +0 -1
  50. package/dist/resources/CollectionSubFamilies.js +0 -1
  51. package/dist/resources/CollectionSubModels.js +0 -1
  52. package/dist/resources/DProductSubLine.js +0 -1
  53. package/dist/resources/FamilyDetails.js +0 -1
  54. package/dist/resources/ProductDetails.js +0 -1
  55. package/dist/resources/ProductRelation.js +0 -1
  56. package/dist/resources/cfFields.js +0 -1
  57. package/dist/types.js +0 -1
  58. package/dist/utils.js +0 -1
  59. package/package.json +7 -2
  60. package/.env.example +0 -45
  61. package/.nvmrc +0 -1
  62. package/.vscode/settings.json +0 -21
  63. package/dist/algolia/clean.js.map +0 -1
  64. package/dist/algolia/config.js.map +0 -1
  65. package/dist/algolia/downloads.js.map +0 -1
  66. package/dist/algolia/families.js.map +0 -1
  67. package/dist/algolia/inspirations.js.map +0 -1
  68. package/dist/algolia/models.js.map +0 -1
  69. package/dist/algolia/news.js.map +0 -1
  70. package/dist/algolia/pressRelease.js.map +0 -1
  71. package/dist/algolia/pressReview.js.map +0 -1
  72. package/dist/algolia/products.js.map +0 -1
  73. package/dist/algolia/projects.js.map +0 -1
  74. package/dist/algolia/stories.js.map +0 -1
  75. package/dist/algolia/subFamilies.js.map +0 -1
  76. package/dist/algolia/subModels.js.map +0 -1
  77. package/dist/browser.js.map +0 -1
  78. package/dist/downloads/classes/manageEntry.js.map +0 -1
  79. package/dist/downloads/import.js.map +0 -1
  80. package/dist/index.js.map +0 -1
  81. package/dist/libs/contentful-cda.js.map +0 -1
  82. package/dist/libs/contentful.js.map +0 -1
  83. package/dist/libs/imgix.js.map +0 -1
  84. package/dist/libs/logs.js.map +0 -1
  85. package/dist/libs/netlify.js.map +0 -1
  86. package/dist/libs/notifications.js.map +0 -1
  87. package/dist/libs/pdf.js.map +0 -1
  88. package/dist/libs/s3.js.map +0 -1
  89. package/dist/libs/sentry.js.map +0 -1
  90. package/dist/pim/config.js.map +0 -1
  91. package/dist/pim/endpoints.js.map +0 -1
  92. package/dist/pim/methods/bulkPublish.js.map +0 -1
  93. package/dist/pim/methods/catalogs.js.map +0 -1
  94. package/dist/pim/methods/checkTopicDraftAndPagePublished.js.map +0 -1
  95. package/dist/pim/methods/designers.js.map +0 -1
  96. package/dist/pim/methods/dictionary.js.map +0 -1
  97. package/dist/pim/methods/families.js.map +0 -1
  98. package/dist/pim/methods/latestProducts.js.map +0 -1
  99. package/dist/pim/methods/migrateEntryFields.js.map +0 -1
  100. package/dist/pim/methods/models.js.map +0 -1
  101. package/dist/pim/methods/pages/catalogs.js.map +0 -1
  102. package/dist/pim/methods/pages/families.js.map +0 -1
  103. package/dist/pim/methods/pages/subfamilies.js.map +0 -1
  104. package/dist/pim/methods/products.js.map +0 -1
  105. package/dist/pim/methods/subfamilies.js.map +0 -1
  106. package/dist/pim/methods/submodels.js.map +0 -1
  107. package/dist/pim/request.js.map +0 -1
  108. package/dist/resources/AllProducts.js.map +0 -1
  109. package/dist/resources/Audit.js.map +0 -1
  110. package/dist/resources/CatalogDetails.js.map +0 -1
  111. package/dist/resources/CollectionModels.js.map +0 -1
  112. package/dist/resources/CollectionSubFamilies.js.map +0 -1
  113. package/dist/resources/CollectionSubModels.js.map +0 -1
  114. package/dist/resources/DProductSubLine.js.map +0 -1
  115. package/dist/resources/FamilyDetails.js.map +0 -1
  116. package/dist/resources/ProductDetails.js.map +0 -1
  117. package/dist/resources/ProductRelation.js.map +0 -1
  118. package/dist/resources/cfFields.js.map +0 -1
  119. package/dist/types.js.map +0 -1
  120. package/dist/utils.js.map +0 -1
  121. package/docs/import-data-from-the-dictionary.md +0 -83
  122. package/docs/import-products.md +0 -61
  123. package/docs/import-taxonomies-from-the-catalog.md +0 -60
  124. package/docs/settings.md +0 -47
  125. package/jest.config.js +0 -16
  126. package/local-fn/reindex.js +0 -182
  127. package/src/algolia/clean.ts +0 -164
  128. package/src/algolia/config.ts +0 -390
  129. package/src/algolia/downloads.ts +0 -346
  130. package/src/algolia/families.ts +0 -652
  131. package/src/algolia/inspirations.ts +0 -315
  132. package/src/algolia/models.ts +0 -589
  133. package/src/algolia/news.ts +0 -258
  134. package/src/algolia/pressRelease.ts +0 -255
  135. package/src/algolia/pressReview.ts +0 -247
  136. package/src/algolia/products.ts +0 -731
  137. package/src/algolia/projects.ts +0 -339
  138. package/src/algolia/stories.ts +0 -347
  139. package/src/algolia/subFamilies.ts +0 -709
  140. package/src/algolia/subModels.ts +0 -359
  141. package/src/browser.ts +0 -122
  142. package/src/downloads/classes/manageEntry.ts +0 -99
  143. package/src/downloads/csv/legal.csv +0 -5
  144. package/src/downloads/csv/products.csv +0 -373
  145. package/src/downloads/import.ts +0 -381
  146. package/src/index.ts +0 -140
  147. package/src/libs/contentful-cda.ts +0 -543
  148. package/src/libs/contentful.ts +0 -1453
  149. package/src/libs/imgix.ts +0 -297
  150. package/src/libs/logs.ts +0 -121
  151. package/src/libs/netlify.ts +0 -37
  152. package/src/libs/notifications.ts +0 -104
  153. package/src/libs/pdf.ts +0 -107
  154. package/src/libs/s3.ts +0 -305
  155. package/src/libs/sentry.ts +0 -33
  156. package/src/pim/config.ts +0 -84
  157. package/src/pim/data/productFields.json +0 -1178
  158. package/src/pim/endpoints.ts +0 -364
  159. package/src/pim/methods/bulkPublish.ts +0 -266
  160. package/src/pim/methods/catalogs.ts +0 -586
  161. package/src/pim/methods/checkTopicDraftAndPagePublished.ts +0 -70
  162. package/src/pim/methods/designers.ts +0 -128
  163. package/src/pim/methods/dictionary.ts +0 -611
  164. package/src/pim/methods/families.ts +0 -345
  165. package/src/pim/methods/latestProducts.ts +0 -70
  166. package/src/pim/methods/migrateEntryFields.ts +0 -99
  167. package/src/pim/methods/models.ts +0 -349
  168. package/src/pim/methods/pages/catalogs.ts +0 -28
  169. package/src/pim/methods/pages/families.ts +0 -50
  170. package/src/pim/methods/pages/subfamilies.ts +0 -98
  171. package/src/pim/methods/products.ts +0 -3297
  172. package/src/pim/methods/subfamilies.ts +0 -706
  173. package/src/pim/methods/submodels.ts +0 -262
  174. package/src/pim/request.ts +0 -61
  175. package/src/resources/AllProducts.ts +0 -41
  176. package/src/resources/Audit.ts +0 -24
  177. package/src/resources/CatalogDetails.ts +0 -51
  178. package/src/resources/CollectionModels.ts +0 -42
  179. package/src/resources/CollectionSubFamilies.ts +0 -45
  180. package/src/resources/CollectionSubModels.ts +0 -36
  181. package/src/resources/DProductSubLine.ts +0 -34
  182. package/src/resources/FamilyDetails.ts +0 -31
  183. package/src/resources/ProductDetails.ts +0 -352
  184. package/src/resources/ProductRelation.ts +0 -24
  185. package/src/resources/cfFields.ts +0 -8
  186. package/src/types.ts +0 -268
  187. package/src/utils.ts +0 -553
  188. package/tsconfig.json +0 -93
  189. package/tslint.json +0 -22
  190. package/types/libs/puppeteer.d.ts +0 -17
  191. package/types/pim/methods/checkIp.d.ts +0 -1
  192. /package/{types → dist}/algolia/clean.d.ts +0 -0
  193. /package/{types → dist}/algolia/config.d.ts +0 -0
  194. /package/{types → dist}/algolia/downloads.d.ts +0 -0
  195. /package/{types → dist}/algolia/families.d.ts +0 -0
  196. /package/{types → dist}/algolia/inspirations.d.ts +0 -0
  197. /package/{types → dist}/algolia/models.d.ts +0 -0
  198. /package/{types → dist}/algolia/news.d.ts +0 -0
  199. /package/{types → dist}/algolia/pressRelease.d.ts +0 -0
  200. /package/{types → dist}/algolia/pressReview.d.ts +0 -0
  201. /package/{types → dist}/algolia/products.d.ts +0 -0
  202. /package/{types → dist}/algolia/projects.d.ts +0 -0
  203. /package/{types → dist}/algolia/stories.d.ts +0 -0
  204. /package/{types → dist}/algolia/subFamilies.d.ts +0 -0
  205. /package/{types → dist}/algolia/subModels.d.ts +0 -0
  206. /package/{types → dist}/browser.d.ts +0 -0
  207. /package/{types → dist}/downloads/classes/manageEntry.d.ts +0 -0
  208. /package/{types → dist}/downloads/import.d.ts +0 -0
  209. /package/{types → dist}/index.d.ts +0 -0
  210. /package/{types → dist}/libs/contentful-cda.d.ts +0 -0
  211. /package/{types → dist}/libs/contentful.d.ts +0 -0
  212. /package/{types → dist}/libs/imgix.d.ts +0 -0
  213. /package/{types → dist}/libs/logs.d.ts +0 -0
  214. /package/{types → dist}/libs/netlify.d.ts +0 -0
  215. /package/{types → dist}/libs/notifications.d.ts +0 -0
  216. /package/{types → dist}/libs/pdf.d.ts +0 -0
  217. /package/{types → dist}/libs/s3.d.ts +0 -0
  218. /package/{types → dist}/libs/sentry.d.ts +0 -0
  219. /package/{types → dist}/pim/config.d.ts +0 -0
  220. /package/{types → dist}/pim/endpoints.d.ts +0 -0
  221. /package/{types → dist}/pim/methods/bulkPublish.d.ts +0 -0
  222. /package/{types → dist}/pim/methods/catalogs.d.ts +0 -0
  223. /package/{types → dist}/pim/methods/checkTopicDraftAndPagePublished.d.ts +0 -0
  224. /package/{types → dist}/pim/methods/designers.d.ts +0 -0
  225. /package/{types → dist}/pim/methods/dictionary.d.ts +0 -0
  226. /package/{types → dist}/pim/methods/families.d.ts +0 -0
  227. /package/{types → dist}/pim/methods/latestProducts.d.ts +0 -0
  228. /package/{types → dist}/pim/methods/migrateEntryFields.d.ts +0 -0
  229. /package/{types → dist}/pim/methods/models.d.ts +0 -0
  230. /package/{types → dist}/pim/methods/pages/catalogs.d.ts +0 -0
  231. /package/{types → dist}/pim/methods/pages/families.d.ts +0 -0
  232. /package/{types → dist}/pim/methods/pages/subfamilies.d.ts +0 -0
  233. /package/{types → dist}/pim/methods/products.d.ts +0 -0
  234. /package/{types → dist}/pim/methods/subfamilies.d.ts +0 -0
  235. /package/{types → dist}/pim/methods/submodels.d.ts +0 -0
  236. /package/{types → dist}/pim/request.d.ts +0 -0
  237. /package/{types → dist}/resources/AllProducts.d.ts +0 -0
  238. /package/{types → dist}/resources/Audit.d.ts +0 -0
  239. /package/{types → dist}/resources/CatalogDetails.d.ts +0 -0
  240. /package/{types → dist}/resources/CollectionModels.d.ts +0 -0
  241. /package/{types → dist}/resources/CollectionSubFamilies.d.ts +0 -0
  242. /package/{types → dist}/resources/CollectionSubModels.d.ts +0 -0
  243. /package/{types → dist}/resources/DProductSubLine.d.ts +0 -0
  244. /package/{types → dist}/resources/FamilyDetails.d.ts +0 -0
  245. /package/{types → dist}/resources/ProductDetails.d.ts +0 -0
  246. /package/{types → dist}/resources/ProductRelation.d.ts +0 -0
  247. /package/{types → dist}/resources/cfFields.d.ts +0 -0
  248. /package/{types → dist}/types.d.ts +0 -0
  249. /package/{types → dist}/utils.d.ts +0 -0
@@ -1,349 +0,0 @@
1
- import { getOtherCatalogData } from "../endpoints";
2
- import {
3
- updateEntry,
4
- createEntryWithId,
5
- getEnvironmentDefaultLocaleCode,
6
- getEntryByID,
7
- getEntryByCode,
8
- cfLocales,
9
- addFieldValue,
10
- addToRelationFields,
11
- } from "../../libs/contentful";
12
- import { log, serverUtils } from "../../libs/logs";
13
- import type {
14
- Entry,
15
- CreateEntryProps,
16
- } from "contentful-management/dist/typings/entities/entry";
17
- import {
18
- CollectionModels,
19
- PagedCollectionEntity,
20
- } from "../../resources/CollectionModels";
21
- import {
22
- sleep,
23
- getPimTranslations,
24
- stringToSlug,
25
- getLocalISOTime,
26
- } from "../../utils";
27
- import { PaginationResults, CfLocalizedEntryField } from "../../types";
28
- import { updateComponentModelPagesToSubFamilyPage } from "./subfamilies";
29
- import { setHideInRegionField } from "./products";
30
-
31
- const getModelPageData = async (
32
- names: CfLocalizedEntryField,
33
- slugs: CfLocalizedEntryField,
34
- pageId: string,
35
- modelEntry: Entry,
36
- modelPageEntry: Entry
37
- ): Promise<CreateEntryProps> => {
38
- const defEnvLocaleCode = await getEnvironmentDefaultLocaleCode();
39
- const pageData: CreateEntryProps = {
40
- fields: modelPageEntry?.fields || {},
41
- };
42
-
43
- pageData.fields.title = names;
44
- pageData.fields.slug = slugs;
45
-
46
- pageData.fields = await addFieldValue(pageData, "internalName", pageId);
47
- pageData.fields = await addFieldValue(pageData, "type", "CatalogModel");
48
-
49
- // Topic
50
- pageData.fields = await addToRelationFields(
51
- pageData,
52
- "topic",
53
- modelEntry.sys.id
54
- );
55
-
56
- const destinations =
57
- modelEntry?.fields?.destinations?.[defEnvLocaleCode] || [];
58
- pageData.fields = await setHideInRegionField(destinations, pageData);
59
-
60
- return pageData;
61
- };
62
-
63
- /**
64
- * Create or update model page
65
- *
66
- * @param modelEntry
67
- * @returns
68
- */
69
- const createOrUpdatePage = async (modelEntry: Entry): Promise<Entry> => {
70
- const defaultEnvironmentLocaleCode = await getEnvironmentDefaultLocaleCode();
71
- const pageId = `${modelEntry.sys.id}_PAGE`;
72
- const names: CfLocalizedEntryField = {};
73
- const slugs: CfLocalizedEntryField = {};
74
-
75
- for (const locale of cfLocales) {
76
- names[locale] =
77
- modelEntry.fields.name[locale] ||
78
- modelEntry.fields.name[defaultEnvironmentLocaleCode];
79
- }
80
-
81
- for (const locale of cfLocales) {
82
- slugs[locale] = stringToSlug(
83
- `${
84
- modelEntry.fields.name[locale] ||
85
- modelEntry.fields.name[defaultEnvironmentLocaleCode]
86
- }-${modelEntry.fields.code[defaultEnvironmentLocaleCode]}`.toLowerCase()
87
- );
88
- }
89
-
90
- // PAGE
91
- let modelPageEntry: Entry = await getEntryByID(pageId, "page");
92
- const pageData: CreateEntryProps = await getModelPageData(
93
- names,
94
- slugs,
95
- pageId,
96
- modelEntry,
97
- modelPageEntry
98
- );
99
- if (modelPageEntry) {
100
- log(`Model page ${pageId} already exists. Updating...`);
101
- modelPageEntry = await updateEntry(
102
- modelPageEntry,
103
- pageData,
104
- modelPageEntry.isPublished()
105
- );
106
- } else {
107
- log(`Model page ${pageId} not exists. Create new entry with data`);
108
- modelPageEntry = await createEntryWithId("page", pageId, pageData);
109
- }
110
-
111
- return modelPageEntry;
112
- };
113
-
114
- const getTopicModelData = async (
115
- model: PagedCollectionEntity,
116
- topicModel: Entry
117
- ) => {
118
- const defaultEnvironmentLocaleCode = await getEnvironmentDefaultLocaleCode();
119
-
120
- const data: CreateEntryProps = {
121
- fields: topicModel?.fields || {},
122
- };
123
- data.fields.name = getPimTranslations(model.data);
124
- data.fields = await addFieldValue(data, "code", model.code);
125
- data.fields = await addFieldValue(data, "priority", model.priority);
126
- data.fields.description = getPimTranslations(model, "description1");
127
-
128
- // Related subFamily
129
- if (model.subFamilyCode) {
130
- const subFamilyEntry = await getEntryByCode(
131
- model.subFamilyCode,
132
- "topicSubFamily",
133
- "sys,fields.code,fields.catalog"
134
- );
135
- if (subFamilyEntry) {
136
- data.fields = await addToRelationFields(
137
- data,
138
- "subFamily",
139
- subFamilyEntry.sys.id
140
- );
141
-
142
- // Catalog
143
- data.fields = await addToRelationFields(
144
- data,
145
- "catalog",
146
- subFamilyEntry.fields.catalog[defaultEnvironmentLocaleCode].sys.id
147
- );
148
- } else {
149
- log(
150
- `topicSubFamily with code ${model.subFamilyCode} not found so it is not possible to set subFamily and the catalog fields`,
151
- "WARN"
152
- );
153
- }
154
- } else {
155
- log(
156
- `subFamily not set so it is not possible to set it and the catalog fields`,
157
- "WARN"
158
- );
159
- }
160
-
161
- // Related productLine
162
- if (model.productLineCode) {
163
- const productLineEntry = await getEntryByCode(
164
- model.productLineCode,
165
- "topicProductLine",
166
- "sys,fields.code"
167
- );
168
- if (productLineEntry) {
169
- data.fields = await addToRelationFields(
170
- data,
171
- "productLine",
172
- productLineEntry.sys.id
173
- );
174
- } else {
175
- log(
176
- `topicProductLine with code ${model.productLineCode} not found`,
177
- "WARN"
178
- );
179
- }
180
- }
181
-
182
- // Related productLine
183
- if (model.productLineCode) {
184
- const productLineEntry = await getEntryByCode(
185
- model.productLineCode,
186
- "topicProductLine",
187
- "sys,fields.code"
188
- );
189
- if (productLineEntry) {
190
- data.fields = await addToRelationFields(
191
- data,
192
- "productLine",
193
- productLineEntry.sys.id
194
- );
195
- } else {
196
- log(
197
- `topicProductLine with code ${model.productLineCode} not found`,
198
- "WARN"
199
- );
200
- }
201
- }
202
-
203
- // Related designer
204
- if (model.designers.length) {
205
- const designerCode = model.designers[0].code;
206
- const designerEntry = await getEntryByCode(
207
- designerCode,
208
- "topicDesigner",
209
- "sys,fields.code"
210
- );
211
- if (designerEntry) {
212
- data.fields = await addToRelationFields(
213
- data,
214
- "designer",
215
- designerEntry.sys.id
216
- );
217
- } else {
218
- log(`topicDesigner with code ${designerCode} not found`, "WARN");
219
- }
220
- }
221
-
222
- // Destinations
223
- if (model?.destinations?.length) {
224
- log(`set destinations`);
225
- data.fields = await addFieldValue(data, "destinations", model.destinations);
226
- } else {
227
- log(`destinations not found`, "WARN");
228
- }
229
-
230
- // lastPimSyncDate
231
- data.fields = await addFieldValue(data, "lastPimSyncDate", getLocalISOTime());
232
-
233
- return data;
234
- };
235
-
236
- const updateComponentModelOfSubFamilyPages = async (topicModel: Entry) => {
237
- const defaultEnvironmentLocaleCode = await getEnvironmentDefaultLocaleCode();
238
- const subFamilyId =
239
- topicModel?.fields?.subFamily?.[defaultEnvironmentLocaleCode]?.sys?.id;
240
- if (subFamilyId) {
241
- const subFamilyEntry = await getEntryByID(subFamilyId, "topicSubFamily");
242
- if (subFamilyEntry) {
243
- log(
244
- `Add ${topicModel?.sys?.id} to componentModelPages of the ${subFamilyEntry.sys.id} subFamily page`
245
- );
246
- const subFamilyPageEntry = await updateComponentModelPagesToSubFamilyPage(
247
- subFamilyEntry
248
- );
249
- log(`${subFamilyPageEntry?.sys?.id} subFamilyPage updated`);
250
- } else {
251
- log(
252
- `subFamily entry with id ${subFamilyId} not found, I cannot add the relationship with the ${topicModel?.sys?.id} model to the componentModelPages contained in the subfamily page`,
253
- "WARN"
254
- );
255
- }
256
- } else {
257
- log(
258
- `subFamilyId not found to model ${topicModel?.sys?.id}, I cannot add the relationship to the componentModelPages contained in the subfamily page`,
259
- "WARN"
260
- );
261
- }
262
- };
263
-
264
- /**
265
- * Import model
266
- *
267
- * @param model
268
- * @returns
269
- */
270
- const importModel = async (model: PagedCollectionEntity): Promise<Entry> => {
271
- const code = `${model.code}`;
272
- let topicModel: Entry = await getEntryByID(code, "topicModel");
273
-
274
- const topicModelData: CreateEntryProps = await getTopicModelData(
275
- model,
276
- topicModel
277
- );
278
- if (topicModel) {
279
- log(`The topicModel ${code} already exists. Updating...`);
280
- topicModel = await updateEntry(
281
- topicModel,
282
- topicModelData,
283
- topicModel.isPublished()
284
- );
285
- } else {
286
- log(`The topicModel ${code} not exists. Creating...`);
287
- topicModel = await createEntryWithId("topicModel", code, topicModelData);
288
- }
289
-
290
- return topicModel;
291
- };
292
-
293
- /**
294
- * Import Models
295
- *
296
- * @param {number} offset Default 0
297
- * @param {number} limit Range 0-40. Default 40
298
- * @returns {object}
299
- */
300
- export const importModels = async (
301
- offset: number = 0,
302
- limit: number = 40
303
- ): Promise<PaginationResults> => {
304
- log(`importModels - offset: ${offset}, limit: ${limit}`, "INFO");
305
- const models = await getOtherCatalogData<CollectionModels>(
306
- "models",
307
- offset,
308
- limit
309
- );
310
- const total = models?.pagedCollection?.length || 0;
311
-
312
- if (models?.pagedCollection?.length) {
313
- log(`Founded ${total} models`);
314
- let count = offset;
315
- let current: number = 0;
316
- for (const model of models.pagedCollection) {
317
- log(`${++count} of ${models.totalCount}`);
318
-
319
- const topicModel = await importModel(model);
320
-
321
- await createOrUpdatePage(topicModel);
322
- await updateComponentModelOfSubFamilyPages(topicModel);
323
-
324
- if (serverUtils) {
325
- serverUtils.log(model.code);
326
- const progress = Math.floor(
327
- (++current / models.pagedCollection.length) * 100
328
- );
329
- serverUtils.updateProgress(progress);
330
- }
331
-
332
- // Max 7 calls per seconds
333
- if (count % 2 === 0 && count < models.totalCount) {
334
- await sleep(1000);
335
- }
336
- }
337
- } else {
338
- log(`No models found`);
339
- }
340
-
341
- const nextOffset = Number(offset) + Number(limit);
342
-
343
- return {
344
- offset: nextOffset,
345
- limit: Number(limit),
346
- completed: nextOffset >= models.totalCount,
347
- total: models.totalCount,
348
- };
349
- };
@@ -1,28 +0,0 @@
1
- import { getAllEntries, getEntryByID } from "../../../libs/contentful";
2
- import { importCatalogPage } from "../catalogs";
3
- import { AvailableCatalogs } from "../../../types";
4
- import { log } from "../../../libs/logs";
5
-
6
- export const createOrUpdateCatalogPages = async () => {
7
- const allTopicCatalgs = await getAllEntries("topicCatalog");
8
-
9
- if (allTopicCatalgs) {
10
- for (const topicCatalog of allTopicCatalgs) {
11
- await importCatalogPage(topicCatalog);
12
- }
13
- } else {
14
- log(`No topicCatalog not found`, "WARN");
15
- }
16
- };
17
-
18
- export const createOrUpdateCatalogPageByCode = async (
19
- catalogCode: AvailableCatalogs
20
- ) => {
21
- const topicCatalog = await getEntryByID(catalogCode, "topicCatalog");
22
-
23
- if (topicCatalog) {
24
- await importCatalogPage(topicCatalog);
25
- } else {
26
- log(`topicCatalog ${catalogCode} not found`, "WARN");
27
- }
28
- };
@@ -1,50 +0,0 @@
1
- import { getAllEntries, getEntryByID } from "../../../libs/contentful";
2
- import { createOrUpdatePage } from "../families";
3
- import { log } from "../../../libs/logs";
4
-
5
- export const createOrUpdateFamilyPages = async (
6
- offset: number,
7
- limit: number = 10
8
- ) => {
9
- const allTopics = await getAllEntries("topicFamily");
10
-
11
- if (allTopics) {
12
- let count: number = 0;
13
- const total = allTopics.length;
14
- for (const topic of allTopics) {
15
- if (offset <= count || limit === -1) {
16
- log(`${count + 1} of ${total}`);
17
- await createOrUpdatePage(topic);
18
- if (limit !== -1 && count + 1 - offset >= limit) {
19
- break;
20
- }
21
- }
22
- count++;
23
- }
24
-
25
- const nextOffset = Number(offset) + Number(limit);
26
-
27
- return {
28
- offset: nextOffset,
29
- limit: Number(limit),
30
- completed: nextOffset >= total,
31
- };
32
- } else {
33
- log(`No topicFamily not found`, "WARN");
34
- return {
35
- offset: Number(offset),
36
- limit: Number(limit),
37
- completed: true,
38
- };
39
- }
40
- };
41
-
42
- export const createOrUpdateFamilyPageByCode = async (familyCode: string) => {
43
- const topic = await getEntryByID(familyCode, "topicFamily");
44
-
45
- if (topic) {
46
- await createOrUpdatePage(topic);
47
- } else {
48
- log(`topicFamily ${familyCode} not found`, "WARN");
49
- }
50
- };
@@ -1,98 +0,0 @@
1
- import { getAllEntries, getEntryByID } from "../../../libs/contentful";
2
- import { createOrUpdatePage } from "../subfamilies";
3
- import { AvailableCatalogs } from "../../../types";
4
- import { log } from "../../../libs/logs";
5
-
6
- export const createOrUpdateSubFamilyPages = async (
7
- offset: number,
8
- limit: number = 10
9
- ) => {
10
- const allTopics = await getAllEntries("topicSubFamily");
11
-
12
- if (allTopics) {
13
- let count: number = 0;
14
- const total = allTopics.length;
15
- for (const topic of allTopics) {
16
- if (offset <= count || limit === -1) {
17
- log(`${count + 1} of ${total}`);
18
- await createOrUpdatePage(topic);
19
- if (limit !== -1 && count + 1 - offset >= limit) {
20
- break;
21
- }
22
- }
23
- count++;
24
- }
25
-
26
- const nextOffset = Number(offset) + Number(limit);
27
-
28
- return {
29
- offset: nextOffset,
30
- limit: Number(limit),
31
- completed: nextOffset >= total,
32
- };
33
- } else {
34
- log(`No topicSubFamily not found`, "WARN");
35
- return {
36
- offset: Number(offset),
37
- limit: Number(limit),
38
- completed: true,
39
- };
40
- }
41
- };
42
-
43
- export const createOrUpdateSubFamilyPageByCode = async (
44
- subfamilyCode: string
45
- ) => {
46
- const topic = await getEntryByID(subfamilyCode, "topicSubFamily");
47
-
48
- if (topic) {
49
- await createOrUpdatePage(topic);
50
- } else {
51
- log(`topicSubFamily ${subfamilyCode} not found`, "WARN");
52
- }
53
- };
54
-
55
- export const createOrUpdateSubFamilyPagesByCatalog = async (
56
- catalogCode: AvailableCatalogs,
57
- offset: number,
58
- limit: number = 10
59
- ) => {
60
- const allTopics = await getAllEntries(
61
- "topicSubFamily",
62
- "",
63
- "fields.catalog.sys.id",
64
- catalogCode
65
- );
66
-
67
- if (allTopics) {
68
- let count: number = 0;
69
- const total = allTopics.length;
70
- for (const topic of allTopics) {
71
- if (offset <= count || limit === -1) {
72
- log(`${count + 1} of ${total}`);
73
- await createOrUpdatePage(topic);
74
-
75
- if (limit !== -1 && count + 1 - offset >= limit) {
76
- break;
77
- }
78
- }
79
- count++;
80
- }
81
-
82
- const nextOffset = Number(offset) + Number(limit);
83
-
84
- return {
85
- offset: nextOffset,
86
- limit: Number(limit),
87
- completed: nextOffset >= total,
88
- };
89
- } else {
90
- log(`No topicSubFamily not found on catalog ${catalogCode}`, "WARN");
91
-
92
- return {
93
- offset: Number(offset),
94
- limit: Number(limit),
95
- completed: true,
96
- };
97
- }
98
- };