pim-import 5.0.1 → 5.0.2

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,381 +0,0 @@
1
- import csv from "csv-parser";
2
- import fs from "fs";
3
- import ManageEntry from "./classes/manageEntry";
4
- import type { EntryProps } from "contentful-management/dist/typings/entities/entry";
5
- import {
6
- getEnvironmentDefaultLocaleCode,
7
- createWrapperImgix,
8
- getEntryByID,
9
- getEnvironment,
10
- createEntryWithId,
11
- } from "../libs/contentful";
12
- import { log } from "../libs/logs";
13
- import { uploadAssetByUrl } from "../libs/imgix";
14
- import { WrapperImageFields } from "../types";
15
- import { replaceAll } from "../utils";
16
- import mime from "mime-types";
17
-
18
- interface PostDownload {
19
- id: string;
20
- Title: string;
21
- "Download Products Categories"?: string;
22
- "Download Products Catalogues"?: string;
23
- "Download Legals Categories"?: string;
24
- "Download Legals Catalogues"?: string;
25
- Files_type: string;
26
- Files_text_type: string;
27
- Files_file: string;
28
- Files_site_ids: string;
29
- "Image URL": string;
30
- "Image Filename": string;
31
- "Image ID": string;
32
- "Image Title": string;
33
- "Image Caption": string;
34
- "Image Description": string;
35
- "Image Alt Text": string;
36
- "Image Featured": string;
37
- }
38
-
39
- interface PostFile {
40
- type?: string;
41
- customType?: string;
42
- url: string;
43
- }
44
- const manageEntry = new ManageEntry();
45
-
46
- const getCategoryEntry = async (
47
- categoryTitle: string
48
- ): Promise<
49
- import("contentful-management/dist/typings/entities/entry").Entry | undefined
50
- > => {
51
- const contentType = "topicDownloadCategory";
52
- const filter = {
53
- key: "fields.name",
54
- value: categoryTitle,
55
- };
56
-
57
- let categoryEntry = await manageEntry.get(contentType, filter);
58
- if (!categoryEntry) {
59
- const defEnvLocaleCode = await getEnvironmentDefaultLocaleCode();
60
- const data: Omit<EntryProps, "sys"> = {
61
- fields: {
62
- name: {},
63
- showSearchBar: {},
64
- showFilterByType: {},
65
- filterBy: {},
66
- },
67
- };
68
- data.fields.name[defEnvLocaleCode] = categoryTitle;
69
- categoryEntry = await manageEntry.add(data, contentType, filter);
70
- }
71
-
72
- return categoryEntry;
73
- };
74
-
75
- const getCatalogEntry = async (
76
- catalogTitle: string
77
- ): Promise<
78
- import("contentful-management/dist/typings/entities/entry").Entry | undefined
79
- > => {
80
- const contentType = "topicCatalog";
81
-
82
- let catalogCode: string;
83
- switch (catalogTitle) {
84
- case "Home Collections":
85
- catalogCode = "DECORATIVE";
86
- break;
87
- case "Outdoor Collections":
88
- catalogCode = "OUTDOOR";
89
- break;
90
- case "Architectural Collections":
91
- catalogCode = "ARCHITECTURAL";
92
- break;
93
- default:
94
- catalogCode = "";
95
- }
96
-
97
- if (catalogCode) {
98
- log(`Get ${contentType} by ${catalogCode} code`);
99
- const filter = {
100
- key: "fields.code",
101
- value: catalogCode,
102
- };
103
-
104
- const catalogEntry = await manageEntry.get(contentType, filter);
105
- if (!catalogEntry) {
106
- log(`No ${contentType} found by "${catalogCode}" code`, "WARN");
107
- return undefined;
108
- } else {
109
- return catalogEntry;
110
- }
111
- } else {
112
- log(`No catalogCode found for "${catalogTitle}" catalogTitle`, "WARN");
113
- return undefined;
114
- }
115
- };
116
-
117
- const getPostFiles = (post: PostDownload): PostFile[] => {
118
- const types = post.Files_type.split(",");
119
- const customTypes = post.Files_text_type.split(",");
120
- const urls = post.Files_file.split(",");
121
-
122
- const files = [];
123
- for (const [index, url] of urls.entries()) {
124
- files.push({
125
- type: types[index] || "",
126
- customType: customTypes[index] || "",
127
- url: url,
128
- });
129
- }
130
-
131
- return files;
132
- };
133
-
134
- const importFileToContentful = async (file: PostFile) => {
135
- const fileName = file.url.replace(/^.*[\\\/]/, "");
136
- const fileType = file?.type || file.customType;
137
- const assetId = fileName.split(".")[0] + "_" + fileType;
138
- if (!assetId) {
139
- log(
140
- `The asset cannot be imported because the assetId parameter is empty`,
141
- "WARN"
142
- );
143
- return undefined;
144
- }
145
-
146
- const env = await getEnvironment();
147
- let asset;
148
-
149
- try {
150
- asset = await env.getAsset(assetId);
151
- log(`Asset aleady exists with: ${asset.sys.id}`);
152
- } catch {
153
- log(`Asset not exists, importing it with id: ${assetId}`);
154
- const defEnvLocaleCode = await getEnvironmentDefaultLocaleCode();
155
- const assetData = {
156
- fields: {
157
- title: {},
158
- description: {},
159
- file: {},
160
- },
161
- } as any;
162
- if (!assetData?.fields?.title?.[defEnvLocaleCode]) {
163
- assetData.fields.title[defEnvLocaleCode] = fileName;
164
- }
165
- assetData.fields.description[defEnvLocaleCode] = fileType;
166
- assetData.fields.file[defEnvLocaleCode] = {
167
- contentType: mime.lookup(file.url) || "",
168
- fileName,
169
- upload: replaceAll(file.url, " ", "%20"),
170
- };
171
-
172
- console.log(assetData.fields.file[defEnvLocaleCode]);
173
-
174
- try {
175
- asset = await env.createAssetWithId(assetId, assetData);
176
- asset = await asset.processForAllLocales();
177
- asset = await asset.publish();
178
- } catch (err: any) {
179
- console.log(err);
180
- log(`Import asset fail`, "WARN");
181
- }
182
- }
183
-
184
- return asset;
185
- };
186
-
187
- const fixFileType = (fileType: string) => {
188
- let fileTypeFixed;
189
- switch (fileType) {
190
- case "GENERIC":
191
- fileTypeFixed = "Generic";
192
- break;
193
- default:
194
- fileTypeFixed = fileType;
195
- }
196
- return fileTypeFixed;
197
- };
198
-
199
- const getDownloadData = async (
200
- post: PostDownload
201
- ): Promise<Omit<EntryProps, "sys">> => {
202
- const catalogTitle =
203
- post["Download Products Catalogues"] || post["Download Legals Catalogues"];
204
- const catalogEntry = catalogTitle
205
- ? await getCatalogEntry(catalogTitle)
206
- : undefined;
207
-
208
- const categoryTitle =
209
- post["Download Products Categories"] || post["Download Legals Categories"];
210
- const categoryEntry = categoryTitle
211
- ? await getCategoryEntry(categoryTitle)
212
- : undefined;
213
-
214
- const defEnvLocaleCode = await getEnvironmentDefaultLocaleCode();
215
- const data: Omit<EntryProps, "sys"> = {
216
- fields: {
217
- name: {},
218
- thumbnailImgix: {},
219
- catalogs: {},
220
- category: {},
221
- brand: {},
222
- assets: {},
223
- },
224
- };
225
- data.fields.name[defEnvLocaleCode] = post.Title;
226
-
227
- if (catalogEntry?.sys.id) {
228
- data.fields.catalogs[defEnvLocaleCode] = [
229
- {
230
- sys: { type: "Link", linkType: "Entry", id: catalogEntry?.sys.id },
231
- },
232
- ];
233
- }
234
-
235
- if (categoryEntry?.sys.id) {
236
- data.fields.category[defEnvLocaleCode] = {
237
- sys: { type: "Link", linkType: "Entry", id: categoryEntry?.sys.id },
238
- };
239
- }
240
-
241
- // THUMB WRAPPER IMGIX
242
- if (post["Image Featured"]) {
243
- const url = post["Image Featured"];
244
- const wrapperImgixID = `DOWNLOAD_${post.id}`;
245
- let wrapperImgix = await getEntryByID(wrapperImgixID, "wrapperImgix");
246
- if (wrapperImgix) {
247
- log(`wrapperImgix with id ${wrapperImgixID} already exists`);
248
- data.fields.thumbnailImgix[defEnvLocaleCode] = {
249
- sys: { type: "Link", linkType: "Entry", id: wrapperImgix?.sys.id },
250
- };
251
- } else {
252
- log(
253
- `Add thumbnail imgix wrapper with id ${wrapperImgixID} to Contentful`
254
- );
255
- const altText: any = {};
256
- altText[defEnvLocaleCode] = "Thumbnail";
257
- const wrapperImgixAttributes = await uploadAssetByUrl(url);
258
- if (wrapperImgixAttributes) {
259
- const wrapperImgixFields: WrapperImageFields = {
260
- internalName: `Download Thumb - ${post.Title}`,
261
- imgixData: wrapperImgixAttributes,
262
- altText,
263
- };
264
- wrapperImgix = await createWrapperImgix(
265
- wrapperImgixID,
266
- wrapperImgixFields
267
- );
268
-
269
- data.fields.thumbnailImgix[defEnvLocaleCode] = {
270
- sys: { type: "Link", linkType: "Entry", id: wrapperImgix?.sys.id },
271
- };
272
- } else {
273
- log(
274
- `Unable to create wrapperimagix because the image was not found on imgix. Image URL: ${url}`,
275
- "WARN"
276
- );
277
- }
278
- }
279
- } else {
280
- log(`No thumbnail found`, "WARN");
281
- }
282
-
283
- if (post.Files_file) {
284
- data.fields.assets[defEnvLocaleCode] = [];
285
- const files = getPostFiles(post);
286
- for (const [index, file] of files.entries()) {
287
- const componentDownloadAssetID = `DOWNLOAD_${post.id}_${index}`;
288
- let componentDownloadAsset = await getEntryByID(
289
- componentDownloadAssetID,
290
- "componentDownloadAsset"
291
- );
292
- if (componentDownloadAsset) {
293
- log(
294
- `componentDownloadAsset with id ${componentDownloadAssetID} already exists`
295
- );
296
- } else {
297
- log(
298
- `Add componentDownloadAsset with id ${componentDownloadAssetID} to Contentful`
299
- );
300
- const fileAsset = await importFileToContentful(file);
301
- const componenteDownloadAssetData: any = {
302
- fields: {
303
- internalName: {},
304
- type: {},
305
- customType: {},
306
- asset: {},
307
- idIssuu: {},
308
- },
309
- };
310
- const fileType = file.type || file.customType;
311
- componenteDownloadAssetData.fields.internalName[
312
- defEnvLocaleCode
313
- ] = `${post.Title} ${index} ${fileType}`;
314
- if (file.type) {
315
- componenteDownloadAssetData.fields.type[defEnvLocaleCode] =
316
- fixFileType(file.type);
317
- }
318
- if (file.customType) {
319
- componenteDownloadAssetData.fields.customType[defEnvLocaleCode] =
320
- file.customType;
321
- }
322
- componenteDownloadAssetData.fields.asset[defEnvLocaleCode] = {
323
- sys: { type: "Link", linkType: "Asset", id: fileAsset?.sys.id },
324
- };
325
-
326
- componentDownloadAsset = await createEntryWithId(
327
- "componentDownloadAsset",
328
- componentDownloadAssetID,
329
- componenteDownloadAssetData,
330
- true
331
- );
332
- }
333
- data.fields.assets[defEnvLocaleCode].push({
334
- sys: {
335
- type: "Link",
336
- linkType: "Entry",
337
- id: componentDownloadAsset?.sys.id,
338
- },
339
- });
340
- }
341
- }
342
- return data;
343
- };
344
-
345
- const importPostDownload = async (post: PostDownload) => {
346
- log(`importPostDownload - ${post.Title} ID: ${post.id}`);
347
- const contentType = "topicDownload";
348
- const filter = {
349
- key: "fields.name",
350
- value: post.Title,
351
- };
352
-
353
- let downloadEntry = await manageEntry.get(contentType, filter);
354
- if (!downloadEntry) {
355
- const data = await getDownloadData(post);
356
- downloadEntry = await manageEntry.add(data, contentType, filter);
357
- } else {
358
- log(`${contentType} with ${filter.key} = ${filter.value} already exists`);
359
- }
360
-
361
- return downloadEntry;
362
- };
363
-
364
- const posts: PostDownload[] = [];
365
- export const importDownloads = async (offset: number = 0) => {
366
- fs.createReadStream("src/downloads/csv/products.csv")
367
- .pipe(csv())
368
- .on("data", (data) => posts.push(data))
369
- .on("end", async () => {
370
- let count = 0;
371
- const total = posts.length;
372
- for (const post of posts) {
373
- if (offset <= count) {
374
- log(`${++count} of ${total}`);
375
- await importPostDownload(post);
376
- } else {
377
- count++;
378
- }
379
- }
380
- });
381
- };
package/src/index.ts DELETED
@@ -1,140 +0,0 @@
1
- // import { initSentry } from "./libs/sentry";
2
- // initSentry();
3
- // export { reportError } from "./libs/sentry";
4
- export { init as initPim } from "./pim/config";
5
- export {
6
- init as initContentful,
7
- initBaseEntries,
8
- deletePages,
9
- deleteEntries,
10
- getEntryByID,
11
- getTopicPage,
12
- getEntries,
13
- } from "./libs/contentful";
14
- export {
15
- init as initS3,
16
- upload as uploadS3,
17
- saveJsonToS3,
18
- getFileFromS3,
19
- savePDFToS3,
20
- } from "./libs/s3";
21
- export {
22
- importDictionaryFields,
23
- importDictionaryIcons,
24
- importDictionaryData,
25
- importDictionaryProductLine,
26
- importDictionaryProductSubLine,
27
- } from "./pim/methods/dictionary";
28
- export { importCategories } from "./pim/methods/catalogs";
29
- export { importLatestProducts } from "./pim/methods/latestProducts";
30
- export { importModels } from "./pim/methods/models";
31
- export { importSubModels } from "./pim/methods/submodels";
32
- export { importSubFamilies } from "./pim/methods/subfamilies";
33
- export { importFamilies } from "./pim/methods/families";
34
- export {
35
- importProductByCode,
36
- setProductsRelationships,
37
- setProductRelationships,
38
- getAllProductEntriesByCatalog,
39
- audit,
40
- generateTechSpecPdf,
41
- setProductsAutodescription,
42
- getProductAutodescription,
43
- setProductAutodescriptionByTopicId,
44
- removeProductFromColorVariantsByProductLine,
45
- removeAllProductModelProductRelations,
46
- getProductPageIdByCode,
47
- reimportAuditProducts,
48
- populateDestinations,
49
- purgeProductThumbCacheByProductCodes,
50
- } from "./pim/methods/products";
51
- export { publishAllProductDrafts } from "./pim/methods/bulkPublish";
52
- export { migrateEntryFields } from "./pim/methods/migrateEntryFields";
53
- export { checkTopicDraftAndPagePublished } from "./pim/methods/checkTopicDraftAndPagePublished";
54
- // export {
55
- // createOrUpdateCatalogPages,
56
- // createOrUpdateCatalogPageByCode,
57
- // } from "./pim/methods/pages/catalogs";
58
- export { getIndex } from "./algolia/config";
59
- export {
60
- reindexFamilies,
61
- reindexFamily,
62
- removeFamilyObject,
63
- } from "./algolia/families";
64
- // export {
65
- // createOrUpdateFamilyPages,
66
- // createOrUpdateFamilyPageByCode,
67
- // } from "./pim/methods/pages/families";
68
- export {
69
- reindexSubFamilies,
70
- reindexSubFamily,
71
- removeSubFamilyObject,
72
- } from "./algolia/subFamilies";
73
- // export {
74
- // createOrUpdateSubFamilyPages,
75
- // createOrUpdateSubFamilyPageByCode,
76
- // createOrUpdateSubFamilyPagesByCatalog,
77
- // } from "./pim/methods/pages/subfamilies";
78
- export {
79
- reindexProduct,
80
- reindexProducts,
81
- removeProductObject,
82
- triggerPDFGenerator,
83
- } from "./algolia/products";
84
- export {
85
- reindexSubModel,
86
- reindexSubModels,
87
- removeSubModelObject,
88
- } from "./algolia/subModels";
89
- export {
90
- reindexModel,
91
- reindexModels,
92
- removeModelObject,
93
- } from "./algolia/models";
94
- export {
95
- reindexDownload,
96
- reindexDownloads,
97
- removeDownloadObject,
98
- } from "./algolia/downloads";
99
- export {
100
- reindexInspiration,
101
- reindexInspirations,
102
- removeInspirationObject,
103
- } from "./algolia/inspirations";
104
- export {
105
- reindexProject,
106
- reindexProjects,
107
- removeProjectObject,
108
- } from "./algolia/projects";
109
- export {
110
- reindexStory,
111
- reindexStories,
112
- removeStoryObject,
113
- } from "./algolia/stories";
114
- export {
115
- reindexPressReview,
116
- reindexPressReviews,
117
- removePressReviewObject,
118
- } from "./algolia/pressReview";
119
- export {
120
- reindexPressRelease,
121
- reindexPressReleases,
122
- removePressReleaseObject,
123
- } from "./algolia/pressRelease";
124
- export { reindexPost, reindexPosts, removePostObject } from "./algolia/news";
125
- export { importDownloads } from "./downloads/import";
126
- export { getLocalISOTime } from "./utils";
127
- export { getStaticDailyProducts, getLatestProducts } from "./pim/endpoints";
128
- export {
129
- log,
130
- setServerUtils,
131
- setLogId,
132
- setLogPath,
133
- setLogFilename,
134
- getLogFolder,
135
- } from "./libs/logs";
136
- export { removeRecordsByStatus } from "./algolia/clean";
137
- export { generatePDFByUrl } from "./libs/pdf";
138
- export { importDesigners, importDesigner } from "./pim/methods/designers";
139
- export { notify } from "./libs/notifications";
140
- export { netlifyBuild } from "./libs/netlify";