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,390 +0,0 @@
1
- import algoliasearch from "algoliasearch";
2
- // import { AvailableCatalogs } from "../types";
3
- // import { secondBetweenTwoDate } from "../utils";
4
- import { log } from "../libs/logs";
5
-
6
- export type AvailableIndicesKey =
7
- | "products"
8
- | "families"
9
- | "subFamilies"
10
- | "subModels"
11
- | "models"
12
- | "downloads"
13
- | "inspirations"
14
- | "projects"
15
- | "stories"
16
- | "pressReviews"
17
- | "pressRelease"
18
- | "news";
19
-
20
- /**
21
- * Get Algolia client
22
- */
23
- export const getClient = () => {
24
- if (process.env.FPI_ALGOLIA_APP_ID && process.env.FPI_ALGOLIA_API_KEY) {
25
- return algoliasearch(
26
- process.env.FPI_ALGOLIA_APP_ID,
27
- process.env.FPI_ALGOLIA_API_KEY
28
- );
29
- } else {
30
- throw new Error(
31
- `ALGOLIA_APP_ID or ALGOLIA_API_KEY environment variables not found`
32
- );
33
- }
34
- };
35
-
36
- /**
37
- * Index settings
38
- *
39
- * @see https://www.algolia.com/doc/api-reference/api-parameters/
40
- */
41
- export const getIndicesSettings = () => {
42
- const suffix = process?.env?.FPI_ALGOLIA_INDEX_NAME_SUFFIX ?? "";
43
- return {
44
- products: {
45
- name: `${process.env.FPI_ALGOLIA_INDEX_PRODUCTS_NAME}${suffix}`,
46
- settings: {
47
- attributesForFaceting: [
48
- "catalogs.code",
49
- "categoriesArchitectural.code",
50
- "categoriesOutdoor.code",
51
- "categoriesDecorative.code",
52
- "families.code",
53
- "subFamiliesArchitectural.code",
54
- "subFamiliesArchitectural.names",
55
- "subFamiliesOutdoor.code",
56
- "subFamiliesOutdoor.names",
57
- "subFamiliesDecorative.code",
58
- "subFamiliesDecorative.names",
59
- "modelsArchitectural.code",
60
- "modelsArchitectural.names",
61
- "modelsOutdoor.code",
62
- "modelsOutdoor.names",
63
- "modelsDecorative.code",
64
- "modelsDecorative.names",
65
- "subModelsArchitectural.code",
66
- "subModelsOutdoor.code",
67
- "subModelsDecorative.code",
68
- "productLine.code",
69
- "productSubLine.code",
70
- "productFields.mainColour.code",
71
- "productFields.mountings.code",
72
- "productFields.applications.code",
73
- "productFields.photometric.temperatureColor.code",
74
- "productFields.optical.numberOfHeads",
75
- "productFields.electrical.lampNumber",
76
- "productFields.electrical.lampType.code",
77
- "productFields.physical.length",
78
- "productFields.physical.shapes.code",
79
- "productFields.electrical.powerSupplyType.code",
80
- "productFields.certifications.code",
81
- "productFields.physical.orientations.code",
82
- "productFields.optical.lightingDistributions.code",
83
- "productFields.optical.opticalType.code",
84
- ],
85
- searchableAttributes: ["name", "code"],
86
- },
87
- },
88
- families: {
89
- name: `${process.env.FPI_ALGOLIA_INDEX_FAMILIES_NAME}${suffix}`,
90
- settings: {
91
- attributesForFaceting: [
92
- "catalogs.code",
93
- "categories.code",
94
- "productFields.certification",
95
- "productFields.mountings",
96
- "productFields.physical.orientations",
97
- "productFields.electrical.powerSupplyType", // diverTypes
98
- "productFields.optical.lightingDistributions",
99
- "productFields.optical.opticalType",
100
- "productFields.markets",
101
- "productFields.upgrade",
102
- "isNew",
103
- "slugType",
104
- ],
105
- searchableAttributes: ["names", "code"],
106
- },
107
- },
108
- subFamilies: {
109
- name: `${process.env.FPI_ALGOLIA_INDEX_SUBFAMILIES_NAME}${suffix}`,
110
- settings: {
111
- attributesForFaceting: [
112
- "catalogs.code",
113
- "categories.code",
114
- "productFields.certification",
115
- "productFields.mountings",
116
- "productFields.physical.orientations",
117
- "productFields.electrical.powerSupplyType", // diverTypes
118
- "productFields.optical.lightingDistributions",
119
- "productFields.optical.opticalType",
120
- "productFields.markets",
121
- "productFields.upgrade",
122
- "isNew",
123
- "slugType",
124
- ],
125
- searchableAttributes: ["names", "code"],
126
- },
127
- },
128
- subModels: {
129
- name: `${process.env.FPI_ALGOLIA_INDEX_SUBMODEL_NAME}${suffix}`,
130
- settings: {
131
- attributesForFaceting: [
132
- "catalog.code",
133
- "productLine.code",
134
- "subFamily.code",
135
- "parentModel.code",
136
- "productFields.mainColour",
137
- "productFields.optical.numberOfHeads",
138
- "productFields.electrical.lampNumber",
139
- ],
140
- searchableAttributes: ["names", "code"],
141
- },
142
- },
143
- models: {
144
- name: `${process.env.FPI_ALGOLIA_INDEX_MODEL_NAME}${suffix}`,
145
- settings: {
146
- attributesForFaceting: [
147
- "code",
148
- "catalog.code",
149
- "productLine.code",
150
- "subFamily.code",
151
- "productFieldFilter",
152
- ],
153
- searchableAttributes: ["names", "code"],
154
- },
155
- },
156
- downloads: {
157
- name: `${process.env.FPI_ALGOLIA_INDEX_DOWNLOAD_NAME}${suffix}`,
158
- settings: {
159
- attributesForFaceting: [
160
- "catalogs.code",
161
- "category",
162
- "brand",
163
- "assets.type",
164
- ],
165
- searchableAttributes: ["name"],
166
- replicas: [
167
- `${process.env.FPI_ALGOLIA_INDEX_DOWNLOAD_NAME}${suffix}-date-asc`,
168
- `${process.env.FPI_ALGOLIA_INDEX_DOWNLOAD_NAME}${suffix}-date-desc`,
169
- `${process.env.FPI_ALGOLIA_INDEX_DOWNLOAD_NAME}${suffix}-name-asc`,
170
- `${process.env.FPI_ALGOLIA_INDEX_DOWNLOAD_NAME}${suffix}-name-desc`,
171
- ],
172
- },
173
- },
174
- inspirations: {
175
- name: `${process.env.FPI_ALGOLIA_INDEX_INSPIRATION_NAME}${suffix}`,
176
- settings: {
177
- attributesForFaceting: [],
178
- searchableAttributes: ["name"],
179
- ranking: [],
180
- replicas: [],
181
- },
182
- },
183
- projects: {
184
- name: `${process.env.FPI_ALGOLIA_INDEX_PROJECT_NAME}${suffix}`,
185
- settings: {
186
- attributesForFaceting: [
187
- "isBespoke",
188
- "categories",
189
- "applications",
190
- "locations",
191
- ],
192
- searchableAttributes: ["name"],
193
- ranking: [
194
- // "desc(visualizationDate)",
195
- // "desc(lastSyncDate)",
196
- "typo",
197
- "geo",
198
- "words",
199
- "filters",
200
- "proximity",
201
- "attribute",
202
- "exact",
203
- "custom",
204
- ],
205
- replicas: [
206
- `${process.env.FPI_ALGOLIA_INDEX_PROJECT_NAME}${suffix}-visualizationDate-desc`,
207
- ],
208
- },
209
- },
210
- stories: {
211
- name: `${process.env.FPI_ALGOLIA_INDEX_STORY_NAME}${suffix}`,
212
- settings: {
213
- attributesForFaceting: ["category.sysId"],
214
- searchableAttributes: ["name", "excerpt", "description"],
215
- ranking: [
216
- // "desc(visualizationDate)",
217
- // "desc(lastSyncDate)",
218
- "typo",
219
- "geo",
220
- "words",
221
- "filters",
222
- "proximity",
223
- "attribute",
224
- "exact",
225
- "custom",
226
- ],
227
- replicas: [
228
- `${process.env.FPI_ALGOLIA_INDEX_STORY_NAME}${suffix}-visualizationDate-desc`,
229
- ],
230
- },
231
- },
232
- pressReviews: {
233
- name: `${process.env.FPI_ALGOLIA_INDEX_PRESS_REVIEW_NAME}${suffix}`,
234
- settings: {
235
- attributesForFaceting: ["yearOfRelease", "monthOfRelease", "country"],
236
- searchableAttributes: ["name"],
237
- ranking: [
238
- "typo",
239
- "geo",
240
- "words",
241
- "filters",
242
- "proximity",
243
- "attribute",
244
- "exact",
245
- "custom",
246
- ],
247
- replicas: [],
248
- },
249
- },
250
- pressRelease: {
251
- name: `${process.env.FPI_ALGOLIA_INDEX_PRESS_RELEASE_NAME}${suffix}`,
252
- settings: {
253
- attributesForFaceting: ["category.names"],
254
- searchableAttributes: ["name"],
255
- ranking: [
256
- "typo",
257
- "geo",
258
- "words",
259
- "filters",
260
- "proximity",
261
- "attribute",
262
- "exact",
263
- "custom",
264
- ],
265
- replicas: [],
266
- },
267
- },
268
- news: {
269
- name: `${process.env.FPI_ALGOLIA_INDEX_NEWS_NAME}${suffix}`,
270
- settings: {
271
- attributesForFaceting: [""],
272
- searchableAttributes: ["name"],
273
- ranking: [
274
- "typo",
275
- "geo",
276
- "words",
277
- "filters",
278
- "proximity",
279
- "attribute",
280
- "exact",
281
- "custom",
282
- ],
283
- replicas: [],
284
- },
285
- },
286
- };
287
- };
288
-
289
- /**
290
- * Get index configuartion settings
291
- *
292
- * @param indexKey The key of the index
293
- */
294
- export const getIndexConfig = (indexKey: AvailableIndicesKey): any => {
295
- const indicesSettings = getIndicesSettings();
296
- return indicesSettings?.[indexKey];
297
- };
298
-
299
- /**
300
- * Get index by key
301
- *
302
- * @param indexKey The key of the index
303
- * @returns
304
- */
305
- export const getIndex = (indexKey: AvailableIndicesKey) => {
306
- const indexConfigs = getIndexConfig(indexKey);
307
- if (indexConfigs) {
308
- const client = getClient();
309
- const index = client.initIndex(indexConfigs.name);
310
- console.log(`Index name: ${index.indexName}`);
311
- return index;
312
- } else {
313
- throw new Error(`There is no index with the ${indexKey} key`);
314
- }
315
- };
316
-
317
- /**
318
- * Reset index settings
319
- *
320
- * @param indexKey The key of the index
321
- * @returns
322
- */
323
- export const resetIndexSettings = (indexKey: AvailableIndicesKey) => {
324
- const indexConfigs = getIndexConfig(indexKey);
325
- if (indexConfigs) {
326
- const index = getIndex(indexKey);
327
- index.setSettings(indexConfigs.settings);
328
- log(`${indexKey} index settings resetted`);
329
- return index;
330
- } else {
331
- throw new Error(`There is no index with the ${indexKey} key`);
332
- }
333
- };
334
-
335
- /**
336
- * Remove object from specific index
337
- *
338
- * @param objectId The id of the object
339
- * @param indexKey The key of the index
340
- */
341
- export const removeIndexObject = async (
342
- objectId: string,
343
- indexKey: AvailableIndicesKey
344
- ) => {
345
- const index = getIndex(indexKey);
346
- await index.deleteObject(objectId);
347
-
348
- log(`ObjectId ${objectId} removed from ${index.indexName} Algolia index.`);
349
- };
350
-
351
- // const isObjectToDelete = (object: any) => {
352
- // return Object.entries(object).length === 1;
353
- // };
354
-
355
- // export const rsyncIndexRecord = async (indexKey, entryId) => {
356
- // // getObject()
357
- // }
358
- // export const rsyncIndexRecords = async (
359
- // indexKey: AvailableIndicesKey,
360
- // offset: number = 0,
361
- // limit: number = 50,
362
- // catalogCode?: AvailableCatalogs
363
- // ) => {
364
- // const timeStart = new Date();
365
- // log(
366
- // `rsyncIndexRecords - indexKey: ${indexKey} offset: ${offset} limit: ${limit} catalogCode: ${catalogCode}`
367
- // );
368
- // const records = await getObjects(offset, limit, catalogCode);
369
- // const objectsToSave = records.objects.filter(
370
- // (object) => !isObjectToDelete(object)
371
- // );
372
- // const objectIdsToDelete = records.objects
373
- // .filter((object) => isObjectToDelete(object))
374
- // .map((object) => object.objectID);
375
-
376
- // // Save records to Algolia
377
- // const index = getIndex(indexKey);
378
- // log(`Save ${objectsToSave.length} objects to ${index.indexName} index`);
379
- // const savedObjectIDs = await index.saveObjects(objectsToSave);
380
- // // Delete records from Algolia
381
- // log(
382
- // `Delete ${objectIdsToDelete.length} objects from ${index.indexName} index`
383
- // );
384
- // const deletedObjectIDs = await index.deleteObjects(objectIdsToDelete);
385
-
386
- // const timeEnd = new Date();
387
- // const seconds = secondBetweenTwoDate(timeStart, timeEnd);
388
- // log(`Execution time: ${seconds} seconds`);
389
- // return { ...records, ...savedObjectIDs, ...deletedObjectIDs };
390
- // };