@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 +14 -0
- package/README.md +1 -0
- package/package.json +2 -2
- package/src/dto/site-candidate.js +21 -0
- package/src/index.d.ts +1 -0
- package/src/models/site/config.js +2 -11
- package/src/service/site-candidates/accessPatterns.js +11 -0
- package/src/service/site-candidates/index.js +7 -0
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/spacecat-shared-data-access",
|
|
3
|
-
"version": "1.15.
|
|
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": "
|
|
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,
|