@decaf-ts/for-fabric 0.1.1 → 0.1.3
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/for-fabric.cjs +1 -1
- package/dist/for-fabric.cjs.map +1 -1
- package/dist/for-fabric.js +1 -1
- package/dist/for-fabric.js.map +1 -1
- package/lib/client/FabricClientAdapter.cjs +94 -81
- package/lib/client/FabricClientAdapter.d.ts +24 -33
- package/lib/client/FabricClientAdapter.js.map +1 -1
- package/lib/client/FabricClientDispatch.cjs +14 -5
- package/lib/client/FabricClientDispatch.d.ts +7 -5
- package/lib/client/FabricClientDispatch.js.map +1 -1
- package/lib/client/FabricClientRepository.cjs +4 -137
- package/lib/client/FabricClientRepository.d.ts +6 -78
- package/lib/client/FabricClientRepository.js.map +1 -1
- package/lib/client/erc20/FabricERC20ClientRepository.cjs +17 -17
- package/lib/client/erc20/FabricERC20ClientRepository.d.ts +5 -5
- package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/client/logging.cjs +1 -1
- package/lib/client/logging.js.map +1 -1
- package/lib/client/services/FabricEnrollmentService.cjs +3 -3
- package/lib/client/services/FabricEnrollmentService.d.ts +2 -2
- package/lib/client/services/FabricEnrollmentService.js.map +1 -1
- package/lib/contract/Product.cjs +2 -2
- package/lib/contract/Product.d.ts +1 -1
- package/lib/contracts/ContractAdapter.cjs +204 -115
- package/lib/contracts/ContractAdapter.d.ts +26 -34
- package/lib/contracts/ContractAdapter.js.map +1 -1
- package/lib/contracts/ContractContext.cjs +1 -9
- package/lib/contracts/ContractContext.d.ts +0 -6
- package/lib/contracts/ContractContext.js.map +1 -1
- package/lib/contracts/ContractPrivateDataAdapter.cjs +429 -288
- package/lib/contracts/ContractPrivateDataAdapter.d.ts +0 -76
- package/lib/contracts/ContractPrivateDataAdapter.js.map +1 -1
- package/lib/contracts/FabricConstruction.cjs +3 -3
- package/lib/contracts/FabricConstruction.d.ts +9 -8
- package/lib/contracts/FabricConstruction.js.map +1 -1
- package/lib/contracts/FabricContractRepository.cjs +7 -202
- package/lib/contracts/FabricContractRepository.d.ts +5 -68
- package/lib/contracts/FabricContractRepository.js.map +1 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +4 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.d.ts +4 -4
- package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
- package/lib/contracts/FabricContractSequence.cjs +39 -60
- package/lib/contracts/FabricContractSequence.d.ts +29 -41
- package/lib/contracts/FabricContractSequence.js.map +1 -1
- package/lib/contracts/FabricContractStatement.cjs +6 -6
- package/lib/contracts/FabricContractStatement.d.ts +4 -6
- package/lib/contracts/FabricContractStatement.js.map +1 -1
- package/lib/contracts/crud/crud-contract.cjs +74 -44
- package/lib/contracts/crud/crud-contract.d.ts +7 -11
- package/lib/contracts/crud/crud-contract.js.map +1 -1
- package/lib/contracts/crud/serialized-crud-contract.cjs +12 -21
- package/lib/contracts/crud/serialized-crud-contract.d.ts +3 -11
- package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/contracts/erc20/erc20contract.cjs +73 -67
- package/lib/contracts/erc20/erc20contract.d.ts +13 -12
- package/lib/contracts/erc20/erc20contract.js.map +1 -1
- package/lib/contracts/logging.cjs +9 -13
- package/lib/contracts/logging.d.ts +1 -2
- package/lib/contracts/logging.js.map +1 -1
- package/lib/contracts/private-data.cjs +202 -118
- package/lib/contracts/private-data.d.ts +0 -16
- package/lib/contracts/private-data.js.map +1 -1
- package/lib/contracts/types.d.ts +1 -1
- package/lib/esm/client/FabricClientAdapter.d.ts +24 -33
- package/lib/esm/client/FabricClientAdapter.js +90 -78
- package/lib/esm/client/FabricClientAdapter.js.map +1 -1
- package/lib/esm/client/FabricClientDispatch.d.ts +7 -5
- package/lib/esm/client/FabricClientDispatch.js +17 -8
- package/lib/esm/client/FabricClientDispatch.js.map +1 -1
- package/lib/esm/client/FabricClientRepository.d.ts +6 -78
- package/lib/esm/client/FabricClientRepository.js +4 -137
- package/lib/esm/client/FabricClientRepository.js.map +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.d.ts +5 -5
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +17 -17
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/logging.js.map +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.d.ts +2 -2
- package/lib/esm/client/services/FabricEnrollmentService.js +3 -3
- package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -1
- package/lib/esm/contract/Product.d.ts +1 -1
- package/lib/esm/contract/Product.js +2 -2
- package/lib/esm/contracts/ContractAdapter.d.ts +26 -34
- package/lib/esm/contracts/ContractAdapter.js +205 -116
- package/lib/esm/contracts/ContractAdapter.js.map +1 -1
- package/lib/esm/contracts/ContractContext.d.ts +0 -6
- package/lib/esm/contracts/ContractContext.js +1 -9
- package/lib/esm/contracts/ContractContext.js.map +1 -1
- package/lib/esm/contracts/ContractPrivateDataAdapter.d.ts +0 -76
- package/lib/esm/contracts/ContractPrivateDataAdapter.js +430 -285
- package/lib/esm/contracts/ContractPrivateDataAdapter.js.map +1 -1
- package/lib/esm/contracts/FabricConstruction.d.ts +9 -8
- package/lib/esm/contracts/FabricConstruction.js +3 -3
- package/lib/esm/contracts/FabricConstruction.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepository.d.ts +5 -68
- package/lib/esm/contracts/FabricContractRepository.js +7 -202
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.d.ts +4 -4
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +5 -2
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
- package/lib/esm/contracts/FabricContractSequence.d.ts +29 -41
- package/lib/esm/contracts/FabricContractSequence.js +40 -61
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -1
- package/lib/esm/contracts/FabricContractStatement.d.ts +4 -6
- package/lib/esm/contracts/FabricContractStatement.js +7 -7
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -1
- package/lib/esm/contracts/crud/crud-contract.d.ts +7 -11
- package/lib/esm/contracts/crud/crud-contract.js +75 -45
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +3 -11
- package/lib/esm/contracts/crud/serialized-crud-contract.js +12 -21
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/esm/contracts/erc20/erc20contract.d.ts +13 -12
- package/lib/esm/contracts/erc20/erc20contract.js +73 -67
- package/lib/esm/contracts/erc20/erc20contract.js.map +1 -1
- package/lib/esm/contracts/logging.d.ts +1 -2
- package/lib/esm/contracts/logging.js +9 -13
- package/lib/esm/contracts/logging.js.map +1 -1
- package/lib/esm/contracts/private-data.d.ts +0 -16
- package/lib/esm/contracts/private-data.js +203 -111
- package/lib/esm/contracts/private-data.js.map +1 -1
- package/lib/esm/contracts/types.d.ts +1 -1
- package/lib/esm/shared/decorators.d.ts +14 -4
- package/lib/esm/shared/decorators.js +142 -42
- package/lib/esm/shared/decorators.js.map +1 -1
- package/lib/esm/shared/errors.js +2 -2
- package/lib/esm/shared/errors.js.map +1 -1
- package/lib/esm/shared/events.d.ts +1 -5
- package/lib/esm/shared/events.js.map +1 -1
- package/lib/esm/shared/model/Sequence.d.ts +14 -0
- package/lib/esm/shared/model/Sequence.js +33 -0
- package/lib/esm/shared/model/Sequence.js.map +1 -0
- package/lib/esm/shared/model/index.d.ts +2 -0
- package/lib/esm/shared/model/index.js +2 -0
- package/lib/esm/shared/model/index.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/decorators.cjs +148 -41
- package/lib/shared/decorators.d.ts +14 -4
- package/lib/shared/decorators.js.map +1 -1
- package/lib/shared/errors.cjs +2 -2
- package/lib/shared/errors.js.map +1 -1
- package/lib/shared/events.d.ts +1 -5
- package/lib/shared/events.js.map +1 -1
- package/lib/shared/model/Sequence.cjs +36 -0
- package/lib/shared/model/Sequence.d.ts +14 -0
- package/lib/shared/model/Sequence.js.map +1 -0
- package/lib/shared/model/index.cjs +2 -0
- package/lib/shared/model/index.d.ts +2 -0
- package/lib/shared/model/index.js.map +1 -1
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +2 -3
- package/lib/client/services/LoggedService.cjs +0 -47
- package/lib/client/services/LoggedService.d.ts +0 -42
- package/lib/client/services/LoggedService.js.map +0 -1
- package/lib/esm/client/services/LoggedService.d.ts +0 -42
- package/lib/esm/client/services/LoggedService.js +0 -43
- package/lib/esm/client/services/LoggedService.js.map +0 -1
|
@@ -3,12 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FabricCrudContract = void 0;
|
|
4
4
|
const ContractAdapter_1 = require("./../ContractAdapter.cjs");
|
|
5
5
|
const fabric_contract_api_1 = require("fabric-contract-api");
|
|
6
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
6
7
|
const core_1 = require("@decaf-ts/core");
|
|
7
8
|
const DeterministicSerializer_1 = require("./../../shared/DeterministicSerializer.cjs");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const ContractPrivateDataAdapter_1 = require("./../ContractPrivateDataAdapter.cjs");
|
|
11
|
-
const constants_1 = require("./../../shared/constants.cjs");
|
|
9
|
+
const ContractContext_1 = require("./../ContractContext.cjs");
|
|
10
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
12
11
|
/**
|
|
13
12
|
* @description Base contract class for CRUD operations in Fabric chaincode
|
|
14
13
|
* @summary Provides standard create, read, update, and delete operations for models in Fabric chaincode
|
|
@@ -58,6 +57,10 @@ const constants_1 = require("./../../shared/constants.cjs");
|
|
|
58
57
|
* Contract-->>Client: model
|
|
59
58
|
*/
|
|
60
59
|
class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
60
|
+
/**
|
|
61
|
+
* @description Shared adapter instance for all contract instances
|
|
62
|
+
*/
|
|
63
|
+
static { this.adapter = new ContractAdapter_1.FabricContractAdapter(); }
|
|
61
64
|
static { this.serializer = new DeterministicSerializer_1.DeterministicSerializer(); }
|
|
62
65
|
/**
|
|
63
66
|
* @description Creates a new FabricCrudContract instance
|
|
@@ -69,28 +72,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
69
72
|
super(name);
|
|
70
73
|
this.clazz = clazz;
|
|
71
74
|
this.initialized = false;
|
|
72
|
-
|
|
73
|
-
this.repo = core_1.Repository.forModel(clazz, FabricCrudContract.adapter.alias);
|
|
74
|
-
}
|
|
75
|
-
getAdapter(clazz) {
|
|
76
|
-
const instance = new clazz();
|
|
77
|
-
if ((0, private_data_1.isModelPrivate)(instance)) {
|
|
78
|
-
const pvt = (0, private_data_1.modelToPrivate)(instance);
|
|
79
|
-
const collections = Object.keys(pvt.private);
|
|
80
|
-
return new ContractPrivateDataAdapter_1.FabricContractPrivateDataAdapter(undefined, "fabric-private-data-adapter", collections);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
return new ContractAdapter_1.FabricContractAdapter(undefined, [constants_1.FabricFlavour, clazz.name].join("_"));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* @description Creates a logger for a specific chaincode context
|
|
88
|
-
* @summary Returns a ContractLogger instance configured for the current context
|
|
89
|
-
* @param {Ctx} ctx - The Fabric chaincode context
|
|
90
|
-
* @return {ContractLogger} The logger instance
|
|
91
|
-
*/
|
|
92
|
-
logFor(ctx) {
|
|
93
|
-
return logging_1.Logging.for(FabricCrudContract.name, {}, ctx);
|
|
75
|
+
this.repo = core_1.Repository.forModel(clazz);
|
|
94
76
|
}
|
|
95
77
|
/**
|
|
96
78
|
* @description Creates a single model in the state database
|
|
@@ -101,14 +83,14 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
101
83
|
* @return {Promise<M>} Promise resolving to the created model
|
|
102
84
|
*/
|
|
103
85
|
async create(ctx, model, ...args) {
|
|
104
|
-
const log = this.
|
|
86
|
+
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.create);
|
|
105
87
|
if (typeof model === "string")
|
|
106
88
|
model = this.deserialize(model);
|
|
107
89
|
log.info(`Creating model: ${JSON.stringify(model)}`);
|
|
108
90
|
const transient = this.getTransientData(ctx);
|
|
109
91
|
log.info(`Merging transient data...`);
|
|
110
|
-
model =
|
|
111
|
-
return this.repo.create(model,
|
|
92
|
+
model = decorator_validation_1.Model.merge(model, transient, this.clazz);
|
|
93
|
+
return this.repo.create(model, ...ctxArgs);
|
|
112
94
|
}
|
|
113
95
|
/**
|
|
114
96
|
* @description Reads a single model from the state database
|
|
@@ -119,9 +101,9 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
119
101
|
* @return {Promise<M>} Promise resolving to the retrieved model
|
|
120
102
|
*/
|
|
121
103
|
async read(ctx, key, ...args) {
|
|
122
|
-
const log = this.
|
|
104
|
+
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.read);
|
|
123
105
|
log.info(`reading entry with pk ${key} `);
|
|
124
|
-
return this.repo.read(key,
|
|
106
|
+
return this.repo.read(key, ...ctxArgs);
|
|
125
107
|
}
|
|
126
108
|
getTransientData(ctx) {
|
|
127
109
|
const transientMap = ctx.stub.getTransient();
|
|
@@ -140,14 +122,14 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
140
122
|
* @return {Promise<M>} Promise resolving to the updated model
|
|
141
123
|
*/
|
|
142
124
|
async update(ctx, model, ...args) {
|
|
143
|
-
const log = this.
|
|
125
|
+
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.update);
|
|
144
126
|
if (typeof model === "string")
|
|
145
127
|
model = this.deserialize(model);
|
|
146
128
|
log.info(`Updating model: ${JSON.stringify(model)}`);
|
|
147
129
|
const transient = this.getTransientData(ctx);
|
|
148
130
|
log.info(`Merging transient data...`);
|
|
149
|
-
model =
|
|
150
|
-
return this.repo.update(model,
|
|
131
|
+
model = decorator_validation_1.Model.merge(model, transient, this.clazz);
|
|
132
|
+
return this.repo.update(model, ...ctxArgs);
|
|
151
133
|
}
|
|
152
134
|
/**
|
|
153
135
|
* @description Deletes a single model from the state database
|
|
@@ -158,9 +140,9 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
158
140
|
* @return {Promise<M>} Promise resolving to the deleted model
|
|
159
141
|
*/
|
|
160
142
|
async delete(ctx, key, ...args) {
|
|
161
|
-
const log = this.
|
|
143
|
+
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.delete);
|
|
162
144
|
log.info(`deleting entry with pk ${key} `);
|
|
163
|
-
return this.repo.delete(String(key),
|
|
145
|
+
return this.repo.delete(String(key), ...ctxArgs);
|
|
164
146
|
}
|
|
165
147
|
/**
|
|
166
148
|
* @description Deletes multiple models from the state database
|
|
@@ -171,9 +153,10 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
171
153
|
* @return {Promise<M[]>} Promise resolving to the deleted models
|
|
172
154
|
*/
|
|
173
155
|
async deleteAll(ctx, keys, ...args) {
|
|
156
|
+
const { ctxArgs } = await this.logCtx([...args, ctx], this.readAll);
|
|
174
157
|
if (typeof keys === "string")
|
|
175
158
|
keys = JSON.parse(keys);
|
|
176
|
-
return this.repo.deleteAll(keys,
|
|
159
|
+
return this.repo.deleteAll(keys, ...ctxArgs);
|
|
177
160
|
}
|
|
178
161
|
/**
|
|
179
162
|
* @description Reads multiple models from the state database
|
|
@@ -184,9 +167,10 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
184
167
|
* @return {Promise<M[]>} Promise resolving to the retrieved models
|
|
185
168
|
*/
|
|
186
169
|
async readAll(ctx, keys, ...args) {
|
|
170
|
+
const { ctxArgs } = await this.logCtx([...args, ctx], this.readAll);
|
|
187
171
|
if (typeof keys === "string")
|
|
188
172
|
keys = JSON.parse(keys);
|
|
189
|
-
return this.repo.readAll(keys,
|
|
173
|
+
return this.repo.readAll(keys, ...ctxArgs);
|
|
190
174
|
}
|
|
191
175
|
/**
|
|
192
176
|
* @description Updates multiple models in the state database
|
|
@@ -197,13 +181,13 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
197
181
|
* @return {Promise<M[]>} Promise resolving to the updated models
|
|
198
182
|
*/
|
|
199
183
|
async updateAll(ctx, models, ...args) {
|
|
200
|
-
const log = this.
|
|
184
|
+
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.updateAll);
|
|
201
185
|
if (typeof models === "string")
|
|
202
186
|
models = JSON.parse(models)
|
|
203
187
|
.map((m) => this.deserialize(m))
|
|
204
188
|
.map((m) => new this.clazz(m));
|
|
205
189
|
log.info(`updating ${models.length} entries to the table`);
|
|
206
|
-
return this.repo.updateAll(models,
|
|
190
|
+
return this.repo.updateAll(models, ...ctxArgs);
|
|
207
191
|
}
|
|
208
192
|
/**
|
|
209
193
|
* @description Executes a raw query against the state database
|
|
@@ -215,9 +199,10 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
215
199
|
* @return {Promise<any>} Promise resolving to the query results
|
|
216
200
|
*/
|
|
217
201
|
async raw(ctx, rawInput, docsOnly, ...args) {
|
|
202
|
+
const { ctxArgs } = await this.logCtx([...args, ctx], this.raw);
|
|
218
203
|
if (typeof rawInput === "string")
|
|
219
204
|
rawInput = JSON.parse(rawInput);
|
|
220
|
-
return
|
|
205
|
+
return FabricCrudContract.adapter.raw(rawInput, docsOnly, ...ctxArgs);
|
|
221
206
|
}
|
|
222
207
|
serialize(model) {
|
|
223
208
|
return FabricCrudContract.serializer.serialize(model);
|
|
@@ -226,13 +211,13 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
226
211
|
return FabricCrudContract.serializer.deserialize(str);
|
|
227
212
|
}
|
|
228
213
|
async init(ctx) {
|
|
229
|
-
const log = this.
|
|
214
|
+
const { log } = await this.logCtx([ctx], this.init);
|
|
230
215
|
log.info(`Running contract initialization...`);
|
|
231
216
|
this.initialized = true;
|
|
232
217
|
log.info(`Contract initialization completed.`);
|
|
233
218
|
}
|
|
234
219
|
async healthcheck(ctx) {
|
|
235
|
-
const log = this.
|
|
220
|
+
const { log } = await this.logCtx([ctx], this.healthcheck);
|
|
236
221
|
log.info(`Running Healthcheck: ${this.initialized}...`);
|
|
237
222
|
return { healthcheck: this.initialized };
|
|
238
223
|
}
|
|
@@ -245,7 +230,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
245
230
|
* @return {Promise<M[]>} Promise resolving to the created models
|
|
246
231
|
*/
|
|
247
232
|
async createAll(ctx, models, ...args) {
|
|
248
|
-
const log = this.
|
|
233
|
+
const { log } = await this.logCtx([...args, ctx], this.createAll);
|
|
249
234
|
if (typeof models === "string")
|
|
250
235
|
models = JSON.parse(models)
|
|
251
236
|
.map((m) => this.deserialize(m))
|
|
@@ -253,6 +238,51 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
253
238
|
log.info(`adding ${models.length} entries to the table`);
|
|
254
239
|
return this.repo.createAll(models, ctx, ...args);
|
|
255
240
|
}
|
|
241
|
+
async logCtx(args, method) {
|
|
242
|
+
return FabricCrudContract.logCtx.bind(this)(args, method);
|
|
243
|
+
}
|
|
244
|
+
static async logCtx(args, method) {
|
|
245
|
+
if (args.length < 1)
|
|
246
|
+
throw new db_decorators_1.InternalError("No context provided");
|
|
247
|
+
const ctx = args.pop();
|
|
248
|
+
if (ctx instanceof ContractContext_1.FabricContractContext)
|
|
249
|
+
return {
|
|
250
|
+
ctx,
|
|
251
|
+
log: ctx.logger.clear().for(this).for(method),
|
|
252
|
+
ctxArgs: [...args, ctx],
|
|
253
|
+
};
|
|
254
|
+
if (!(ctx instanceof fabric_contract_api_1.Context))
|
|
255
|
+
throw new db_decorators_1.InternalError("No valid context provided");
|
|
256
|
+
function getOp() {
|
|
257
|
+
if (typeof method === "string")
|
|
258
|
+
return method;
|
|
259
|
+
switch (method.name) {
|
|
260
|
+
case db_decorators_1.OperationKeys.CREATE:
|
|
261
|
+
case db_decorators_1.OperationKeys.READ:
|
|
262
|
+
case db_decorators_1.OperationKeys.UPDATE:
|
|
263
|
+
case db_decorators_1.OperationKeys.DELETE:
|
|
264
|
+
case db_decorators_1.BulkCrudOperationKeys.CREATE_ALL:
|
|
265
|
+
case db_decorators_1.BulkCrudOperationKeys.READ_ALL:
|
|
266
|
+
case db_decorators_1.BulkCrudOperationKeys.UPDATE_ALL:
|
|
267
|
+
case db_decorators_1.BulkCrudOperationKeys.DELETE_ALL:
|
|
268
|
+
return method.name;
|
|
269
|
+
default:
|
|
270
|
+
return method.name;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
const overrides = {
|
|
274
|
+
correlationId: ctx.stub.getTxID(),
|
|
275
|
+
};
|
|
276
|
+
const context = await FabricCrudContract.adapter.context(getOp(), overrides, this.clazz, ctx);
|
|
277
|
+
const log = (this
|
|
278
|
+
? context.logger.for(this).for(method)
|
|
279
|
+
: context.logger.clear().for(this).for(method));
|
|
280
|
+
return {
|
|
281
|
+
ctx: context,
|
|
282
|
+
log: log,
|
|
283
|
+
ctxArgs: [...args, context],
|
|
284
|
+
};
|
|
285
|
+
}
|
|
256
286
|
}
|
|
257
287
|
exports.FabricCrudContract = FabricCrudContract;
|
|
258
288
|
//# sourceMappingURL=crud-contract.js.map
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { FabricContractAdapter } from "../ContractAdapter";
|
|
2
|
-
import {
|
|
2
|
+
import { Contract, Context as Ctx } from "fabric-contract-api";
|
|
3
3
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
+
import { ContextualizedArgs } from "@decaf-ts/core";
|
|
4
5
|
import { FabricContractRepository } from "../FabricContractRepository";
|
|
5
6
|
import { DeterministicSerializer } from "../../shared/DeterministicSerializer";
|
|
6
7
|
import { MangoQuery } from "@decaf-ts/for-couchdb";
|
|
7
8
|
import { Checkable, healthcheck } from "../../shared/interfaces/Checkable";
|
|
8
|
-
import { ContractLogger } from "../logging";
|
|
9
9
|
import { Constructor } from "@decaf-ts/decoration";
|
|
10
|
+
import { FabricContractContext } from "../ContractContext";
|
|
10
11
|
/**
|
|
11
12
|
* @description Base contract class for CRUD operations in Fabric chaincode
|
|
12
13
|
* @summary Provides standard create, read, update, and delete operations for models in Fabric chaincode
|
|
@@ -71,14 +72,6 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
|
|
|
71
72
|
* @param {Constructor<M>} clazz - The model constructor
|
|
72
73
|
*/
|
|
73
74
|
protected constructor(name: string, clazz: Constructor<M>);
|
|
74
|
-
protected getAdapter(clazz: Constructor<M>): FabricContractAdapter;
|
|
75
|
-
/**
|
|
76
|
-
* @description Creates a logger for a specific chaincode context
|
|
77
|
-
* @summary Returns a ContractLogger instance configured for the current context
|
|
78
|
-
* @param {Ctx} ctx - The Fabric chaincode context
|
|
79
|
-
* @return {ContractLogger} The logger instance
|
|
80
|
-
*/
|
|
81
|
-
logFor(ctx: Context): ContractLogger;
|
|
82
75
|
/**
|
|
83
76
|
* @description Creates a single model in the state database
|
|
84
77
|
* @summary Delegates to the repository's create method
|
|
@@ -152,7 +145,7 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
|
|
|
152
145
|
* @param {...any[]} args - Additional arguments
|
|
153
146
|
* @return {Promise<any>} Promise resolving to the query results
|
|
154
147
|
*/
|
|
155
|
-
raw(ctx: Ctx, rawInput: MangoQuery | string, docsOnly: boolean, ...args: any[]): Promise<any | string>;
|
|
148
|
+
raw(ctx: Ctx | FabricContractContext, rawInput: MangoQuery | string, docsOnly: boolean, ...args: any[]): Promise<any | string>;
|
|
156
149
|
protected serialize(model: M): string;
|
|
157
150
|
protected deserialize<M extends Model>(str: string): M;
|
|
158
151
|
protected init(ctx: Ctx): Promise<void>;
|
|
@@ -166,4 +159,7 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
|
|
|
166
159
|
* @return {Promise<M[]>} Promise resolving to the created models
|
|
167
160
|
*/
|
|
168
161
|
createAll(ctx: Ctx, models: string | M[], ...args: any[]): Promise<string | M[]>;
|
|
162
|
+
logCtx<ARGS extends any[]>(args: ARGS, method: ((...args: any[]) => any) | string): Promise<ContextualizedArgs<FabricContractContext, ARGS>>;
|
|
163
|
+
protected static logCtx<ARGS extends any[]>(this: any, args: ARGS, method: string): Promise<ContextualizedArgs<FabricContractContext, ARGS>>;
|
|
164
|
+
protected static logCtx<ARGS extends any[]>(this: any, args: ARGS, method: (...args: any[]) => any): Promise<ContextualizedArgs<FabricContractContext, ARGS>>;
|
|
169
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAC3D,6DAAwE;
|
|
1
|
+
{"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAC3D,6DAAwE;AACxE,yEAAmE;AACnE,yCAA0E;AAE1E,wFAA+E;AAI/E,8DAA2D;AAC3D,2DAIiC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAsB,kBACpB,SAAQ,8BAAQ;IAGhB;;OAEG;aACc,YAAO,GAA0B,IAAI,uCAAqB,EAAE,AAArD,CAAsD;aAIpD,eAAU,GAAG,IAAI,iDAAuB,EAAE,AAAhC,CAAiC;IAIrE;;;;;OAKG;IACH,YACE,IAAY,EACO,KAAqB;QAExC,KAAK,CAAC,IAAI,CAAC,CAAC;QAFO,UAAK,GAAL,KAAK,CAAgB;QAVhC,gBAAW,GAAY,KAAK,CAAC;QAarC,IAAI,CAAC,IAAI,GAAG,iBAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,GAAQ,EACR,KAAiB,EACjB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAExE,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAI,KAAK,CAAM,CAAC;QAEvE,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACtC,KAAK,GAAG,4BAAK,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAM,CAAC;QAEvD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CACR,GAAQ,EACR,GAAoB,EACpB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtE,GAAG,CAAC,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;IACzC,CAAC;IAES,gBAAgB,CAAC,GAAQ;QACjC,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7C,IAAI,SAAS,GAAQ,EAAE,CAAC;QAExB,IAAI,YAAY,CAAC,GAAG,CAAE,IAAI,CAAC,IAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,SAAS,GAAG,IAAI,CAAC,KAAK,CACnB,YAAY,CAAC,GAAG,CAAE,IAAI,CAAC,IAAY,CAAC,SAAS,CAAY,EAAE,QAAQ,CAClE,MAAM,CACG,CACZ,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,GAAQ,EACR,KAAiB,EACjB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAExE,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAI,KAAK,CAAM,CAAC;QAEvE,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACtC,KAAK,GAAG,4BAAK,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAM,CAAC;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,GAAQ,EACR,GAAoB,EACpB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CACb,GAAQ,EACR,IAAkC,EAClC,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CACX,GAAQ,EACR,IAAkC,EAClC,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CACb,GAAQ,EACR,MAAoB,EACpB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAQ;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAQ,CAAC;QAE1C,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,uBAAuB,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAwB,EAAE,GAAG,OAAO,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CACP,GAAgC,EAChC,QAA6B,EAC7B,QAAiB,EACjB,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC9B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAe,CAAC;QAChD,OAAO,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC;IACxE,CAAC;IAES,SAAS,CAAC,KAAQ;QAC1B,OAAO,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAES,WAAW,CAAkB,GAAW;QAChD,OACE,kBAAkB,CAAC,UACpB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,GAAQ;QAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAQ;QACxB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;QACxD,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CACb,GAAQ,EACR,MAAoB,EACpB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAElE,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAQ;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAQ,CAAC;QAE1C,GAAG,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAwB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAU,EACV,MAA0C;QAE1C,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAa,CAAC,CAAC;IACnE,CAAC;IAYS,MAAM,CAAC,KAAK,CAAC,MAAM,CAE3B,IAAU,EACV,MAA0C;QAE1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,6BAAa,CAAC,qBAAqB,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAqC,CAAC;QAC1D,IAAI,GAAG,YAAY,uCAAqB;YACtC,OAAO;gBACL,GAAG;gBACH,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC7C,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC;aACxB,CAAC;QACJ,IAAI,CAAC,CAAC,GAAG,YAAY,6BAAO,CAAC;YAC3B,MAAM,IAAI,6BAAa,CAAC,2BAA2B,CAAC,CAAC;QAEvD,SAAS,KAAK;YACZ,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC;YAC9C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,6BAAa,CAAC,MAAM,CAAC;gBAC1B,KAAK,6BAAa,CAAC,IAAI,CAAC;gBACxB,KAAK,6BAAa,CAAC,MAAM,CAAC;gBAC1B,KAAK,6BAAa,CAAC,MAAM,CAAC;gBAC1B,KAAK,qCAAqB,CAAC,UAAU,CAAC;gBACtC,KAAK,qCAAqB,CAAC,QAAQ,CAAC;gBACpC,KAAK,qCAAqB,CAAC,UAAU,CAAC;gBACtC,KAAK,qCAAqB,CAAC,UAAU;oBACnC,OAAO,MAAM,CAAC,IAAI,CAAC;gBACrB;oBACE,OAAO,MAAM,CAAC,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG;YAChB,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;SAClC,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CACtD,KAAK,EAAE,EACP,SAAgB,EAChB,IAAI,CAAC,KAAK,EACV,GAAG,CACJ,CAAC;QACF,MAAM,GAAG,GAAG,CACV,IAAI;YACF,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CACd,CAAC;QACrC,OAAO;YACL,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;SAC5B,CAAC;IACJ,CAAC;;AA5UH,gDA6UC"}
|
|
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.SerializedCrudContract = void 0;
|
|
13
13
|
const crud_contract_1 = require("./crud-contract.cjs");
|
|
14
14
|
const fabric_contract_api_1 = require("fabric-contract-api");
|
|
15
|
-
const logging_1 = require("@decaf-ts/logging");
|
|
16
15
|
/**
|
|
17
16
|
* @description CRUD contract variant that serializes/deserializes payloads
|
|
18
17
|
* @summary Exposes the same CRUD operations as FabricCrudContract but takes and returns JSON strings to facilitate simple client interactions.
|
|
@@ -29,51 +28,42 @@ class SerializedCrudContract extends crud_contract_1.FabricCrudContract {
|
|
|
29
28
|
constructor(name, clazz) {
|
|
30
29
|
super(name, clazz);
|
|
31
30
|
}
|
|
32
|
-
/**
|
|
33
|
-
* @description Creates a logger for a specific chaincode context
|
|
34
|
-
* @summary Returns a ContractLogger instance configured for the current context
|
|
35
|
-
* @param {Ctx} ctx - The Fabric chaincode context
|
|
36
|
-
* @return {ContractLogger} The logger instance
|
|
37
|
-
*/
|
|
38
|
-
logFor(ctx) {
|
|
39
|
-
return logging_1.Logging.for(SerializedCrudContract, {}, ctx);
|
|
40
|
-
}
|
|
41
31
|
async create(ctx, model) {
|
|
42
|
-
const log = this.
|
|
32
|
+
const { log } = await this.logCtx([ctx], this.create);
|
|
43
33
|
log.info(`Creating model: ${model}`);
|
|
44
34
|
const m = this.deserialize(model);
|
|
45
35
|
log.info(`Model deserialized: ${JSON.stringify(m)}`);
|
|
46
36
|
return this.serialize((await super.create(ctx, m)));
|
|
47
37
|
}
|
|
48
38
|
async read(ctx, key) {
|
|
49
|
-
const log = this.
|
|
39
|
+
const { log } = await this.logCtx([ctx], this.read);
|
|
50
40
|
log.info(`Reading id: ${key}`);
|
|
51
41
|
return this.serialize((await super.read(ctx, key)));
|
|
52
42
|
}
|
|
53
43
|
async update(ctx, model) {
|
|
54
|
-
const log = this.
|
|
44
|
+
const { log } = await this.logCtx([ctx], this.update);
|
|
55
45
|
log.info(`Updating model: ${model}`);
|
|
56
46
|
return this.serialize((await super.update(ctx, model)));
|
|
57
47
|
}
|
|
58
48
|
async delete(ctx, key) {
|
|
59
|
-
const log = this.
|
|
49
|
+
const { log } = await this.logCtx([ctx], this.delete);
|
|
60
50
|
log.info(`Deleting id: ${key}`);
|
|
61
51
|
return this.serialize((await super.delete(ctx, key)));
|
|
62
52
|
}
|
|
63
53
|
async deleteAll(ctx, keys) {
|
|
64
54
|
const parsedKeys = JSON.parse(keys);
|
|
65
|
-
const log = this.
|
|
55
|
+
const { log } = await this.logCtx([ctx], this.deleteAll);
|
|
66
56
|
log.info(`deleting ${parsedKeys.length} entries from the table`);
|
|
67
57
|
return JSON.stringify((await super.deleteAll(ctx, parsedKeys)).map((m) => this.serialize(m)));
|
|
68
58
|
}
|
|
69
59
|
async readAll(ctx, keys) {
|
|
70
60
|
const parsedKeys = JSON.parse(keys);
|
|
71
|
-
const log = this.
|
|
61
|
+
const { log } = await this.logCtx([ctx], this.readAll);
|
|
72
62
|
log.info(`reading ${parsedKeys.length} entries from the table`);
|
|
73
63
|
return JSON.stringify((await super.readAll(ctx, parsedKeys)).map((m) => this.serialize(m)));
|
|
74
64
|
}
|
|
75
65
|
async updateAll(ctx, models) {
|
|
76
|
-
const log = this.
|
|
66
|
+
const { log } = await this.logCtx([ctx], this.updateAll);
|
|
77
67
|
const list = JSON.parse(models);
|
|
78
68
|
const modelList = list
|
|
79
69
|
.map((m) => this.deserialize(m))
|
|
@@ -81,7 +71,8 @@ class SerializedCrudContract extends crud_contract_1.FabricCrudContract {
|
|
|
81
71
|
log.info(`Updating ${modelList.length} entries to the table`);
|
|
82
72
|
return JSON.stringify((await super.updateAll(ctx, modelList)).map((m) => this.serialize(m)));
|
|
83
73
|
}
|
|
84
|
-
async raw(
|
|
74
|
+
async raw(context, rawInput, docsOnly) {
|
|
75
|
+
const { ctx } = await this.logCtx([context], this.raw);
|
|
85
76
|
const parsedInput = JSON.parse(rawInput);
|
|
86
77
|
return super.raw(ctx, parsedInput, docsOnly);
|
|
87
78
|
}
|
|
@@ -92,14 +83,14 @@ class SerializedCrudContract extends crud_contract_1.FabricCrudContract {
|
|
|
92
83
|
//TODO: TRIM NOT WORKING CHECK LATER
|
|
93
84
|
return JSON.stringify(await super.healthcheck(ctx));
|
|
94
85
|
}
|
|
95
|
-
async createAll(
|
|
96
|
-
const log = this.
|
|
86
|
+
async createAll(context, models) {
|
|
87
|
+
const { log } = await this.logCtx([context], this.createAll);
|
|
97
88
|
const list = JSON.parse(models);
|
|
98
89
|
const modelList = list
|
|
99
90
|
.map((m) => this.deserialize(m))
|
|
100
91
|
.map((m) => new this.clazz(m));
|
|
101
92
|
log.info(`Adding ${modelList.length} entries to the table`);
|
|
102
|
-
return JSON.stringify((await super.createAll(
|
|
93
|
+
return JSON.stringify((await super.createAll(context, modelList)).map((m) => this.serialize(m)));
|
|
103
94
|
}
|
|
104
95
|
}
|
|
105
96
|
exports.SerializedCrudContract = SerializedCrudContract;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { FabricCrudContract } from "./crud-contract";
|
|
2
2
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
|
-
import { Context
|
|
4
|
-
import { ContractLogger } from "../logging";
|
|
3
|
+
import { Context as Ctx } from "fabric-contract-api";
|
|
5
4
|
import { Constructor } from "@decaf-ts/decoration";
|
|
6
5
|
/**
|
|
7
6
|
* @description CRUD contract variant that serializes/deserializes payloads
|
|
@@ -17,13 +16,6 @@ import { Constructor } from "@decaf-ts/decoration";
|
|
|
17
16
|
*/
|
|
18
17
|
export declare class SerializedCrudContract<M extends Model> extends FabricCrudContract<M> {
|
|
19
18
|
constructor(name: string, clazz: Constructor<M>);
|
|
20
|
-
/**
|
|
21
|
-
* @description Creates a logger for a specific chaincode context
|
|
22
|
-
* @summary Returns a ContractLogger instance configured for the current context
|
|
23
|
-
* @param {Ctx} ctx - The Fabric chaincode context
|
|
24
|
-
* @return {ContractLogger} The logger instance
|
|
25
|
-
*/
|
|
26
|
-
logFor(ctx: Context): ContractLogger;
|
|
27
19
|
create(ctx: Ctx, model: string): Promise<string>;
|
|
28
20
|
read(ctx: Ctx, key: string): Promise<string>;
|
|
29
21
|
update(ctx: Ctx, model: string): Promise<string>;
|
|
@@ -31,8 +23,8 @@ export declare class SerializedCrudContract<M extends Model> extends FabricCrudC
|
|
|
31
23
|
deleteAll(ctx: Ctx, keys: string): Promise<string>;
|
|
32
24
|
readAll(ctx: Ctx, keys: string): Promise<string>;
|
|
33
25
|
updateAll(ctx: Ctx, models: string): Promise<string>;
|
|
34
|
-
raw(
|
|
26
|
+
raw(context: Ctx, rawInput: string, docsOnly: boolean): Promise<any>;
|
|
35
27
|
init(ctx: Ctx): Promise<void>;
|
|
36
28
|
healthcheck(ctx: Ctx): Promise<string>;
|
|
37
|
-
createAll(
|
|
29
|
+
createAll(context: Ctx, models: string): Promise<string>;
|
|
38
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialized-crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/serialized-crud-contract.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAqD;AAGrD,
|
|
1
|
+
{"version":3,"file":"serialized-crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/serialized-crud-contract.ts"],"names":[],"mappings":"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"}
|