@exabugs/dynamodb-client 0.8.0 → 0.9.0
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 +38 -0
- package/dist/client/Collection.d.ts +6 -2
- package/dist/client/Collection.d.ts.map +1 -1
- package/dist/client/Collection.js +9 -7
- package/dist/client/Collection.js.map +1 -1
- package/dist/server/handler.cjs +69 -13
- package/dist/server/handler.cjs.map +3 -3
- package/dist/server/operations/updateOne.d.ts +5 -6
- package/dist/server/operations/updateOne.d.ts.map +1 -1
- package/dist/server/operations/updateOne.js +110 -21
- package/dist/server/operations/updateOne.js.map +1 -1
- package/dist/server/types.d.ts +10 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/shared/types/index.d.ts +14 -0
- package/dist/shared/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/terraform/modules/parameter-store/outputs.tf +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.9.0] - 2024-12-29
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Upsert Option for updateOne/updateMany**: MongoDB-compatible upsert functionality
|
|
15
|
+
- Added `UpdateOneOptions` and `UpdateManyOptions` types with `upsert` boolean option
|
|
16
|
+
- Added `upsertedId` field to `UpdateResult` type (set when a new document is created via upsert)
|
|
17
|
+
- Server-side implementation: `handleUpsertCreate` and `handleUpsertUpdate` functions
|
|
18
|
+
- Client-side implementation: Third parameter (options) for `updateOne` and `updateMany` methods
|
|
19
|
+
- Automatic timestamp management: `createdAt` and `updatedAt` are automatically set on upsert
|
|
20
|
+
- Automatic shadow record generation: Shadow records are created/updated during upsert operations
|
|
21
|
+
- Comprehensive test coverage: Unit tests and integration tests for upsert functionality
|
|
22
|
+
- Complete documentation: API reference, usage examples, and migration guide in `docs/API.md`
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- **API Enhancement**: `updateOne` and `updateMany` methods now accept an optional third parameter for options
|
|
27
|
+
- Backward compatible: Existing code continues to work without changes
|
|
28
|
+
- Default behavior unchanged: `upsert` defaults to `false`
|
|
29
|
+
|
|
30
|
+
### Documentation
|
|
31
|
+
|
|
32
|
+
- **API Reference**: Updated `docs/API.md` with detailed upsert option documentation
|
|
33
|
+
- Added UpdateOneOptions and UpdateManyOptions type definitions
|
|
34
|
+
- Added UpdateResult.upsertedId field explanation
|
|
35
|
+
- Added practical usage examples for upsert operations
|
|
36
|
+
- Added migration guide from v0.3.x to v0.4.x
|
|
37
|
+
- Added FAQ section for common upsert questions
|
|
38
|
+
|
|
39
|
+
## [0.8.1] - 2025-12-28
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- **Terraform Outputs**: Removed deleted Cognito parameters from parameter-store module outputs
|
|
44
|
+
- Removed `cognito_user_pool_id`, `cognito_client_id`, `cognito_domain` from outputs.tf
|
|
45
|
+
- These parameters were removed in v0.8.0 but outputs.tf was not updated
|
|
46
|
+
- Fixes Terraform validation errors in consuming projects
|
|
47
|
+
|
|
10
48
|
## [0.8.0] - 2025-12-28
|
|
11
49
|
|
|
12
50
|
### BREAKING CHANGES
|
|
@@ -49,8 +49,12 @@ export declare class Collection<TSchema extends ResultBase = ResultBase, TAuthOp
|
|
|
49
49
|
findMany(ids: string[]): Promise<TSchema[]>;
|
|
50
50
|
insertOne(document: InputBase & Omit<TSchema, 'id'>): Promise<InsertOneResult>;
|
|
51
51
|
insertMany(documents: (InputBase & Omit<TSchema, 'id'>)[]): Promise<InsertManyResult>;
|
|
52
|
-
updateOne(filter: Filter<TSchema>, update: UpdateOperators<TSchema
|
|
53
|
-
|
|
52
|
+
updateOne(filter: Filter<TSchema>, update: UpdateOperators<TSchema>, options?: {
|
|
53
|
+
upsert?: boolean;
|
|
54
|
+
}): Promise<UpdateResult>;
|
|
55
|
+
updateMany(filter: Filter<TSchema>, update: UpdateOperators<TSchema>, options?: {
|
|
56
|
+
upsert?: boolean;
|
|
57
|
+
}): Promise<UpdateResult>;
|
|
54
58
|
deleteOne(filter: Filter<TSchema>): Promise<DeleteResult>;
|
|
55
59
|
deleteMany(filter: Filter<TSchema>): Promise<DeleteResult>;
|
|
56
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/client/Collection.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,YAAY,GAAG,OAAO,IAAI,CACtD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,YAAY,KACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,YAAY,GAAG,OAAO;IAEnF,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;gBALd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,YAAY,GAAG,SAAS,EACrC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,cAAc,EAAE,iBAAiB,CAAC,YAAY,CAAC;IAGzD,OAAO,IAAI,MAAM;IAIjB,WAAW,IAAI,MAAM;IAIrB,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,cAAc,IAAI,YAAY,GAAG,SAAS;IAI1C;;OAEG;YACW,OAAO;IAuDrB,IAAI,CAAC,MAAM,GAAE,MAAM,CAAC,OAAO,CAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC;IAatF,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAUzD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAU3C,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAS9E,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBrF,SAAS,CACb,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EACvB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/client/Collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -129,18 +129,20 @@ export class Collection {
|
|
|
129
129
|
errors: result.errors,
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
|
-
async updateOne(filter, update) {
|
|
133
|
-
const response = await this.request('updateOne', { filter, update });
|
|
132
|
+
async updateOne(filter, update, options) {
|
|
133
|
+
const response = await this.request('updateOne', { filter, update, options });
|
|
134
134
|
const result = response;
|
|
135
|
+
// __upsertedIdフラグをupsertedIdに変換
|
|
136
|
+
const upsertedId = result.__upsertedId || result.upsertedId;
|
|
135
137
|
return {
|
|
136
138
|
acknowledged: true,
|
|
137
|
-
matchedCount:
|
|
138
|
-
modifiedCount:
|
|
139
|
-
upsertedId
|
|
139
|
+
matchedCount: upsertedId ? 0 : 1, // upsertで新規作成の場合は0
|
|
140
|
+
modifiedCount: upsertedId ? 0 : 1, // upsertで新規作成の場合は0
|
|
141
|
+
upsertedId,
|
|
140
142
|
};
|
|
141
143
|
}
|
|
142
|
-
async updateMany(filter, update) {
|
|
143
|
-
const response = await this.request('updateMany', { filter, update });
|
|
144
|
+
async updateMany(filter, update, options) {
|
|
145
|
+
const response = await this.request('updateMany', { filter, update, options });
|
|
144
146
|
// Records Lambdaは統一形式 { count, successIds, failedIds, errors } を返す
|
|
145
147
|
// MongoDB互換形式に変換
|
|
146
148
|
const result = response;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/client/Collection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAWtE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA2B7C;;;;;;;;GAQG;AACH,MAAM,OAAO,UAAU;IAEX;IACA;IACA;IACA;IACA;IACA;IANV,YACU,QAAgB,EAChB,cAAsB,EACtB,SAA6B,EAC7B,WAAqC,EACrC,aAAwC,EACxC,cAA+C;QAL/C,aAAQ,GAAR,QAAQ,CAAQ;QAChB,mBAAc,GAAd,cAAc,CAAQ;QACtB,cAAS,GAAT,SAAS,CAAoB;QAC7B,gBAAW,GAAX,WAAW,CAA0B;QACrC,kBAAa,GAAb,aAAa,CAA2B;QACxC,mBAAc,GAAd,cAAc,CAAiC;IACtD,CAAC;IAEJ,OAAO;QACL,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,MAA+B;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,OAAO,GAA2B;YACpC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,wBAAwB;QACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5F,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzC,oCAAoC;QACpC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QACxD,CAAC;QAED,WAAW;QACX,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,uBAAuB,CAAC;QACvE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC1C,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAEnF,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAC;YAC5D,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,IAAI,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAA0B,EAAE,EAAE,OAAqB;QACtD,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,cAAc,EACnB,MAAM,EACN,OAAO,EACP,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAuB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,oDAAoD;QACpD,qBAAqB;QACrB,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACtF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,QAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAa;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACjF,yBAAyB;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAqB,CAAC;QAC/B,CAAC;QACD,MAAM,WAAW,GAAG,QAAiC,CAAC;QACtD,OAAO,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAyC;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,QAAkC,CAAC;QAClD,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAA8C;QAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,mEAAmE;QACnE,iBAAiB;QACjB,MAAM,MAAM,GAAG,QAKd,CAAC;QACF,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;YAChC,WAAW,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;YACpC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAuB,EACvB,MAAgC;
|
|
1
|
+
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/client/Collection.ts"],"names":[],"mappings":"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"}
|
package/dist/server/handler.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @exabugs/dynamodb-client v0.
|
|
2
|
-
// Built: 2025-12-
|
|
1
|
+
// @exabugs/dynamodb-client v0.9.0
|
|
2
|
+
// Built: 2025-12-29T14:15:35.409Z
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -31063,11 +31063,13 @@ function applyJsonMergePatch2(target, patch) {
|
|
|
31063
31063
|
}
|
|
31064
31064
|
__name(applyJsonMergePatch2, "applyJsonMergePatch");
|
|
31065
31065
|
async function handleUpdateOne(resource, params, requestId) {
|
|
31066
|
-
const { id, data: patchData } = params;
|
|
31066
|
+
const { id, data: patchData, options } = params;
|
|
31067
|
+
const upsert = options?.upsert ?? false;
|
|
31067
31068
|
logger18.debug("Executing updateOne", {
|
|
31068
31069
|
requestId,
|
|
31069
31070
|
resource,
|
|
31070
|
-
id
|
|
31071
|
+
id,
|
|
31072
|
+
upsert
|
|
31071
31073
|
});
|
|
31072
31074
|
const dbClient2 = getDBClient();
|
|
31073
31075
|
const tableName = getTableName();
|
|
@@ -31086,9 +31088,63 @@ async function handleUpdateOne(resource, params, requestId) {
|
|
|
31086
31088
|
"GetItem"
|
|
31087
31089
|
);
|
|
31088
31090
|
if (!getResult.Item) {
|
|
31089
|
-
|
|
31091
|
+
if (!upsert) {
|
|
31092
|
+
throw new ItemNotFoundError(`Record not found: ${id}`, { resource, id });
|
|
31093
|
+
}
|
|
31094
|
+
return await handleUpsertCreate(resource, id, patchData, requestId);
|
|
31090
31095
|
}
|
|
31091
|
-
|
|
31096
|
+
return await handleUpsertUpdate(resource, id, getResult.Item, patchData, requestId);
|
|
31097
|
+
}
|
|
31098
|
+
__name(handleUpdateOne, "handleUpdateOne");
|
|
31099
|
+
async function handleUpsertCreate(resource, id, data2, requestId) {
|
|
31100
|
+
const recordData = addCreateTimestamps({ ...data2, id });
|
|
31101
|
+
const shadowConfig = getShadowConfig();
|
|
31102
|
+
const shadowRecords = generateShadowRecords(recordData, resource, shadowConfig);
|
|
31103
|
+
const shadowKeys = shadowRecords.map((shadow) => shadow.SK);
|
|
31104
|
+
const transactItems = [];
|
|
31105
|
+
transactItems.push({
|
|
31106
|
+
Put: {
|
|
31107
|
+
TableName: getTableName(),
|
|
31108
|
+
Item: {
|
|
31109
|
+
PK: resource,
|
|
31110
|
+
SK: generateMainRecordSK2(id),
|
|
31111
|
+
data: {
|
|
31112
|
+
...recordData,
|
|
31113
|
+
__shadowKeys: shadowKeys
|
|
31114
|
+
}
|
|
31115
|
+
}
|
|
31116
|
+
}
|
|
31117
|
+
});
|
|
31118
|
+
for (const shadowRecord of shadowRecords) {
|
|
31119
|
+
transactItems.push({
|
|
31120
|
+
Put: {
|
|
31121
|
+
TableName: getTableName(),
|
|
31122
|
+
Item: shadowRecord
|
|
31123
|
+
}
|
|
31124
|
+
});
|
|
31125
|
+
}
|
|
31126
|
+
await executeDynamoDBOperation(
|
|
31127
|
+
() => getDBClient().send(
|
|
31128
|
+
new import_lib_dynamodb12.TransactWriteCommand({
|
|
31129
|
+
TransactItems: transactItems
|
|
31130
|
+
})
|
|
31131
|
+
),
|
|
31132
|
+
"TransactWriteItems"
|
|
31133
|
+
);
|
|
31134
|
+
logger18.info("updateOne upsert created", {
|
|
31135
|
+
requestId,
|
|
31136
|
+
resource,
|
|
31137
|
+
id,
|
|
31138
|
+
shadowsCreated: shadowKeys.length
|
|
31139
|
+
});
|
|
31140
|
+
return {
|
|
31141
|
+
...removeShadowKeys(recordData),
|
|
31142
|
+
__upsertedId: id
|
|
31143
|
+
};
|
|
31144
|
+
}
|
|
31145
|
+
__name(handleUpsertCreate, "handleUpsertCreate");
|
|
31146
|
+
async function handleUpsertUpdate(resource, id, existingItem, patchData, requestId) {
|
|
31147
|
+
const existingData = existingItem.data;
|
|
31092
31148
|
const oldShadowKeys = existingData.__shadowKeys || [];
|
|
31093
31149
|
const mergedData = applyJsonMergePatch2(removeShadowKeys(existingData), patchData);
|
|
31094
31150
|
const updatedData = addUpdateTimestamp({
|
|
@@ -31103,10 +31159,10 @@ async function handleUpdateOne(resource, params, requestId) {
|
|
|
31103
31159
|
const transactItems = [];
|
|
31104
31160
|
transactItems.push({
|
|
31105
31161
|
Put: {
|
|
31106
|
-
TableName:
|
|
31162
|
+
TableName: getTableName(),
|
|
31107
31163
|
Item: {
|
|
31108
31164
|
PK: resource,
|
|
31109
|
-
SK:
|
|
31165
|
+
SK: generateMainRecordSK2(id),
|
|
31110
31166
|
data: {
|
|
31111
31167
|
...updatedData,
|
|
31112
31168
|
__shadowKeys: newShadowKeys
|
|
@@ -31117,7 +31173,7 @@ async function handleUpdateOne(resource, params, requestId) {
|
|
|
31117
31173
|
for (const shadowSK of shadowDiff.toDelete) {
|
|
31118
31174
|
transactItems.push({
|
|
31119
31175
|
Delete: {
|
|
31120
|
-
TableName:
|
|
31176
|
+
TableName: getTableName(),
|
|
31121
31177
|
Key: {
|
|
31122
31178
|
PK: resource,
|
|
31123
31179
|
SK: shadowSK
|
|
@@ -31129,21 +31185,21 @@ async function handleUpdateOne(resource, params, requestId) {
|
|
|
31129
31185
|
if (shadowDiff.toAdd.includes(shadowRecord.SK)) {
|
|
31130
31186
|
transactItems.push({
|
|
31131
31187
|
Put: {
|
|
31132
|
-
TableName:
|
|
31188
|
+
TableName: getTableName(),
|
|
31133
31189
|
Item: shadowRecord
|
|
31134
31190
|
}
|
|
31135
31191
|
});
|
|
31136
31192
|
}
|
|
31137
31193
|
}
|
|
31138
31194
|
await executeDynamoDBOperation(
|
|
31139
|
-
() =>
|
|
31195
|
+
() => getDBClient().send(
|
|
31140
31196
|
new import_lib_dynamodb12.TransactWriteCommand({
|
|
31141
31197
|
TransactItems: transactItems
|
|
31142
31198
|
})
|
|
31143
31199
|
),
|
|
31144
31200
|
"TransactWriteItems"
|
|
31145
31201
|
);
|
|
31146
|
-
logger18.info("updateOne
|
|
31202
|
+
logger18.info("updateOne upsert updated", {
|
|
31147
31203
|
requestId,
|
|
31148
31204
|
resource,
|
|
31149
31205
|
id,
|
|
@@ -31153,7 +31209,7 @@ async function handleUpdateOne(resource, params, requestId) {
|
|
|
31153
31209
|
});
|
|
31154
31210
|
return removeShadowKeys(updatedData);
|
|
31155
31211
|
}
|
|
31156
|
-
__name(
|
|
31212
|
+
__name(handleUpsertUpdate, "handleUpsertUpdate");
|
|
31157
31213
|
|
|
31158
31214
|
// src/server/operations/parameterConverter.ts
|
|
31159
31215
|
function convertFindParams(mongoParams) {
|