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.
- package/dist/algolia/clean.js +0 -1
- package/dist/algolia/config.js +0 -1
- package/dist/algolia/downloads.js +0 -1
- package/dist/algolia/families.js +0 -1
- package/dist/algolia/inspirations.js +0 -1
- package/dist/algolia/models.js +0 -1
- package/dist/algolia/news.js +0 -1
- package/dist/algolia/pressRelease.js +0 -1
- package/dist/algolia/pressReview.js +0 -1
- package/dist/algolia/products.js +0 -1
- package/dist/algolia/projects.js +0 -1
- package/dist/algolia/stories.js +0 -1
- package/dist/algolia/subFamilies.js +0 -1
- package/dist/algolia/subModels.js +0 -1
- package/dist/browser.js +0 -1
- package/dist/downloads/classes/manageEntry.js +0 -1
- package/dist/downloads/import.js +0 -1
- package/dist/index.js +0 -1
- package/dist/libs/contentful-cda.js +0 -1
- package/dist/libs/contentful.js +0 -1
- package/dist/libs/imgix.js +0 -1
- package/dist/libs/logs.js +0 -1
- package/dist/libs/netlify.js +0 -1
- package/dist/libs/notifications.js +0 -1
- package/dist/libs/pdf.js +0 -1
- package/dist/libs/s3.js +0 -1
- package/dist/libs/sentry.js +0 -1
- package/dist/pim/config.js +0 -1
- package/dist/pim/endpoints.js +0 -1
- package/dist/pim/methods/bulkPublish.js +0 -1
- package/dist/pim/methods/catalogs.js +0 -1
- package/dist/pim/methods/checkTopicDraftAndPagePublished.js +0 -1
- package/dist/pim/methods/designers.js +0 -1
- package/dist/pim/methods/dictionary.js +0 -1
- package/dist/pim/methods/families.js +0 -1
- package/dist/pim/methods/latestProducts.js +0 -1
- package/dist/pim/methods/migrateEntryFields.js +0 -1
- package/dist/pim/methods/models.js +0 -1
- package/dist/pim/methods/pages/catalogs.js +0 -1
- package/dist/pim/methods/pages/families.js +0 -1
- package/dist/pim/methods/pages/subfamilies.js +0 -1
- package/dist/pim/methods/products.js +0 -1
- package/dist/pim/methods/subfamilies.js +0 -1
- package/dist/pim/methods/submodels.js +0 -1
- package/dist/pim/request.js +0 -1
- package/dist/resources/AllProducts.js +0 -1
- package/dist/resources/Audit.js +0 -1
- package/dist/resources/CatalogDetails.js +0 -1
- package/dist/resources/CollectionModels.js +0 -1
- package/dist/resources/CollectionSubFamilies.js +0 -1
- package/dist/resources/CollectionSubModels.js +0 -1
- package/dist/resources/DProductSubLine.js +0 -1
- package/dist/resources/FamilyDetails.js +0 -1
- package/dist/resources/ProductDetails.js +0 -1
- package/dist/resources/ProductRelation.js +0 -1
- package/dist/resources/cfFields.js +0 -1
- package/dist/types.js +0 -1
- package/dist/utils.js +0 -1
- package/package.json +7 -2
- package/.env.example +0 -45
- package/.nvmrc +0 -1
- package/.vscode/settings.json +0 -21
- package/dist/algolia/clean.js.map +0 -1
- package/dist/algolia/config.js.map +0 -1
- package/dist/algolia/downloads.js.map +0 -1
- package/dist/algolia/families.js.map +0 -1
- package/dist/algolia/inspirations.js.map +0 -1
- package/dist/algolia/models.js.map +0 -1
- package/dist/algolia/news.js.map +0 -1
- package/dist/algolia/pressRelease.js.map +0 -1
- package/dist/algolia/pressReview.js.map +0 -1
- package/dist/algolia/products.js.map +0 -1
- package/dist/algolia/projects.js.map +0 -1
- package/dist/algolia/stories.js.map +0 -1
- package/dist/algolia/subFamilies.js.map +0 -1
- package/dist/algolia/subModels.js.map +0 -1
- package/dist/browser.js.map +0 -1
- package/dist/downloads/classes/manageEntry.js.map +0 -1
- package/dist/downloads/import.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/libs/contentful-cda.js.map +0 -1
- package/dist/libs/contentful.js.map +0 -1
- package/dist/libs/imgix.js.map +0 -1
- package/dist/libs/logs.js.map +0 -1
- package/dist/libs/netlify.js.map +0 -1
- package/dist/libs/notifications.js.map +0 -1
- package/dist/libs/pdf.js.map +0 -1
- package/dist/libs/s3.js.map +0 -1
- package/dist/libs/sentry.js.map +0 -1
- package/dist/pim/config.js.map +0 -1
- package/dist/pim/endpoints.js.map +0 -1
- package/dist/pim/methods/bulkPublish.js.map +0 -1
- package/dist/pim/methods/catalogs.js.map +0 -1
- package/dist/pim/methods/checkTopicDraftAndPagePublished.js.map +0 -1
- package/dist/pim/methods/designers.js.map +0 -1
- package/dist/pim/methods/dictionary.js.map +0 -1
- package/dist/pim/methods/families.js.map +0 -1
- package/dist/pim/methods/latestProducts.js.map +0 -1
- package/dist/pim/methods/migrateEntryFields.js.map +0 -1
- package/dist/pim/methods/models.js.map +0 -1
- package/dist/pim/methods/pages/catalogs.js.map +0 -1
- package/dist/pim/methods/pages/families.js.map +0 -1
- package/dist/pim/methods/pages/subfamilies.js.map +0 -1
- package/dist/pim/methods/products.js.map +0 -1
- package/dist/pim/methods/subfamilies.js.map +0 -1
- package/dist/pim/methods/submodels.js.map +0 -1
- package/dist/pim/request.js.map +0 -1
- package/dist/resources/AllProducts.js.map +0 -1
- package/dist/resources/Audit.js.map +0 -1
- package/dist/resources/CatalogDetails.js.map +0 -1
- package/dist/resources/CollectionModels.js.map +0 -1
- package/dist/resources/CollectionSubFamilies.js.map +0 -1
- package/dist/resources/CollectionSubModels.js.map +0 -1
- package/dist/resources/DProductSubLine.js.map +0 -1
- package/dist/resources/FamilyDetails.js.map +0 -1
- package/dist/resources/ProductDetails.js.map +0 -1
- package/dist/resources/ProductRelation.js.map +0 -1
- package/dist/resources/cfFields.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils.js.map +0 -1
- package/docs/import-data-from-the-dictionary.md +0 -83
- package/docs/import-products.md +0 -61
- package/docs/import-taxonomies-from-the-catalog.md +0 -60
- package/docs/settings.md +0 -47
- package/jest.config.js +0 -16
- package/local-fn/reindex.js +0 -182
- package/src/algolia/clean.ts +0 -164
- package/src/algolia/config.ts +0 -390
- package/src/algolia/downloads.ts +0 -346
- package/src/algolia/families.ts +0 -652
- package/src/algolia/inspirations.ts +0 -315
- package/src/algolia/models.ts +0 -589
- package/src/algolia/news.ts +0 -258
- package/src/algolia/pressRelease.ts +0 -255
- package/src/algolia/pressReview.ts +0 -247
- package/src/algolia/products.ts +0 -731
- package/src/algolia/projects.ts +0 -339
- package/src/algolia/stories.ts +0 -347
- package/src/algolia/subFamilies.ts +0 -709
- package/src/algolia/subModels.ts +0 -359
- package/src/browser.ts +0 -122
- package/src/downloads/classes/manageEntry.ts +0 -99
- package/src/downloads/csv/legal.csv +0 -5
- package/src/downloads/csv/products.csv +0 -373
- package/src/downloads/import.ts +0 -381
- package/src/index.ts +0 -140
- package/src/libs/contentful-cda.ts +0 -543
- package/src/libs/contentful.ts +0 -1453
- package/src/libs/imgix.ts +0 -297
- package/src/libs/logs.ts +0 -121
- package/src/libs/netlify.ts +0 -37
- package/src/libs/notifications.ts +0 -104
- package/src/libs/pdf.ts +0 -107
- package/src/libs/s3.ts +0 -305
- package/src/libs/sentry.ts +0 -33
- package/src/pim/config.ts +0 -84
- package/src/pim/data/productFields.json +0 -1178
- package/src/pim/endpoints.ts +0 -364
- package/src/pim/methods/bulkPublish.ts +0 -266
- package/src/pim/methods/catalogs.ts +0 -586
- package/src/pim/methods/checkTopicDraftAndPagePublished.ts +0 -70
- package/src/pim/methods/designers.ts +0 -128
- package/src/pim/methods/dictionary.ts +0 -611
- package/src/pim/methods/families.ts +0 -345
- package/src/pim/methods/latestProducts.ts +0 -70
- package/src/pim/methods/migrateEntryFields.ts +0 -99
- package/src/pim/methods/models.ts +0 -349
- package/src/pim/methods/pages/catalogs.ts +0 -28
- package/src/pim/methods/pages/families.ts +0 -50
- package/src/pim/methods/pages/subfamilies.ts +0 -98
- package/src/pim/methods/products.ts +0 -3297
- package/src/pim/methods/subfamilies.ts +0 -706
- package/src/pim/methods/submodels.ts +0 -262
- package/src/pim/request.ts +0 -61
- package/src/resources/AllProducts.ts +0 -41
- package/src/resources/Audit.ts +0 -24
- package/src/resources/CatalogDetails.ts +0 -51
- package/src/resources/CollectionModels.ts +0 -42
- package/src/resources/CollectionSubFamilies.ts +0 -45
- package/src/resources/CollectionSubModels.ts +0 -36
- package/src/resources/DProductSubLine.ts +0 -34
- package/src/resources/FamilyDetails.ts +0 -31
- package/src/resources/ProductDetails.ts +0 -352
- package/src/resources/ProductRelation.ts +0 -24
- package/src/resources/cfFields.ts +0 -8
- package/src/types.ts +0 -268
- package/src/utils.ts +0 -553
- package/tsconfig.json +0 -93
- package/tslint.json +0 -22
- package/types/libs/puppeteer.d.ts +0 -17
- package/types/pim/methods/checkIp.d.ts +0 -1
- /package/{types → dist}/algolia/clean.d.ts +0 -0
- /package/{types → dist}/algolia/config.d.ts +0 -0
- /package/{types → dist}/algolia/downloads.d.ts +0 -0
- /package/{types → dist}/algolia/families.d.ts +0 -0
- /package/{types → dist}/algolia/inspirations.d.ts +0 -0
- /package/{types → dist}/algolia/models.d.ts +0 -0
- /package/{types → dist}/algolia/news.d.ts +0 -0
- /package/{types → dist}/algolia/pressRelease.d.ts +0 -0
- /package/{types → dist}/algolia/pressReview.d.ts +0 -0
- /package/{types → dist}/algolia/products.d.ts +0 -0
- /package/{types → dist}/algolia/projects.d.ts +0 -0
- /package/{types → dist}/algolia/stories.d.ts +0 -0
- /package/{types → dist}/algolia/subFamilies.d.ts +0 -0
- /package/{types → dist}/algolia/subModels.d.ts +0 -0
- /package/{types → dist}/browser.d.ts +0 -0
- /package/{types → dist}/downloads/classes/manageEntry.d.ts +0 -0
- /package/{types → dist}/downloads/import.d.ts +0 -0
- /package/{types → dist}/index.d.ts +0 -0
- /package/{types → dist}/libs/contentful-cda.d.ts +0 -0
- /package/{types → dist}/libs/contentful.d.ts +0 -0
- /package/{types → dist}/libs/imgix.d.ts +0 -0
- /package/{types → dist}/libs/logs.d.ts +0 -0
- /package/{types → dist}/libs/netlify.d.ts +0 -0
- /package/{types → dist}/libs/notifications.d.ts +0 -0
- /package/{types → dist}/libs/pdf.d.ts +0 -0
- /package/{types → dist}/libs/s3.d.ts +0 -0
- /package/{types → dist}/libs/sentry.d.ts +0 -0
- /package/{types → dist}/pim/config.d.ts +0 -0
- /package/{types → dist}/pim/endpoints.d.ts +0 -0
- /package/{types → dist}/pim/methods/bulkPublish.d.ts +0 -0
- /package/{types → dist}/pim/methods/catalogs.d.ts +0 -0
- /package/{types → dist}/pim/methods/checkTopicDraftAndPagePublished.d.ts +0 -0
- /package/{types → dist}/pim/methods/designers.d.ts +0 -0
- /package/{types → dist}/pim/methods/dictionary.d.ts +0 -0
- /package/{types → dist}/pim/methods/families.d.ts +0 -0
- /package/{types → dist}/pim/methods/latestProducts.d.ts +0 -0
- /package/{types → dist}/pim/methods/migrateEntryFields.d.ts +0 -0
- /package/{types → dist}/pim/methods/models.d.ts +0 -0
- /package/{types → dist}/pim/methods/pages/catalogs.d.ts +0 -0
- /package/{types → dist}/pim/methods/pages/families.d.ts +0 -0
- /package/{types → dist}/pim/methods/pages/subfamilies.d.ts +0 -0
- /package/{types → dist}/pim/methods/products.d.ts +0 -0
- /package/{types → dist}/pim/methods/subfamilies.d.ts +0 -0
- /package/{types → dist}/pim/methods/submodels.d.ts +0 -0
- /package/{types → dist}/pim/request.d.ts +0 -0
- /package/{types → dist}/resources/AllProducts.d.ts +0 -0
- /package/{types → dist}/resources/Audit.d.ts +0 -0
- /package/{types → dist}/resources/CatalogDetails.d.ts +0 -0
- /package/{types → dist}/resources/CollectionModels.d.ts +0 -0
- /package/{types → dist}/resources/CollectionSubFamilies.d.ts +0 -0
- /package/{types → dist}/resources/CollectionSubModels.d.ts +0 -0
- /package/{types → dist}/resources/DProductSubLine.d.ts +0 -0
- /package/{types → dist}/resources/FamilyDetails.d.ts +0 -0
- /package/{types → dist}/resources/ProductDetails.d.ts +0 -0
- /package/{types → dist}/resources/ProductRelation.d.ts +0 -0
- /package/{types → dist}/resources/cfFields.d.ts +0 -0
- /package/{types → dist}/types.d.ts +0 -0
- /package/{types → dist}/utils.d.ts +0 -0
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import { log } from "../libs/logs";
|
|
2
|
-
import {
|
|
3
|
-
getClient,
|
|
4
|
-
getEnvironmentDefaultLocaleCode,
|
|
5
|
-
getEntryByID,
|
|
6
|
-
} from "../libs/contentful-cda";
|
|
7
|
-
import { getIndex, AvailableIndicesKey, removeIndexObject } from "./config";
|
|
8
|
-
import {
|
|
9
|
-
getAllTranslations,
|
|
10
|
-
getLocalISOTime,
|
|
11
|
-
secondBetweenTwoDate,
|
|
12
|
-
} from "../utils";
|
|
13
|
-
import type { Entry } from "contentful-management/dist/typings/entities/entry";
|
|
14
|
-
import {
|
|
15
|
-
CfLocalizedEntryField,
|
|
16
|
-
AlgoliaPaginateRecords,
|
|
17
|
-
WrapperImageFields,
|
|
18
|
-
} from "../types";
|
|
19
|
-
import { getWrapperImgixFields } from "../libs/imgix";
|
|
20
|
-
import { getAssetsByComponentAssetIds } from "./downloads";
|
|
21
|
-
|
|
22
|
-
const indexKey: AvailableIndicesKey = "pressReviews";
|
|
23
|
-
|
|
24
|
-
export type AlgoliaPressReviewRecord = {
|
|
25
|
-
objectID: string;
|
|
26
|
-
name?: CfLocalizedEntryField;
|
|
27
|
-
yearOfRelease?: string;
|
|
28
|
-
monthOfRelease?: string;
|
|
29
|
-
country?: string;
|
|
30
|
-
thumbnailImgix?: WrapperImageFields | {};
|
|
31
|
-
asset?: {};
|
|
32
|
-
lastSyncDate?: string;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const isObjectToDelete = (
|
|
36
|
-
object: any,
|
|
37
|
-
defaultEnvironmentLocaleCode: string
|
|
38
|
-
) => {
|
|
39
|
-
return !object?.name?.[defaultEnvironmentLocaleCode];
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const getObject = async (
|
|
43
|
-
topicPressReview: Entry
|
|
44
|
-
): Promise<AlgoliaPressReviewRecord> => {
|
|
45
|
-
const defaultEnvironmentLocaleCode = await getEnvironmentDefaultLocaleCode();
|
|
46
|
-
log(`Sync the ${topicPressReview.sys.id} topicPressReview...`);
|
|
47
|
-
let topicPressReviewWithFields: Entry = topicPressReview;
|
|
48
|
-
|
|
49
|
-
if (!topicPressReviewWithFields?.fields) {
|
|
50
|
-
log(`Get the ${topicPressReview.sys.id} topicPressReview details...`);
|
|
51
|
-
topicPressReviewWithFields = await getEntryByID(
|
|
52
|
-
topicPressReview.sys.id,
|
|
53
|
-
"topicPressReview"
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (!topicPressReviewWithFields) {
|
|
58
|
-
log(`The topicPressReview ${topicPressReview.sys.id} not found`, "WARN");
|
|
59
|
-
|
|
60
|
-
const recordFail: AlgoliaPressReviewRecord = {
|
|
61
|
-
objectID: topicPressReview?.sys?.id,
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
return recordFail; // return objectID to delete the record if it exists
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
log(`Get thumbnail imgix details...`);
|
|
68
|
-
let thumbnailImgix = {};
|
|
69
|
-
const thumbnailImgixWrapperImgixID =
|
|
70
|
-
topicPressReviewWithFields?.fields?.thumbnailImageImgix?.[
|
|
71
|
-
defaultEnvironmentLocaleCode
|
|
72
|
-
]?.sys.id;
|
|
73
|
-
if (thumbnailImgixWrapperImgixID) {
|
|
74
|
-
thumbnailImgix = await getWrapperImgixFields(thumbnailImgixWrapperImgixID);
|
|
75
|
-
} else {
|
|
76
|
-
log(`No thumbnail imgix found`, "WARN");
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
log(`Get asset details...`);
|
|
80
|
-
const fileId =
|
|
81
|
-
topicPressReviewWithFields?.fields?.asset?.[defaultEnvironmentLocaleCode]
|
|
82
|
-
?.sys?.id;
|
|
83
|
-
let asset = {};
|
|
84
|
-
if (fileId) {
|
|
85
|
-
const componentAssetIds = await getAssetsByComponentAssetIds([fileId]);
|
|
86
|
-
asset = componentAssetIds ? componentAssetIds[0] : {};
|
|
87
|
-
} else {
|
|
88
|
-
log(`No asset found`, "WARN");
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Single record
|
|
92
|
-
const record: AlgoliaPressReviewRecord = {
|
|
93
|
-
objectID: topicPressReviewWithFields.sys.id,
|
|
94
|
-
name: await getAllTranslations(
|
|
95
|
-
topicPressReviewWithFields?.fields?.name || {}
|
|
96
|
-
),
|
|
97
|
-
yearOfRelease:
|
|
98
|
-
topicPressReviewWithFields?.fields?.yearOfRelease?.[
|
|
99
|
-
defaultEnvironmentLocaleCode
|
|
100
|
-
] || "",
|
|
101
|
-
monthOfRelease:
|
|
102
|
-
topicPressReviewWithFields?.fields?.monthOfRelease?.[
|
|
103
|
-
defaultEnvironmentLocaleCode
|
|
104
|
-
] || "",
|
|
105
|
-
country:
|
|
106
|
-
topicPressReviewWithFields?.fields?.country?.[
|
|
107
|
-
defaultEnvironmentLocaleCode
|
|
108
|
-
] || "",
|
|
109
|
-
thumbnailImgix,
|
|
110
|
-
asset,
|
|
111
|
-
lastSyncDate: getLocalISOTime(),
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
return record;
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
export const reindexPressReview = async (topicPressReviewId: string) => {
|
|
118
|
-
const defaultEnvironmentLocaleCode = await getEnvironmentDefaultLocaleCode();
|
|
119
|
-
const timeStart = new Date();
|
|
120
|
-
|
|
121
|
-
log(`reindexPressReview - entryId: ${topicPressReviewId} `);
|
|
122
|
-
|
|
123
|
-
const topicPressReview = await getEntryByID(
|
|
124
|
-
topicPressReviewId,
|
|
125
|
-
"topicPressReview"
|
|
126
|
-
);
|
|
127
|
-
|
|
128
|
-
const index = getIndex(indexKey);
|
|
129
|
-
let record = null;
|
|
130
|
-
if (!topicPressReview) {
|
|
131
|
-
log(
|
|
132
|
-
`No topicPressReviewId found with id ${topicPressReviewId}. Delete object if exists`,
|
|
133
|
-
"WARN"
|
|
134
|
-
);
|
|
135
|
-
record = await index.deleteObject(topicPressReviewId);
|
|
136
|
-
return { ...record };
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const object = await getObject(topicPressReview);
|
|
140
|
-
|
|
141
|
-
// Save record to Algolia
|
|
142
|
-
if (!isObjectToDelete(object, defaultEnvironmentLocaleCode)) {
|
|
143
|
-
log(`Save object`);
|
|
144
|
-
record = await index.saveObject(object);
|
|
145
|
-
} else {
|
|
146
|
-
log(`Delete object`);
|
|
147
|
-
record = await index.deleteObject(object.objectID);
|
|
148
|
-
}
|
|
149
|
-
const timeEnd = new Date();
|
|
150
|
-
const seconds = secondBetweenTwoDate(timeStart, timeEnd);
|
|
151
|
-
log(`Execution time: ${seconds} seconds`);
|
|
152
|
-
|
|
153
|
-
return { ...record, ...object };
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Get Objects
|
|
158
|
-
*
|
|
159
|
-
* @param offset
|
|
160
|
-
* @param limit
|
|
161
|
-
* @param filterKey
|
|
162
|
-
* @param filterValue
|
|
163
|
-
* @returns
|
|
164
|
-
*/
|
|
165
|
-
const getObjects = async (
|
|
166
|
-
offset: number,
|
|
167
|
-
limit: number,
|
|
168
|
-
filterKey?: string,
|
|
169
|
-
filterValue?: string
|
|
170
|
-
): Promise<AlgoliaPaginateRecords> => {
|
|
171
|
-
const client = await getClient();
|
|
172
|
-
|
|
173
|
-
const opts: any = {
|
|
174
|
-
content_type: "topicPressReview",
|
|
175
|
-
limit,
|
|
176
|
-
skip: offset,
|
|
177
|
-
// select: "",
|
|
178
|
-
};
|
|
179
|
-
if (filterKey && filterValue) {
|
|
180
|
-
opts[filterKey] = filterValue;
|
|
181
|
-
}
|
|
182
|
-
const { items, total } = await client.withAllLocales.getEntries(opts);
|
|
183
|
-
|
|
184
|
-
const objects: AlgoliaPressReviewRecord[] = [];
|
|
185
|
-
let count: number = Number(offset);
|
|
186
|
-
for (const topicPressReview of items) {
|
|
187
|
-
log(`${++count} of ${total}`, "INFO");
|
|
188
|
-
const timeStart = new Date();
|
|
189
|
-
const record = await getObject(topicPressReview);
|
|
190
|
-
const timeEnd = new Date();
|
|
191
|
-
const seconds = secondBetweenTwoDate(timeStart, timeEnd);
|
|
192
|
-
log(`Execution time: ${seconds} seconds`);
|
|
193
|
-
objects.push(record);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
return {
|
|
197
|
-
objects,
|
|
198
|
-
offset: Number(offset) + Number(limit),
|
|
199
|
-
limit: Number(limit),
|
|
200
|
-
completed: count >= total, // if is true the import is completed
|
|
201
|
-
total,
|
|
202
|
-
};
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
export const reindexPressReviews = async (
|
|
206
|
-
offset: number = 0,
|
|
207
|
-
limit: number = 50,
|
|
208
|
-
filterKey: string = "",
|
|
209
|
-
filterValue: string = ""
|
|
210
|
-
) => {
|
|
211
|
-
const defaultEnvironmentLocaleCode = await getEnvironmentDefaultLocaleCode();
|
|
212
|
-
const timeStart = new Date();
|
|
213
|
-
log(
|
|
214
|
-
`reindexPressReviews - filterKey: ${filterKey} filterValue: ${filterValue} offset: ${offset} limit: ${limit} `
|
|
215
|
-
);
|
|
216
|
-
|
|
217
|
-
const records = await getObjects(offset, limit, filterKey, filterValue);
|
|
218
|
-
const objectsToSave = records.objects.filter(
|
|
219
|
-
(object) => !isObjectToDelete(object, defaultEnvironmentLocaleCode)
|
|
220
|
-
);
|
|
221
|
-
const objectIdsToDelete = records.objects
|
|
222
|
-
.filter((object) => isObjectToDelete(object, defaultEnvironmentLocaleCode))
|
|
223
|
-
.map((object) => object.objectID);
|
|
224
|
-
|
|
225
|
-
// Save records to Algolia
|
|
226
|
-
const index = getIndex(indexKey);
|
|
227
|
-
log(`Save ${objectsToSave.length} objects to ${index.indexName} index`);
|
|
228
|
-
const savedObjectIDs = await index.saveObjects(objectsToSave);
|
|
229
|
-
log(
|
|
230
|
-
`Delete ${objectIdsToDelete.length} objects from ${index.indexName} index`
|
|
231
|
-
);
|
|
232
|
-
const deletedObjectIDs = await index.deleteObjects(objectIdsToDelete);
|
|
233
|
-
|
|
234
|
-
const timeEnd = new Date();
|
|
235
|
-
const seconds = secondBetweenTwoDate(timeStart, timeEnd);
|
|
236
|
-
log(`Execution time: ${seconds} seconds`);
|
|
237
|
-
|
|
238
|
-
return {
|
|
239
|
-
...records,
|
|
240
|
-
savedObjectIDs: savedObjectIDs.objectIDs,
|
|
241
|
-
deletedObjectIDs: deletedObjectIDs.objectIDs,
|
|
242
|
-
};
|
|
243
|
-
};
|
|
244
|
-
|
|
245
|
-
export const removePressReviewObject = async (objectId: string) => {
|
|
246
|
-
return removeIndexObject(objectId, indexKey);
|
|
247
|
-
};
|