@decaf-ts/for-fabric 0.1.49 → 0.1.51
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/cli-module.cjs +11 -5
- package/lib/cli-module.js.map +1 -1
- package/lib/client/FabricClientAdapter.cjs +2 -1
- package/lib/client/FabricClientAdapter.js.map +1 -1
- package/lib/client/FabricClientDispatch.cjs +2 -2
- package/lib/client/FabricClientDispatch.js.map +1 -1
- package/lib/client/FabricClientRepository.cjs +14 -18
- package/lib/client/FabricClientRepository.d.ts +1 -1
- package/lib/client/FabricClientRepository.js.map +1 -1
- package/lib/client/erc20/FabricERC20ClientRepository.cjs +12 -18
- package/lib/client/erc20/FabricERC20ClientRepository.d.ts +7 -7
- package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/client/index.cjs +5 -2
- package/lib/client/index.d.ts +5 -2
- package/lib/client/index.js.map +1 -1
- package/lib/client/services/FabricEnrollmentService.cjs +1 -1
- package/lib/client/services/FabricEnrollmentService.js.map +1 -1
- package/lib/client/services/FabricIdentityService.cjs +1 -1
- package/lib/client/services/FabricIdentityService.js.map +1 -1
- package/lib/{shared → client}/utils.cjs +3 -3
- package/lib/{esm/shared → client}/utils.d.ts +1 -1
- package/lib/client/utils.js.map +1 -0
- package/lib/contracts/ContractAdapter.cjs +155 -46
- package/lib/contracts/ContractAdapter.d.ts +12 -17
- package/lib/contracts/ContractAdapter.js.map +1 -1
- package/lib/contracts/FabricContractPaginator.cjs +17 -12
- package/lib/contracts/FabricContractPaginator.d.ts +2 -2
- package/lib/contracts/FabricContractPaginator.js.map +1 -1
- package/lib/contracts/FabricContractRepository.cjs +5 -7
- package/lib/contracts/FabricContractRepository.d.ts +1 -8
- package/lib/contracts/FabricContractRepository.js.map +1 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
- package/lib/contracts/FabricContractSequence.cjs +2 -4
- package/lib/contracts/FabricContractSequence.js.map +1 -1
- package/lib/contracts/FabricContractStatement.cjs +6 -0
- package/lib/contracts/FabricContractStatement.d.ts +3 -1
- package/lib/contracts/FabricContractStatement.js.map +1 -1
- package/lib/contracts/crud/crud-contract.cjs +31 -65
- package/lib/contracts/crud/crud-contract.d.ts +8 -17
- package/lib/contracts/crud/crud-contract.js.map +1 -1
- package/lib/contracts/crud/serialized-crud-contract.cjs +19 -56
- package/lib/contracts/crud/serialized-crud-contract.d.ts +13 -15
- package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/contracts/erc20/models.cjs +3 -3
- package/lib/contracts/erc20/models.js.map +1 -1
- package/lib/contracts/logging.cjs +7 -0
- package/lib/contracts/logging.js.map +1 -1
- package/lib/esm/cli-module.js +11 -5
- package/lib/esm/cli-module.js.map +1 -1
- package/lib/esm/client/FabricClientAdapter.js +2 -1
- package/lib/esm/client/FabricClientAdapter.js.map +1 -1
- package/lib/esm/client/FabricClientDispatch.js +3 -3
- package/lib/esm/client/FabricClientDispatch.js.map +1 -1
- package/lib/esm/client/FabricClientRepository.d.ts +1 -1
- package/lib/esm/client/FabricClientRepository.js +15 -19
- package/lib/esm/client/FabricClientRepository.js.map +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.d.ts +7 -7
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +12 -18
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/esm/client/index.d.ts +5 -2
- package/lib/esm/client/index.js +5 -2
- package/lib/esm/client/index.js.map +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -1
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +1 -1
- package/lib/{shared → esm/client}/utils.d.ts +1 -1
- package/lib/esm/{shared → client}/utils.js +2 -2
- package/lib/esm/client/utils.js.map +1 -0
- package/lib/esm/contracts/ContractAdapter.d.ts +12 -17
- package/lib/esm/contracts/ContractAdapter.js +156 -47
- package/lib/esm/contracts/ContractAdapter.js.map +1 -1
- package/lib/esm/contracts/FabricContractPaginator.d.ts +2 -2
- package/lib/esm/contracts/FabricContractPaginator.js +18 -13
- package/lib/esm/contracts/FabricContractPaginator.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepository.d.ts +1 -8
- package/lib/esm/contracts/FabricContractRepository.js +6 -8
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
- package/lib/esm/contracts/FabricContractSequence.js +3 -5
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -1
- package/lib/esm/contracts/FabricContractStatement.d.ts +3 -1
- package/lib/esm/contracts/FabricContractStatement.js +8 -2
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -1
- package/lib/esm/contracts/crud/crud-contract.d.ts +8 -17
- package/lib/esm/contracts/crud/crud-contract.js +34 -68
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +13 -15
- package/lib/esm/contracts/crud/serialized-crud-contract.js +19 -56
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/esm/contracts/erc20/models.js +3 -3
- package/lib/esm/contracts/erc20/models.js.map +1 -1
- package/lib/esm/contracts/logging.js +7 -0
- package/lib/esm/contracts/logging.js.map +1 -1
- package/lib/esm/shared/index.d.ts +0 -1
- package/lib/esm/shared/index.js +0 -1
- package/lib/esm/shared/index.js.map +1 -1
- package/lib/esm/shared/overrides/overrides.js +10 -0
- package/lib/esm/shared/overrides/overrides.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/index.cjs +0 -1
- package/lib/shared/index.d.ts +0 -1
- package/lib/shared/index.js.map +1 -1
- package/lib/shared/overrides/overrides.cjs +10 -0
- package/lib/shared/overrides/overrides.js.map +1 -1
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/lib/esm/shared/utils.js.map +0 -1
- package/lib/shared/utils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricContractSequence.js","sourceRoot":"","sources":["../../../src/contracts/FabricContractSequence.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"FabricContractSequence.js","sourceRoot":"","sources":["../../../src/contracts/FabricContractSequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
2
2
|
import { CouchDBAdapter, MangoQuery } from "@decaf-ts/for-couchdb";
|
|
3
3
|
import { FabricContractContext } from "./ContractContext";
|
|
4
4
|
import { CouchDBStatement } from "@decaf-ts/for-couchdb";
|
|
5
|
+
import { ContextualArgs, MaybeContextualArg } from "@decaf-ts/core";
|
|
5
6
|
/**
|
|
6
7
|
* @description Statement wrapper for executing Mango queries within Fabric contracts
|
|
7
8
|
* @summary Bridges CouchDB-style queries to Fabric via the FabricContractAdapter, handling identity and primary key projection when needed.
|
|
@@ -28,6 +29,7 @@ import { CouchDBStatement } from "@decaf-ts/for-couchdb";
|
|
|
28
29
|
*/
|
|
29
30
|
export declare class FabricStatement<M extends Model, R> extends CouchDBStatement<M, CouchDBAdapter<any, void, FabricContractContext>, R> {
|
|
30
31
|
constructor(adapter: CouchDBAdapter<any, void, FabricContractContext>);
|
|
31
|
-
|
|
32
|
+
protected executionPrefix(method: any, ...args: MaybeContextualArg<FabricContractContext>): Promise<[import("@decaf-ts/decoration").Constructor<M>, ...any[], any]>;
|
|
33
|
+
raw<R>(rawInput: MangoQuery, ...args: ContextualArgs<FabricContractContext>): Promise<R>;
|
|
32
34
|
build(): MangoQuery;
|
|
33
35
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { CouchDBGroupOperator, CouchDBKeys, CouchDBOperator, } from "@decaf-ts/for-couchdb";
|
|
3
3
|
import { CouchDBStatement } from "@decaf-ts/for-couchdb";
|
|
4
|
-
import { Condition } from "@decaf-ts/core";
|
|
4
|
+
import { Condition, } from "@decaf-ts/core";
|
|
5
5
|
import { Metadata } from "@decaf-ts/decoration";
|
|
6
|
-
import { DBKeys } from "@decaf-ts/db-decorators";
|
|
6
|
+
import { DBKeys, InternalError } from "@decaf-ts/db-decorators";
|
|
7
7
|
/**
|
|
8
8
|
* @description Statement wrapper for executing Mango queries within Fabric contracts
|
|
9
9
|
* @summary Bridges CouchDB-style queries to Fabric via the FabricContractAdapter, handling identity and primary key projection when needed.
|
|
@@ -32,6 +32,12 @@ export class FabricStatement extends CouchDBStatement {
|
|
|
32
32
|
constructor(adapter) {
|
|
33
33
|
super(adapter);
|
|
34
34
|
}
|
|
35
|
+
async executionPrefix(method, ...args) {
|
|
36
|
+
const newArgs = args.filter(Boolean);
|
|
37
|
+
if (args.length !== newArgs.length)
|
|
38
|
+
throw new InternalError(`Received an undefined in the paginator for ${method}: ${args}`);
|
|
39
|
+
return super.executionPrefix(method, ...args);
|
|
40
|
+
}
|
|
35
41
|
async raw(rawInput, ...args) {
|
|
36
42
|
const { ctx } = this.logCtx(args, this.raw);
|
|
37
43
|
const results = await this.adapter.raw(rawInput, true, ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricContractStatement.js","sourceRoot":"","sources":["../../../src/contracts/FabricContractStatement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAEL,oBAAoB,EACpB,WAAW,EACX,eAAe,GAIhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"FabricContractStatement.js","sourceRoot":"","sources":["../../../src/contracts/FabricContractStatement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import "../../shared/overrides";
|
|
2
|
+
import { FabricContextualizedArgs, FabricContractAdapter } from "../ContractAdapter";
|
|
3
|
+
import { Context as Ctx, Contract } from "fabric-contract-api";
|
|
3
4
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
-
import { Condition,
|
|
5
|
+
import { Condition, DirectionLimitOffset, MaybeContextualArg, MethodOrOperation, OrderDirection, SerializedPage } from "@decaf-ts/core";
|
|
5
6
|
import { FabricContractRepository } from "../FabricContractRepository";
|
|
6
7
|
import { DeterministicSerializer } from "../../shared/DeterministicSerializer";
|
|
7
8
|
import { MangoQuery } from "@decaf-ts/for-couchdb";
|
|
@@ -9,7 +10,6 @@ import { Checkable, healthcheck } from "../../shared/interfaces/Checkable";
|
|
|
9
10
|
import { Constructor } from "@decaf-ts/decoration";
|
|
10
11
|
import { FabricContractContext } from "../ContractContext";
|
|
11
12
|
import { PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
12
|
-
import { ChaincodeStub, ClientIdentity } from "fabric-shim-api";
|
|
13
13
|
/**
|
|
14
14
|
* @description Base contract class for CRUD operations in Fabric chaincode
|
|
15
15
|
* @summary Provides standard create, read, update, and delete operations for models in Fabric chaincode
|
|
@@ -75,7 +75,7 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
|
|
|
75
75
|
*/
|
|
76
76
|
protected constructor(name: string, clazz: Constructor<M>);
|
|
77
77
|
listBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, ...args: any[]): Promise<M[] | string>;
|
|
78
|
-
paginateBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, ref?: Omit<DirectionLimitOffset, "direction"> | string, ...args:
|
|
78
|
+
paginateBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, ref?: Omit<DirectionLimitOffset, "direction"> | string, ...args: any[]): Promise<SerializedPage<M> | string>;
|
|
79
79
|
findOneBy(ctx: Ctx | FabricContractContext, key: string | keyof M, value: any, ...args: any[]): Promise<M | string>;
|
|
80
80
|
statement(ctx: Ctx | FabricContractContext, method: string, ...args: any[]): Promise<any>;
|
|
81
81
|
/**
|
|
@@ -176,16 +176,7 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
|
|
|
176
176
|
* @return {Promise<M[]>} Promise resolving to the created models
|
|
177
177
|
*/
|
|
178
178
|
createAll(ctx: Ctx | FabricContractContext, models: string | M[], ...args: any[]): Promise<string | M[]>;
|
|
179
|
-
logCtx<ARGS extends any[]>(args:
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}>;
|
|
183
|
-
protected static logCtx<ARGS extends any[]>(this: any, args: ARGS, method: string): Promise<ContextualizedArgs<FabricContractContext, ARGS> & {
|
|
184
|
-
stub: ChaincodeStub;
|
|
185
|
-
identity: ClientIdentity;
|
|
186
|
-
}>;
|
|
187
|
-
protected static logCtx<ARGS extends any[]>(this: any, args: ARGS, method: (...args: any[]) => any): Promise<ContextualizedArgs<FabricContractContext, ARGS> & {
|
|
188
|
-
stub: ChaincodeStub;
|
|
189
|
-
identity: ClientIdentity;
|
|
190
|
-
}>;
|
|
179
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD): FabricContextualizedArgs<ARGS, METHOD extends string ? true : false>;
|
|
180
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: false): FabricContextualizedArgs<ARGS, METHOD extends string ? true : false>;
|
|
181
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: true): Promise<FabricContextualizedArgs<ARGS, METHOD extends string ? true : false>>;
|
|
191
182
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import "./../../shared/overrides/index.js";
|
|
2
|
+
import { FabricContractAdapter, } from "./../ContractAdapter.js";
|
|
3
|
+
import { Contract, Object as FabricObject, } from "fabric-contract-api";
|
|
3
4
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
-
import { OrderDirection, Repository, } from "@decaf-ts/core";
|
|
5
|
+
import { OrderDirection, PersistenceKeys, PreparedStatementKeys, Repository, } from "@decaf-ts/core";
|
|
5
6
|
import { DeterministicSerializer } from "./../../shared/DeterministicSerializer.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { Object as FabricObject } from "fabric-contract-api";
|
|
7
|
+
import { BulkCrudOperationKeys, OperationKeys, } from "@decaf-ts/db-decorators";
|
|
8
|
+
import { MissingContextError } from "./../../shared/index.js";
|
|
9
9
|
FabricObject()(Date);
|
|
10
10
|
/**
|
|
11
11
|
* @description Base contract class for CRUD operations in Fabric chaincode
|
|
@@ -72,9 +72,10 @@ export class FabricCrudContract extends Contract {
|
|
|
72
72
|
this.clazz = clazz;
|
|
73
73
|
this.initialized = false;
|
|
74
74
|
this.repo = Repository.forModel(clazz);
|
|
75
|
+
// prefixMethod(this);
|
|
75
76
|
}
|
|
76
77
|
async listBy(ctx, key, order, ...args) {
|
|
77
|
-
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.listBy);
|
|
78
|
+
const { ctxArgs, log } = (await this.logCtx([...args, ctx], PreparedStatementKeys.LIST_BY, true)).for(this.listBy);
|
|
78
79
|
log.info(`Running listBy key ${key}, order ${order} and args ${ctxArgs}`);
|
|
79
80
|
return this.repo.listBy(key, order, ...ctxArgs);
|
|
80
81
|
}
|
|
@@ -82,17 +83,17 @@ export class FabricCrudContract extends Contract {
|
|
|
82
83
|
offset: 1,
|
|
83
84
|
limit: 10,
|
|
84
85
|
}, ...args) {
|
|
85
|
-
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.paginateBy);
|
|
86
|
+
const { ctxArgs, log } = (await this.logCtx([...args, ctx], PreparedStatementKeys.PAGE_BY, true)).for(this.paginateBy);
|
|
86
87
|
log.info(`Running paginateBy key ${key}, order ${order} with size ${ref.limit} and args ${ctxArgs}`);
|
|
87
88
|
return this.repo.paginateBy(key, order, ref, ...ctxArgs);
|
|
88
89
|
}
|
|
89
90
|
async findOneBy(ctx, key, value, ...args) {
|
|
90
|
-
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.findOneBy);
|
|
91
|
+
const { ctxArgs, log } = (await this.logCtx([...args, ctx], PreparedStatementKeys.FIND_ONE_BY, true)).for(this.findOneBy);
|
|
91
92
|
log.info(`Running findOneBy key ${key}, value: ${value} with args ${ctxArgs}`);
|
|
92
93
|
return this.repo.findOneBy(key, value, ...ctxArgs);
|
|
93
94
|
}
|
|
94
95
|
async statement(ctx, method, ...args) {
|
|
95
|
-
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.statement);
|
|
96
|
+
const { ctxArgs, log } = (await this.logCtx([...args, ctx], PersistenceKeys.STATEMENT, true)).for(this.statement);
|
|
96
97
|
log.info(`Running statement ${method} with args ${ctxArgs}`);
|
|
97
98
|
return this.repo.statement(method, ...ctxArgs);
|
|
98
99
|
}
|
|
@@ -105,7 +106,7 @@ export class FabricCrudContract extends Contract {
|
|
|
105
106
|
* @return {Promise<M>} Promise resolving to the created model
|
|
106
107
|
*/
|
|
107
108
|
async create(ctx, model, ...args) {
|
|
108
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.create);
|
|
109
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], OperationKeys.CREATE, true)).for(this.create);
|
|
109
110
|
log.info(`CONTRACT CREATE, ${ctxArgs}`);
|
|
110
111
|
if (typeof model === "string")
|
|
111
112
|
model = this.deserialize(model);
|
|
@@ -124,7 +125,7 @@ export class FabricCrudContract extends Contract {
|
|
|
124
125
|
* @return {Promise<M>} Promise resolving to the retrieved model
|
|
125
126
|
*/
|
|
126
127
|
async read(ctx, key, ...args) {
|
|
127
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.
|
|
128
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], OperationKeys.READ, true)).for(this.create);
|
|
128
129
|
log.info(`reading entry with pk ${key} `);
|
|
129
130
|
return this.repo.read(key, ...ctxArgs);
|
|
130
131
|
}
|
|
@@ -145,7 +146,7 @@ export class FabricCrudContract extends Contract {
|
|
|
145
146
|
* @return {Promise<M>} Promise resolving to the updated model
|
|
146
147
|
*/
|
|
147
148
|
async update(ctx, model, ...args) {
|
|
148
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.update);
|
|
149
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], OperationKeys.UPDATE, true)).for(this.update);
|
|
149
150
|
if (typeof model === "string")
|
|
150
151
|
model = this.deserialize(model);
|
|
151
152
|
log.info(`Updating model: ${JSON.stringify(model)}`);
|
|
@@ -163,7 +164,7 @@ export class FabricCrudContract extends Contract {
|
|
|
163
164
|
* @return {Promise<M>} Promise resolving to the deleted model
|
|
164
165
|
*/
|
|
165
166
|
async delete(ctx, key, ...args) {
|
|
166
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.delete);
|
|
167
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], OperationKeys.DELETE, true)).for(this.delete);
|
|
167
168
|
log.info(`deleting entry with pk ${key} `);
|
|
168
169
|
return this.repo.delete(String(key), ...ctxArgs);
|
|
169
170
|
}
|
|
@@ -176,7 +177,7 @@ export class FabricCrudContract extends Contract {
|
|
|
176
177
|
* @return {Promise<M[]>} Promise resolving to the deleted models
|
|
177
178
|
*/
|
|
178
179
|
async deleteAll(ctx, keys, ...args) {
|
|
179
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.
|
|
180
|
+
const { ctxArgs } = (await this.logCtx([...args, ctx], BulkCrudOperationKeys.DELETE_ALL, true)).for(this.deleteAll);
|
|
180
181
|
if (typeof keys === "string")
|
|
181
182
|
keys = JSON.parse(keys);
|
|
182
183
|
return this.repo.deleteAll(keys, ...ctxArgs);
|
|
@@ -190,7 +191,7 @@ export class FabricCrudContract extends Contract {
|
|
|
190
191
|
* @return {Promise<M[]>} Promise resolving to the retrieved models
|
|
191
192
|
*/
|
|
192
193
|
async readAll(ctx, keys, ...args) {
|
|
193
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.
|
|
194
|
+
const { ctxArgs } = (await this.logCtx([...args, ctx], BulkCrudOperationKeys.READ_ALL, true)).for(this.create);
|
|
194
195
|
if (typeof keys === "string")
|
|
195
196
|
keys = JSON.parse(keys);
|
|
196
197
|
return this.repo.readAll(keys, ...ctxArgs);
|
|
@@ -204,7 +205,7 @@ export class FabricCrudContract extends Contract {
|
|
|
204
205
|
* @return {Promise<M[]>} Promise resolving to the updated models
|
|
205
206
|
*/
|
|
206
207
|
async updateAll(ctx, models, ...args) {
|
|
207
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.updateAll);
|
|
208
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], BulkCrudOperationKeys.UPDATE_ALL, true)).for(this.updateAll);
|
|
208
209
|
if (typeof models === "string")
|
|
209
210
|
models = JSON.parse(models)
|
|
210
211
|
.map((m) => this.deserialize(m))
|
|
@@ -223,7 +224,7 @@ export class FabricCrudContract extends Contract {
|
|
|
223
224
|
* @return {Promise<M[]>} The query results as model instances.
|
|
224
225
|
*/
|
|
225
226
|
async query(context, condition, orderBy, order = OrderDirection.ASC, limit, skip, ...args) {
|
|
226
|
-
const { ctxArgs } = await this.logCtx([...args, context], this.
|
|
227
|
+
const { ctxArgs } = (await this.logCtx([...args, context], PersistenceKeys.QUERY, true)).for(this.create);
|
|
227
228
|
return this.repo.query(condition, orderBy, order, limit, skip, ...ctxArgs);
|
|
228
229
|
}
|
|
229
230
|
/**
|
|
@@ -236,7 +237,7 @@ export class FabricCrudContract extends Contract {
|
|
|
236
237
|
* @return {Promise<any>} Promise resolving to the query results
|
|
237
238
|
*/
|
|
238
239
|
async raw(ctx, rawInput, docsOnly, ...args) {
|
|
239
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.raw);
|
|
240
|
+
const { ctxArgs } = (await this.logCtx([...args, ctx], "raw", true)).for(this.raw);
|
|
240
241
|
return FabricCrudContract.adapter.raw(rawInput, docsOnly, ...ctxArgs);
|
|
241
242
|
}
|
|
242
243
|
serialize(model) {
|
|
@@ -246,13 +247,13 @@ export class FabricCrudContract extends Contract {
|
|
|
246
247
|
return FabricCrudContract.serializer.deserialize(str);
|
|
247
248
|
}
|
|
248
249
|
async init(ctx) {
|
|
249
|
-
const { log } = await this.logCtx([ctx], this.init);
|
|
250
|
+
const { log, ctxArgs } = (await this.logCtx([ctx], PersistenceKeys.INITIALIZATION, true)).for(this.init);
|
|
250
251
|
log.info(`Running contract ${this.getName()} initialization...`);
|
|
251
252
|
this.initialized = true;
|
|
252
253
|
log.info(`Contract initialization completed.`);
|
|
253
254
|
}
|
|
254
255
|
async healthcheck(ctx) {
|
|
255
|
-
const { log } = await this.logCtx([ctx], this.healthcheck);
|
|
256
|
+
const { log } = (await this.logCtx([ctx], "healthcheck", true)).for(this.healthcheck);
|
|
256
257
|
log.info(`Running Healthcheck: ${this.initialized}...`);
|
|
257
258
|
return { healthcheck: this.initialized };
|
|
258
259
|
}
|
|
@@ -265,7 +266,7 @@ export class FabricCrudContract extends Contract {
|
|
|
265
266
|
* @return {Promise<M[]>} Promise resolving to the created models
|
|
266
267
|
*/
|
|
267
268
|
async createAll(ctx, models, ...args) {
|
|
268
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.createAll);
|
|
269
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], BulkCrudOperationKeys.CREATE_ALL, true)).for(this.createAll);
|
|
269
270
|
if (typeof models === "string")
|
|
270
271
|
models = JSON.parse(models)
|
|
271
272
|
.map((m) => this.deserialize(m))
|
|
@@ -273,54 +274,19 @@ export class FabricCrudContract extends Contract {
|
|
|
273
274
|
log.info(`adding ${models.length} entries to the table`);
|
|
274
275
|
return this.repo.createAll(models, ...ctxArgs);
|
|
275
276
|
}
|
|
276
|
-
|
|
277
|
-
return FabricCrudContract.logCtx.bind(this)(args, method);
|
|
278
|
-
}
|
|
279
|
-
static async logCtx(args, method) {
|
|
280
|
-
if (args.length < 1)
|
|
281
|
-
throw new InternalError("No context provided");
|
|
277
|
+
logCtx(args, operation, allowCreate = false) {
|
|
282
278
|
const ctx = args.pop();
|
|
283
|
-
if (ctx
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
};
|
|
291
|
-
if (!(ctx instanceof Ctx))
|
|
292
|
-
throw new InternalError("No valid context provided");
|
|
293
|
-
function getOp() {
|
|
294
|
-
if (typeof method === "string")
|
|
295
|
-
return method;
|
|
296
|
-
switch (method.name) {
|
|
297
|
-
case OperationKeys.CREATE:
|
|
298
|
-
case OperationKeys.READ:
|
|
299
|
-
case OperationKeys.UPDATE:
|
|
300
|
-
case OperationKeys.DELETE:
|
|
301
|
-
case BulkCrudOperationKeys.CREATE_ALL:
|
|
302
|
-
case BulkCrudOperationKeys.READ_ALL:
|
|
303
|
-
case BulkCrudOperationKeys.UPDATE_ALL:
|
|
304
|
-
case BulkCrudOperationKeys.DELETE_ALL:
|
|
305
|
-
return method.name;
|
|
306
|
-
default:
|
|
307
|
-
return method.name;
|
|
308
|
-
}
|
|
279
|
+
if (!ctx || !ctx.stub) {
|
|
280
|
+
throw new MissingContextError(`No valid context provided...`);
|
|
281
|
+
}
|
|
282
|
+
const contextualized = FabricCrudContract.adapter["logCtx"]([this.clazz, ...args], operation, allowCreate, ctx);
|
|
283
|
+
function squashArgs(ctx) {
|
|
284
|
+
ctx.ctxArgs.shift(); // removes added model to args
|
|
285
|
+
return ctx;
|
|
309
286
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
const context = await FabricCrudContract.adapter.context(getOp(), overrides, this.clazz, ctx);
|
|
314
|
-
const log = (this
|
|
315
|
-
? context.logger.for(this).for(method)
|
|
316
|
-
: context.logger.clear().for(this).for(method));
|
|
317
|
-
return {
|
|
318
|
-
ctx: context,
|
|
319
|
-
log: log,
|
|
320
|
-
stub: context.stub,
|
|
321
|
-
identity: context.identity,
|
|
322
|
-
ctxArgs: [...args, context],
|
|
323
|
-
};
|
|
287
|
+
if (!(contextualized instanceof Promise))
|
|
288
|
+
return squashArgs(contextualized);
|
|
289
|
+
return contextualized.then(squashArgs);
|
|
324
290
|
}
|
|
325
291
|
}
|
|
326
292
|
//# sourceMappingURL=crud-contract.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":"AAAA,2CAAgC;AAChC,OAAO,EAEL,qBAAqB,GACtB,gCAA2B;AAC5B,OAAO,EAEL,QAAQ,EACR,MAAM,IAAI,YAAY,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAc,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAKL,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,UAAU,GAEX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,kDAA6C;AAK/E,OAAO,EACL,qBAAqB,EACrB,aAAa,GAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,gCAA2B;AAEzD,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;AACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,OAAgB,kBACpB,SAAQ,QAAQ;IAGhB;;OAEG;aACc,YAAO,GAA0B,IAAI,qBAAqB,EAAE,AAArD,CAAsD;aAIpD,eAAU,GAAG,IAAI,uBAAuB,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,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEvC,sBAAsB;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAgC,EAChC,GAAqB,EACrB,KAAa,EACb,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CACvE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,GAAG,CAAC,IAAI,CACN,sBAAsB,GAAa,WAAW,KAAK,aAAa,OAAO,EAAE,CAC1E,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CACrB,GAAc,EACd,KAAuB,EACvB,GAAG,OAAO,CACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAAgC,EAChC,GAAqB,EACrB,KAAa,EACb,MAAwD;QACtD,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,EAAE;KACV,EACD,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CACvE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,GAAG,CAAC,IAAI,CACN,0BAA0B,GAAa,WAAW,KAAK,cAAe,GAAW,CAAC,KAAK,aAAa,OAAO,EAAE,CAC9G,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CACzB,GAAc,EACd,KAAY,EACZ,GAAU,EACV,GAAG,OAAO,CACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,GAAgC,EAChC,GAAqB,EACrB,KAAU,EACV,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,CAC3E,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,GAAG,CAAC,IAAI,CACN,yBAAyB,GAAa,YAAY,KAAK,cAAc,OAAO,EAAE,CAC/E,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAc,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,SAAS,CACb,GAAgC,EAChC,MAAc,EACd,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CACnE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,cAAc,OAAO,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,GAAgC,EAChC,KAAiB,EACjB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAExC,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,KAAK,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,GAAgC,EAChC,GAA4B,EAC5B,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAC5D,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,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,GAAgC;QACzD,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,GAAgC,EAChC,KAAiB,EACjB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,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,KAAK,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,GAAgC,EAChC,GAA4B,EAC5B,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,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,GAAgC,EAChC,IAA+B,EAC/B,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,CAClB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAC1E,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,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,GAAgC,EAChC,IAA+B,EAC/B,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,CAClB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CACxE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,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,GAAgC,EAChC,MAAoB,EACpB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAC1E,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,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;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CACT,OAAoC,EACpC,SAAgC,EAChC,OAAyB,EACzB,QAAiC,cAAc,CAAC,GAAG,EACnD,KAAc,EACd,IAAa,EACb,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,CAClB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CACnE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,SAAyB,EACzB,OAAkB,EAClB,KAAuB,EACvB,KAAK,EACL,IAAI,EACJ,GAAG,OAAO,CACX,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CACP,GAAgC,EAChC,QAAoB,EACpB,QAAiB,EACjB,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CACtE,IAAI,CAAC,GAAG,CACT,CAAC;QACF,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,GAAgC;QACnD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAC/D,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,GAAgC;QAEhC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CACjE,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,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,GAAgC,EAChC,MAAoB,EACpB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAC1E,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,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,OAAO,CAAC,CAAC;IACnE,CAAC;IA2BS,MAAM,CAId,IAAqD,EACrD,SAAiB,EACjB,cAAuB,KAAK;QAM5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,mBAAmB,CAAC,8BAA8B,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CACzD,CAAC,IAAI,CAAC,KAAY,EAAE,GAAG,IAAI,CAAQ,EACnC,SAAS,EACT,WAAkB,EAClB,GAAG,CAKA,CAAC;QACN,SAAS,UAAU,CAAC,GAA6B;YAC/C,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,8BAA8B;YACnD,OAAO,GAAU,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,CAAC,cAAc,YAAY,OAAO,CAAC;YAAE,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC;QAC5E,OAAO,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC"}
|
|
@@ -2,8 +2,6 @@ import { FabricCrudContract } from "./crud-contract";
|
|
|
2
2
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
3
|
import { Context as Ctx } from "fabric-contract-api";
|
|
4
4
|
import { Constructor } from "@decaf-ts/decoration";
|
|
5
|
-
import { MaybeContextualArg } from "@decaf-ts/core";
|
|
6
|
-
import { FabricContractContext } from "../ContractContext";
|
|
7
5
|
/**
|
|
8
6
|
* @description CRUD contract variant that serializes/deserializes payloads
|
|
9
7
|
* @summary Exposes the same CRUD operations as FabricCrudContract but takes and returns JSON strings to facilitate simple client interactions.
|
|
@@ -18,19 +16,19 @@ import { FabricContractContext } from "../ContractContext";
|
|
|
18
16
|
*/
|
|
19
17
|
export declare class SerializedCrudContract<M extends Model> extends FabricCrudContract<M> {
|
|
20
18
|
constructor(name: string, clazz: Constructor<M>);
|
|
21
|
-
create(
|
|
22
|
-
read(
|
|
23
|
-
update(
|
|
24
|
-
delete(
|
|
25
|
-
deleteAll(
|
|
26
|
-
readAll(
|
|
27
|
-
updateAll(
|
|
28
|
-
statement(
|
|
29
|
-
listBy(
|
|
30
|
-
paginateBy(
|
|
31
|
-
findOneBy(
|
|
32
|
-
query(
|
|
19
|
+
create(ctx: Ctx, model: string): Promise<string>;
|
|
20
|
+
read(ctx: Ctx, key: string): Promise<string>;
|
|
21
|
+
update(ctx: Ctx, model: string): Promise<string>;
|
|
22
|
+
delete(ctx: Ctx, key: string): Promise<string>;
|
|
23
|
+
deleteAll(ctx: Ctx, keys: string): Promise<string>;
|
|
24
|
+
readAll(ctx: Ctx, keys: string): Promise<string>;
|
|
25
|
+
updateAll(ctx: Ctx, models: string): Promise<string>;
|
|
26
|
+
statement(ctx: Ctx, method: string, args: string): Promise<string>;
|
|
27
|
+
listBy(ctx: Ctx, key: string, order: string): Promise<string>;
|
|
28
|
+
paginateBy(ctx: Ctx, key: string, order: string, ref: string): Promise<string>;
|
|
29
|
+
findOneBy(ctx: Ctx, key: string, value: string): Promise<string>;
|
|
30
|
+
query(ctx: Ctx, condition: string, orderBy: string, order: string, limit?: number, skip?: number): Promise<string>;
|
|
33
31
|
init(ctx: Ctx): Promise<void>;
|
|
34
|
-
healthcheck(
|
|
32
|
+
healthcheck(ctx: Ctx): Promise<string>;
|
|
35
33
|
createAll(context: Ctx, models: string): Promise<string>;
|
|
36
34
|
}
|
|
@@ -11,7 +11,6 @@ import { FabricCrudContract } from "./crud-contract.js";
|
|
|
11
11
|
import { Context as Ctx, Transaction } from "fabric-contract-api";
|
|
12
12
|
import { Condition } from "@decaf-ts/core";
|
|
13
13
|
import { SerializationError } from "@decaf-ts/db-decorators";
|
|
14
|
-
import { FabricContractContext } from "./../ContractContext.js";
|
|
15
14
|
/**
|
|
16
15
|
* @description CRUD contract variant that serializes/deserializes payloads
|
|
17
16
|
* @summary Exposes the same CRUD operations as FabricCrudContract but takes and returns JSON strings to facilitate simple client interactions.
|
|
@@ -28,55 +27,34 @@ export class SerializedCrudContract extends FabricCrudContract {
|
|
|
28
27
|
constructor(name, clazz) {
|
|
29
28
|
super(name, clazz);
|
|
30
29
|
}
|
|
31
|
-
async create(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
log.info(`Model deserialized: ${JSON.stringify(m)}`);
|
|
36
|
-
const result = await super.create(ctx, m);
|
|
37
|
-
const serialized = this.serialize(result);
|
|
38
|
-
log.info(`RESULT: ${JSON.stringify(result)}`);
|
|
39
|
-
log.info(`Retuning: ${serialized}`);
|
|
40
|
-
return serialized;
|
|
41
|
-
}
|
|
42
|
-
async read(context, key) {
|
|
43
|
-
const { log, ctx } = await this.logCtx([context], this.read);
|
|
44
|
-
log.info(`Reading id: ${key}`);
|
|
30
|
+
async create(ctx, model) {
|
|
31
|
+
return this.serialize((await super.create(ctx, model)));
|
|
32
|
+
}
|
|
33
|
+
async read(ctx, key) {
|
|
45
34
|
return this.serialize((await super.read(ctx, key)));
|
|
46
35
|
}
|
|
47
|
-
async update(
|
|
48
|
-
const { log, ctx } = await this.logCtx([context], this.update);
|
|
49
|
-
log.info(`Updating model: ${model}`);
|
|
36
|
+
async update(ctx, model) {
|
|
50
37
|
return this.serialize((await super.update(ctx, model)));
|
|
51
38
|
}
|
|
52
|
-
async delete(
|
|
53
|
-
const { log, ctx } = await this.logCtx([context], this.delete);
|
|
54
|
-
log.info(`Deleting id: ${key}`);
|
|
39
|
+
async delete(ctx, key) {
|
|
55
40
|
return this.serialize((await super.delete(ctx, key)));
|
|
56
41
|
}
|
|
57
|
-
async deleteAll(
|
|
42
|
+
async deleteAll(ctx, keys) {
|
|
58
43
|
const parsedKeys = JSON.parse(keys);
|
|
59
|
-
const { log, ctx } = await this.logCtx([context], this.deleteAll);
|
|
60
|
-
log.info(`deleting ${parsedKeys.length} entries from the table`);
|
|
61
44
|
return JSON.stringify((await super.deleteAll(ctx, parsedKeys)).map((m) => this.serialize(m)));
|
|
62
45
|
}
|
|
63
|
-
async readAll(
|
|
46
|
+
async readAll(ctx, keys) {
|
|
64
47
|
const parsedKeys = JSON.parse(keys);
|
|
65
|
-
const { log, ctx } = await this.logCtx([context], this.readAll);
|
|
66
|
-
log.info(`reading ${parsedKeys.length} entries from the table`);
|
|
67
48
|
return JSON.stringify((await super.readAll(ctx, parsedKeys)).map((m) => this.serialize(m)));
|
|
68
49
|
}
|
|
69
|
-
async updateAll(
|
|
70
|
-
const { log, ctx } = await this.logCtx([context], this.updateAll);
|
|
50
|
+
async updateAll(ctx, models) {
|
|
71
51
|
const list = JSON.parse(models);
|
|
72
52
|
const modelList = list
|
|
73
53
|
.map((m) => this.deserialize(m))
|
|
74
54
|
.map((m) => new this.clazz(m));
|
|
75
|
-
log.info(`Updating ${modelList.length} entries to the table`);
|
|
76
55
|
return JSON.stringify((await super.updateAll(ctx, modelList)).map((m) => this.serialize(m)));
|
|
77
56
|
}
|
|
78
|
-
async statement(
|
|
79
|
-
const { ctx, log } = await this.logCtx([context], this.statement);
|
|
57
|
+
async statement(ctx, method, args) {
|
|
80
58
|
try {
|
|
81
59
|
args = JSON.parse(args);
|
|
82
60
|
}
|
|
@@ -85,35 +63,25 @@ export class SerializedCrudContract extends FabricCrudContract {
|
|
|
85
63
|
}
|
|
86
64
|
if (!Array.isArray(args))
|
|
87
65
|
throw new SerializationError(`Invalid args: ${JSON.stringify(args)}. must be an array`);
|
|
88
|
-
log.info(`calling prepared statement ${method}`);
|
|
89
|
-
log.info(`with args ${args}`);
|
|
90
66
|
return JSON.stringify(await super.statement(ctx, method, ...args));
|
|
91
67
|
}
|
|
92
|
-
async listBy(
|
|
93
|
-
const { ctx, log } = await this.logCtx([context], this.listBy);
|
|
94
|
-
log.info(`Executing listBy with key ${key} and order ${order}`);
|
|
68
|
+
async listBy(ctx, key, order) {
|
|
95
69
|
return JSON.stringify(await super.listBy(ctx, key, order));
|
|
96
70
|
}
|
|
97
|
-
async paginateBy(
|
|
98
|
-
const { ctx, log } = await this.logCtx([...args, context], this.paginateBy);
|
|
71
|
+
async paginateBy(ctx, key, order, ref) {
|
|
99
72
|
try {
|
|
100
73
|
ref = JSON.parse(ref);
|
|
101
74
|
}
|
|
102
75
|
catch (e) {
|
|
103
76
|
throw new SerializationError(`Failed to deserialize paginateBy reference: ${e}`);
|
|
104
77
|
}
|
|
105
|
-
|
|
106
|
-
return JSON.stringify(await super.paginateBy(ctx, key, order, ref, ...args));
|
|
78
|
+
return JSON.stringify(await super.paginateBy(ctx, key, order, ref));
|
|
107
79
|
}
|
|
108
|
-
async findOneBy(
|
|
109
|
-
|
|
110
|
-
log.info(`Executing findOneBy with key ${key} and value ${value}`);
|
|
111
|
-
return JSON.stringify(await super.findOneBy(ctx, key, value, ...args));
|
|
80
|
+
async findOneBy(ctx, key, value) {
|
|
81
|
+
return JSON.stringify(await super.findOneBy(ctx, key, value));
|
|
112
82
|
}
|
|
113
83
|
// @Transaction(false)
|
|
114
|
-
async query(
|
|
115
|
-
const { ctx, log } = await this.logCtx([context], this.query);
|
|
116
|
-
log.info(`Executing query orderedBy ${orderBy} and order ${order}`);
|
|
84
|
+
async query(ctx, condition, orderBy, order, limit, skip) {
|
|
117
85
|
let cond;
|
|
118
86
|
try {
|
|
119
87
|
cond = Condition.from(JSON.parse(condition));
|
|
@@ -121,7 +89,6 @@ export class SerializedCrudContract extends FabricCrudContract {
|
|
|
121
89
|
catch (e) {
|
|
122
90
|
throw new SerializationError(`Invalid condition: ${e}`);
|
|
123
91
|
}
|
|
124
|
-
log.info(`Condition: ${JSON.stringify(cond)}`);
|
|
125
92
|
return JSON.stringify(await super.query(ctx, cond, orderBy, order, limit, skip));
|
|
126
93
|
}
|
|
127
94
|
//
|
|
@@ -139,19 +106,15 @@ export class SerializedCrudContract extends FabricCrudContract {
|
|
|
139
106
|
async init(ctx) {
|
|
140
107
|
await super.init(ctx);
|
|
141
108
|
}
|
|
142
|
-
async healthcheck(
|
|
143
|
-
const { log, ctx } = await this.logCtx([context], this.updateAll);
|
|
144
|
-
log.debug(`Running Healthcheck: ${this.initialized}...`);
|
|
109
|
+
async healthcheck(ctx) {
|
|
145
110
|
//TODO: TRIM NOT WORKING CHECK LATER
|
|
146
111
|
return JSON.stringify(await super.healthcheck(ctx));
|
|
147
112
|
}
|
|
148
113
|
async createAll(context, models) {
|
|
149
|
-
const { log } = await this.logCtx([context], this.createAll);
|
|
150
114
|
const list = JSON.parse(models);
|
|
151
115
|
const modelList = list
|
|
152
116
|
.map((m) => this.deserialize(m))
|
|
153
117
|
.map((m) => new this.clazz(m));
|
|
154
|
-
log.info(`Adding ${modelList.length} entries to the table`);
|
|
155
118
|
const result = (await super.createAll(context, modelList));
|
|
156
119
|
return JSON.stringify(result.map((m) => this.serialize(m)));
|
|
157
120
|
}
|
|
@@ -213,13 +176,13 @@ __decorate([
|
|
|
213
176
|
__decorate([
|
|
214
177
|
Transaction(false),
|
|
215
178
|
__metadata("design:type", Function),
|
|
216
|
-
__metadata("design:paramtypes", [Ctx, String, String, String
|
|
179
|
+
__metadata("design:paramtypes", [Ctx, String, String, String]),
|
|
217
180
|
__metadata("design:returntype", Promise)
|
|
218
181
|
], SerializedCrudContract.prototype, "paginateBy", null);
|
|
219
182
|
__decorate([
|
|
220
183
|
Transaction(false),
|
|
221
184
|
__metadata("design:type", Function),
|
|
222
|
-
__metadata("design:paramtypes", [Ctx, String, String
|
|
185
|
+
__metadata("design:paramtypes", [Ctx, String, String]),
|
|
223
186
|
__metadata("design:returntype", Promise)
|
|
224
187
|
], SerializedCrudContract.prototype, "findOneBy", null);
|
|
225
188
|
__decorate([
|