@adobe/spacecat-shared-data-access 1.15.0 → 1.15.2-test

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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [@adobe/spacecat-shared-data-access-v1.15.2](https://github.com/adobe/spacecat-shared/compare/@adobe/spacecat-shared-data-access-v1.15.1...@adobe/spacecat-shared-data-access-v1.15.2) (2024-02-07)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * increase it test timeout ([70d92a2](https://github.com/adobe/spacecat-shared/commit/70d92a25b1571b5de2c22be4c71e3142dff360ad))
7
+
8
+ # [@adobe/spacecat-shared-data-access-v1.15.1](https://github.com/adobe/spacecat-shared/compare/@adobe/spacecat-shared-data-access-v1.15.0...@adobe/spacecat-shared-data-access-v1.15.1) (2024-02-07)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * retrieve site candidate by base url ([#140](https://github.com/adobe/spacecat-shared/issues/140)) ([b37cb0b](https://github.com/adobe/spacecat-shared/commit/b37cb0b1948f87e0e791cfec1e2b1fef9c0abb07))
14
+
1
15
  # [@adobe/spacecat-shared-data-access-v1.15.0](https://github.com/adobe/spacecat-shared/compare/@adobe/spacecat-shared-data-access-v1.14.1...@adobe/spacecat-shared-data-access-v1.15.0) (2024-02-06)
2
16
 
3
17
 
package/README.md CHANGED
@@ -73,6 +73,7 @@ The module provides two main DAOs:
73
73
  - `removeSite`
74
74
 
75
75
  ### Site Candidate Functions
76
+ - `getSiteCandidateByBaseURL`
76
77
  - `upsertSiteCandidate`
77
78
  - `siteCandidateExists`
78
79
  - `updateSiteCandidate`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/spacecat-shared-data-access",
3
- "version": "1.15.0",
3
+ "version": "1.15.2-test",
4
4
  "description": "Shared modules of the Spacecat Services - Data Access",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -40,7 +40,7 @@
40
40
  "devDependencies": {
41
41
  "chai": "4.4.1",
42
42
  "chai-as-promised": "7.1.1",
43
- "dynamo-db-local": "7.3.0",
43
+ "dynamo-db-local": "8.0.0",
44
44
  "sinon": "17.0.1",
45
45
  "sinon-chai": "3.7.0"
46
46
  }
@@ -10,6 +10,8 @@
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
12
 
13
+ import { createSiteCandidate } from '../models/site-candidate.js';
14
+
13
15
  /**
14
16
  * Data transfer object for Site Candidate.
15
17
  */
@@ -28,4 +30,23 @@ export const SiteCandidateDto = {
28
30
  updatedAt: siteCandidate.getUpdatedAt(),
29
31
  updatedBy: siteCandidate.getUpdatedBy(),
30
32
  }),
33
+
34
+ /**
35
+ * Converts a DynamoDB item into Site Candidate object;
36
+ * @param {object } dynamoItem - DynamoDB item.
37
+ * @returns {Readonly<SiteCandidate>} SiteCandidate object.
38
+ */
39
+ fromDynamoItem: (dynamoItem) => {
40
+ const siteCandidateData = {
41
+ baseURL: dynamoItem.baseURL,
42
+ siteId: dynamoItem.siteId,
43
+ source: dynamoItem.source,
44
+ status: dynamoItem.status,
45
+ createdAt: dynamoItem.createdAt,
46
+ updatedAt: dynamoItem.updatedAt,
47
+ updatedBy: dynamoItem.updatedBy,
48
+ };
49
+
50
+ return createSiteCandidate(siteCandidateData);
51
+ },
31
52
  };
package/src/index.d.ts CHANGED
@@ -403,6 +403,7 @@ export interface DataAccess {
403
403
  ) => Promise<void>;
404
404
 
405
405
  // site candidate functions
406
+ getSiteCandidateByBaseURL: (baseURL: string) => Promise<SiteCandidate>;
406
407
  upsertSiteCandidate: (siteCandidateDate: object) => Promise<SiteCandidate>;
407
408
  siteCandidateExists: (baseURL: string) => Promise<boolean>;
408
409
  updateSiteCandidate: (siteCandidate: SiteCandidate) => Promise<SiteCandidate>;
@@ -43,18 +43,9 @@ function validateConfiguration(config) {
43
43
 
44
44
  export const Config = (data = {}) => {
45
45
  const validConfig = validateConfiguration(data);
46
- const state = {
47
- slack: {
48
- ...(validConfig?.slack?.channel ? { channel: validConfig?.slack?.channel } : {}),
49
- ...(validConfig?.slack?.workspace ? { workspace: validConfig?.slack?.workspace } : {}),
50
- },
51
- alerts: validConfig.alerts || [],
52
- };
46
+ const state = { ...validConfig };
53
47
 
54
- const self = {
55
- alerts: state.alerts,
56
- slack: state.slack,
57
- };
48
+ const self = { ...state };
58
49
 
59
50
  return Object.freeze(self);
60
51
  };
@@ -27,6 +27,17 @@ export const exists = async (dynamoClient, config, baseURL) => {
27
27
  return isObject(dynamoItem);
28
28
  };
29
29
 
30
+ export const getSiteCandidateByBaseURL = async (
31
+ dynamoClient,
32
+ config,
33
+ log,
34
+ baseURL,
35
+ ) => {
36
+ const dynamoItem = await dynamoClient.getItem(config.tableNameSiteCandidates, { baseURL });
37
+
38
+ return isObject(dynamoItem) ? SiteCandidateDto.fromDynamoItem(dynamoItem) : null;
39
+ };
40
+
30
41
  /**
31
42
  * Upserts a site candidate.
32
43
  *
@@ -11,12 +11,19 @@
11
11
  */
12
12
 
13
13
  import {
14
+ getSiteCandidateByBaseURL,
14
15
  upsertSiteCandidate,
15
16
  exists,
16
17
  updateSiteCandidate,
17
18
  } from './accessPatterns.js';
18
19
 
19
20
  export const siteCandidateFunctions = (dynamoClient, config, log) => ({
21
+ getSiteCandidateByBaseURL: (baseURL) => getSiteCandidateByBaseURL(
22
+ dynamoClient,
23
+ config,
24
+ log,
25
+ baseURL,
26
+ ),
20
27
  upsertSiteCandidate: (siteCandidateData) => upsertSiteCandidate(
21
28
  dynamoClient,
22
29
  config,