@brightchain/brightchain-api-lib 0.12.0 → 0.13.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/package.json +4 -4
- package/src/lib/application-base.d.ts +1 -1
- package/src/lib/application-base.d.ts.map +1 -1
- package/src/lib/application.d.ts +52 -0
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +104 -0
- package/src/lib/application.js.map +1 -1
- package/src/lib/controllers/api/blocks.d.ts.map +1 -1
- package/src/lib/controllers/api/blocks.js +62 -0
- package/src/lib/controllers/api/blocks.js.map +1 -1
- package/src/lib/controllers/api/docs.d.ts +67 -0
- package/src/lib/controllers/api/docs.d.ts.map +1 -0
- package/src/lib/controllers/api/docs.js +86 -0
- package/src/lib/controllers/api/docs.js.map +1 -0
- package/src/lib/controllers/api/energy.d.ts.map +1 -1
- package/src/lib/controllers/api/energy.js +35 -7
- package/src/lib/controllers/api/energy.js.map +1 -1
- package/src/lib/controllers/api/health.d.ts +95 -0
- package/src/lib/controllers/api/health.d.ts.map +1 -0
- package/src/lib/controllers/api/health.js +319 -0
- package/src/lib/controllers/api/health.js.map +1 -0
- package/src/lib/controllers/api/index.d.ts +6 -0
- package/src/lib/controllers/api/index.d.ts.map +1 -1
- package/src/lib/controllers/api/index.js +6 -0
- package/src/lib/controllers/api/index.js.map +1 -1
- package/src/lib/controllers/api/messages.d.ts +119 -0
- package/src/lib/controllers/api/messages.d.ts.map +1 -0
- package/src/lib/controllers/api/messages.js +269 -0
- package/src/lib/controllers/api/messages.js.map +1 -0
- package/src/lib/controllers/api/nodes.d.ts +152 -0
- package/src/lib/controllers/api/nodes.d.ts.map +1 -0
- package/src/lib/controllers/api/nodes.js +378 -0
- package/src/lib/controllers/api/nodes.js.map +1 -0
- package/src/lib/controllers/api/quorum.d.ts +12 -8
- package/src/lib/controllers/api/quorum.d.ts.map +1 -1
- package/src/lib/controllers/api/quorum.js +83 -17
- package/src/lib/controllers/api/quorum.js.map +1 -1
- package/src/lib/controllers/api/scbl.d.ts +80 -0
- package/src/lib/controllers/api/scbl.d.ts.map +1 -0
- package/src/lib/controllers/api/scbl.js +325 -0
- package/src/lib/controllers/api/scbl.js.map +1 -0
- package/src/lib/controllers/api/sync.d.ts +140 -0
- package/src/lib/controllers/api/sync.d.ts.map +1 -0
- package/src/lib/controllers/api/sync.js +352 -0
- package/src/lib/controllers/api/sync.js.map +1 -0
- package/src/lib/controllers/api/user.d.ts +2 -0
- package/src/lib/controllers/api/user.d.ts.map +1 -1
- package/src/lib/controllers/api/user.js +122 -7
- package/src/lib/controllers/api/user.js.map +1 -1
- package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -1
- package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
- package/src/lib/errors/symmetric.d.ts +2 -2
- package/src/lib/errors/symmetric.d.ts.map +1 -1
- package/src/lib/errors/symmetric.js.map +1 -1
- package/src/lib/errors/typed-error-local.d.ts +3 -3
- package/src/lib/errors/typed-error-local.d.ts.map +1 -1
- package/src/lib/errors/typed-error-local.js.map +1 -1
- package/src/lib/interfaces/application.d.ts +2 -1
- package/src/lib/interfaces/application.d.ts.map +1 -1
- package/src/lib/interfaces/backend-objects/index.d.ts +4 -4
- package/src/lib/interfaces/backend-objects/index.d.ts.map +1 -1
- package/src/lib/interfaces/backend-objects/index.js +0 -5
- package/src/lib/interfaces/backend-objects/index.js.map +1 -1
- package/src/lib/interfaces/bases/index.d.ts +4 -4
- package/src/lib/interfaces/bases/index.d.ts.map +1 -1
- package/src/lib/interfaces/bases/index.js +0 -5
- package/src/lib/interfaces/bases/index.js.map +1 -1
- package/src/lib/interfaces/index.d.ts +32 -32
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/index.js +0 -33
- package/src/lib/interfaces/index.js.map +1 -1
- package/src/lib/interfaces/member/index.d.ts +3 -3
- package/src/lib/interfaces/member/index.d.ts.map +1 -1
- package/src/lib/interfaces/member/index.js +0 -4
- package/src/lib/interfaces/member/index.js.map +1 -1
- package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts +12 -0
- package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/deleteMessagesRequest.js +3 -0
- package/src/lib/interfaces/requests/deleteMessagesRequest.js.map +1 -0
- package/src/lib/interfaces/requests/discoverBlockRequest.d.ts +10 -0
- package/src/lib/interfaces/requests/discoverBlockRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/discoverBlockRequest.js +3 -0
- package/src/lib/interfaces/requests/discoverBlockRequest.js.map +1 -0
- package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts +9 -0
- package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/getBlockLocationRequest.js +3 -0
- package/src/lib/interfaces/requests/getBlockLocationRequest.js.map +1 -0
- package/src/lib/interfaces/requests/getMessageRequest.d.ts +12 -0
- package/src/lib/interfaces/requests/getMessageRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/getMessageRequest.js +3 -0
- package/src/lib/interfaces/requests/getMessageRequest.js.map +1 -0
- package/src/lib/interfaces/requests/getNodeRequest.d.ts +9 -0
- package/src/lib/interfaces/requests/getNodeRequest.d.ts.map +1 -0
- package/src/lib/interfaces/{membersResponse.js → requests/getNodeRequest.js} +1 -1
- package/src/lib/interfaces/requests/getNodeRequest.js.map +1 -0
- package/src/lib/interfaces/requests/index.d.ts +12 -0
- package/src/lib/interfaces/requests/index.d.ts.map +1 -0
- package/src/lib/interfaces/requests/index.js +3 -0
- package/src/lib/interfaces/requests/index.js.map +1 -0
- package/src/lib/interfaces/requests/messageRequest.d.ts +10 -0
- package/src/lib/interfaces/requests/messageRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/messageRequest.js +3 -0
- package/src/lib/interfaces/requests/messageRequest.js.map +1 -0
- package/src/lib/interfaces/requests/queryMessagesRequest.d.ts +16 -0
- package/src/lib/interfaces/requests/queryMessagesRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/queryMessagesRequest.js +3 -0
- package/src/lib/interfaces/requests/queryMessagesRequest.js.map +1 -0
- package/src/lib/interfaces/requests/registerNodeRequest.d.ts +11 -0
- package/src/lib/interfaces/requests/registerNodeRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/registerNodeRequest.js +3 -0
- package/src/lib/interfaces/requests/registerNodeRequest.js.map +1 -0
- package/src/lib/interfaces/requests/replicateBlockRequest.d.ts +13 -0
- package/src/lib/interfaces/requests/replicateBlockRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/replicateBlockRequest.js +3 -0
- package/src/lib/interfaces/requests/replicateBlockRequest.js.map +1 -0
- package/src/lib/interfaces/requests/sendMessageRequest.d.ts +24 -0
- package/src/lib/interfaces/requests/sendMessageRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/sendMessageRequest.js +3 -0
- package/src/lib/interfaces/requests/sendMessageRequest.js.map +1 -0
- package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts +9 -0
- package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts.map +1 -0
- package/src/lib/interfaces/requests/storeSCBLRequestBody.js +3 -0
- package/src/lib/interfaces/requests/storeSCBLRequestBody.js.map +1 -0
- package/src/lib/interfaces/requests/syncRequestBody.d.ts +10 -0
- package/src/lib/interfaces/requests/syncRequestBody.d.ts.map +1 -0
- package/src/lib/interfaces/requests/syncRequestBody.js +3 -0
- package/src/lib/interfaces/requests/syncRequestBody.js.map +1 -0
- package/src/lib/interfaces/responses/index.d.ts +7 -7
- package/src/lib/interfaces/responses/index.d.ts.map +1 -1
- package/src/lib/interfaces/responses/index.js +0 -8
- package/src/lib/interfaces/responses/index.js.map +1 -1
- package/src/lib/middlewares/authentication.d.ts +133 -0
- package/src/lib/middlewares/authentication.d.ts.map +1 -0
- package/src/lib/middlewares/authentication.js +224 -0
- package/src/lib/middlewares/authentication.js.map +1 -0
- package/src/lib/middlewares/index.d.ts +2 -0
- package/src/lib/middlewares/index.d.ts.map +1 -1
- package/src/lib/middlewares/index.js +15 -1
- package/src/lib/middlewares/index.js.map +1 -1
- package/src/lib/middlewares/request-id.d.ts +18 -0
- package/src/lib/middlewares/request-id.d.ts.map +1 -0
- package/src/lib/middlewares/request-id.js +30 -0
- package/src/lib/middlewares/request-id.js.map +1 -0
- package/src/lib/openapi/index.d.ts +8 -0
- package/src/lib/openapi/index.d.ts.map +1 -0
- package/src/lib/openapi/index.js +21 -0
- package/src/lib/openapi/index.js.map +1 -0
- package/src/lib/openapi/schemas.d.ts +15 -0
- package/src/lib/openapi/schemas.d.ts.map +1 -0
- package/src/lib/openapi/schemas.js +610 -0
- package/src/lib/openapi/schemas.js.map +1 -0
- package/src/lib/routers/api.d.ts +62 -0
- package/src/lib/routers/api.d.ts.map +1 -1
- package/src/lib/routers/api.js +85 -0
- package/src/lib/routers/api.js.map +1 -1
- package/src/lib/services/diskQuorumService.d.ts +7 -6
- package/src/lib/services/diskQuorumService.d.ts.map +1 -1
- package/src/lib/services/diskQuorumService.js.map +1 -1
- package/src/lib/services/email.d.ts +2 -1
- package/src/lib/services/email.d.ts.map +1 -1
- package/src/lib/services/email.js.map +1 -1
- package/src/lib/services/eventNotificationSystem.d.ts +88 -6
- package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
- package/src/lib/services/eventNotificationSystem.js +132 -17
- package/src/lib/services/eventNotificationSystem.js.map +1 -1
- package/src/lib/services/fec.js +1 -1
- package/src/lib/services/fec.js.map +1 -1
- package/src/lib/types/backend-id.d.ts +2 -1
- package/src/lib/types/backend-id.d.ts.map +1 -1
- package/src/lib/utils/errorResponse.d.ts +227 -2
- package/src/lib/utils/errorResponse.d.ts.map +1 -1
- package/src/lib/utils/errorResponse.js +292 -3
- package/src/lib/utils/errorResponse.js.map +1 -1
- package/src/lib/i18n/index.d.ts +0 -7
- package/src/lib/i18n/index.d.ts.map +0 -1
- package/src/lib/i18n/index.js +0 -29
- package/src/lib/i18n/index.js.map +0 -1
- package/src/lib/i18n/strings/index.d.ts +0 -6
- package/src/lib/i18n/strings/index.d.ts.map +0 -1
- package/src/lib/i18n/strings/index.js +0 -17
- package/src/lib/i18n/strings/index.js.map +0 -1
- package/src/lib/interfaces/membersResponse.d.ts +0 -12
- package/src/lib/interfaces/membersResponse.d.ts.map +0 -1
- package/src/lib/interfaces/membersResponse.js.map +0 -1
|
@@ -64,13 +64,41 @@ class EnergyController extends base_1.BaseController {
|
|
|
64
64
|
},
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
try {
|
|
68
|
+
const energyLedger = this.application.services.get('energyLedger');
|
|
69
|
+
const memberChecksum = brightchain_lib_1.Checksum.fromHex(user.memberId);
|
|
70
|
+
const transactions = energyLedger.getByMember(memberChecksum);
|
|
71
|
+
// Map transactions to API response format
|
|
72
|
+
const transactionList = transactions.map((tx) => ({
|
|
73
|
+
id: tx.id.toHex(),
|
|
74
|
+
timestamp: tx.timestamp.toISOString(),
|
|
75
|
+
source: tx.source.toHex(),
|
|
76
|
+
destination: tx.destination.toHex(),
|
|
77
|
+
amount: tx.amount,
|
|
78
|
+
operationType: tx.operationType,
|
|
79
|
+
blockId: tx.blockId?.toHex(),
|
|
80
|
+
metadata: tx.metadata,
|
|
81
|
+
}));
|
|
82
|
+
// Sort by timestamp descending (most recent first)
|
|
83
|
+
transactionList.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
84
|
+
return {
|
|
85
|
+
statusCode: 200,
|
|
86
|
+
response: {
|
|
87
|
+
message: 'Transactions retrieved',
|
|
88
|
+
transactions: transactionList,
|
|
89
|
+
count: transactionList.length,
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return {
|
|
95
|
+
statusCode: 500,
|
|
96
|
+
response: {
|
|
97
|
+
message: 'Failed to retrieve transactions',
|
|
98
|
+
error: 'Failed to retrieve transactions',
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
74
102
|
};
|
|
75
103
|
}
|
|
76
104
|
initRouteDefinitions() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"energy.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/energy.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"energy.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/energy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { IDetailedHealthResponse, IHealthResponse } from '@brightchain/brightchain-lib';
|
|
2
|
+
import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
|
|
3
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
4
|
+
import { ApiErrorResponse, ApiRequestHandler, TypedHandlers } from '@digitaldefiance/node-express-suite';
|
|
5
|
+
import { IBrightChainApplication } from '../../interfaces/application';
|
|
6
|
+
import { DefaultBackendIdType } from '../../shared-types';
|
|
7
|
+
import { BaseController } from '../base';
|
|
8
|
+
type HealthApiResponse = IHealthResponse | IDetailedHealthResponse | ApiErrorResponse;
|
|
9
|
+
interface IHealthHandlers extends TypedHandlers {
|
|
10
|
+
getHealth: ApiRequestHandler<IHealthResponse | ApiErrorResponse>;
|
|
11
|
+
getDetailedHealth: ApiRequestHandler<IDetailedHealthResponse | ApiErrorResponse>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Controller for health check and status endpoints.
|
|
15
|
+
*
|
|
16
|
+
* Provides REST API endpoints for monitoring the API server health
|
|
17
|
+
* and checking the status of dependencies.
|
|
18
|
+
*
|
|
19
|
+
* ## Endpoints
|
|
20
|
+
*
|
|
21
|
+
* ### GET /api/health
|
|
22
|
+
* Basic health check returning server status, uptime, and version.
|
|
23
|
+
* Response time should be under 100ms.
|
|
24
|
+
*
|
|
25
|
+
* **Response:**
|
|
26
|
+
* - `status` (string): 'healthy' | 'degraded' | 'unhealthy' | 'starting'
|
|
27
|
+
* - `uptime` (number): Server uptime in seconds
|
|
28
|
+
* - `timestamp` (string): ISO timestamp of the response
|
|
29
|
+
* - `version` (string): API version
|
|
30
|
+
*
|
|
31
|
+
* ### GET /api/health/detailed
|
|
32
|
+
* Detailed health check with dependency status.
|
|
33
|
+
* Returns 503 when critical dependencies are unhealthy.
|
|
34
|
+
*
|
|
35
|
+
* **Response:**
|
|
36
|
+
* - All fields from basic health check
|
|
37
|
+
* - `dependencies` (object): Status of each dependency
|
|
38
|
+
* - `blockStore`: Block storage service status
|
|
39
|
+
* - `messageService`: Message passing service status
|
|
40
|
+
* - `webSocketServer`: WebSocket server status
|
|
41
|
+
*
|
|
42
|
+
* @requirements 6.1, 6.2, 6.3, 6.4, 6.5
|
|
43
|
+
*/
|
|
44
|
+
export declare class HealthController<TID extends PlatformID = DefaultBackendIdType> extends BaseController<TID, HealthApiResponse, IHealthHandlers, CoreLanguageCode> {
|
|
45
|
+
private static readonly VERSION;
|
|
46
|
+
private static startTime;
|
|
47
|
+
private static isStarting;
|
|
48
|
+
constructor(application: IBrightChainApplication<TID>);
|
|
49
|
+
/**
|
|
50
|
+
* Mark the server as fully initialized (no longer starting)
|
|
51
|
+
*/
|
|
52
|
+
static markReady(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Mark the server as starting (for testing or restart scenarios)
|
|
55
|
+
*/
|
|
56
|
+
static markStarting(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Check if the server is in starting state
|
|
59
|
+
*/
|
|
60
|
+
static isInStartingState(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Reset the start time (for testing)
|
|
63
|
+
*/
|
|
64
|
+
static resetStartTime(): void;
|
|
65
|
+
protected initRouteDefinitions(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Calculate server uptime in seconds
|
|
68
|
+
*/
|
|
69
|
+
private getUptime;
|
|
70
|
+
/**
|
|
71
|
+
* GET /api/health
|
|
72
|
+
* Basic health check returning server status, uptime, timestamp, and version.
|
|
73
|
+
*
|
|
74
|
+
* Returns 503 with "starting" status during initialization.
|
|
75
|
+
* Response time should be under 100ms.
|
|
76
|
+
*
|
|
77
|
+
* @requirements 6.1, 6.4, 6.5
|
|
78
|
+
*/
|
|
79
|
+
private handleGetHealth;
|
|
80
|
+
/**
|
|
81
|
+
* Check the health of a dependency
|
|
82
|
+
*/
|
|
83
|
+
private checkDependencyHealth;
|
|
84
|
+
/**
|
|
85
|
+
* GET /api/health/detailed
|
|
86
|
+
* Detailed health check with dependency status.
|
|
87
|
+
*
|
|
88
|
+
* Returns 503 when critical dependencies are unhealthy.
|
|
89
|
+
*
|
|
90
|
+
* @requirements 6.2, 6.3, 6.5
|
|
91
|
+
*/
|
|
92
|
+
private handleGetDetailedHealth;
|
|
93
|
+
}
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,uBAAuB,EACvB,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAGjB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,KAAK,iBAAiB,GAClB,eAAe,GACf,uBAAuB,GACvB,gBAAgB,CAAC;AAErB,UAAU,eAAgB,SAAQ,aAAa;IAC7C,SAAS,EAAE,iBAAiB,CAAC,eAAe,GAAG,gBAAgB,CAAC,CAAC;IACjE,iBAAiB,EAAE,iBAAiB,CAClC,uBAAuB,GAAG,gBAAgB,CAC3C,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,gBAAgB,CAC3B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,iBAAiB,EACjB,eAAe,EACf,gBAAgB,CACjB;IACC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAY;IAC3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsB;IAC9C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiB;gBAE9B,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IASrD;;OAEG;WACW,SAAS,IAAI,IAAI;IAI/B;;OAEG;WACW,YAAY,IAAI,IAAI;IAIlC;;OAEG;WACW,iBAAiB,IAAI,OAAO;IAI1C;;OAEG;WACW,cAAc,IAAI,IAAI;IAIpC,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAkEtC;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;;;;OAQG;YACW,eAAe;IA6B7B;;OAEG;YACW,qBAAqB;IAwBnC;;;;;;;OAOG;YACW,uBAAuB;CA0HtC"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HealthController = void 0;
|
|
4
|
+
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
5
|
+
const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
|
|
6
|
+
const base_1 = require("../base");
|
|
7
|
+
/**
|
|
8
|
+
* Controller for health check and status endpoints.
|
|
9
|
+
*
|
|
10
|
+
* Provides REST API endpoints for monitoring the API server health
|
|
11
|
+
* and checking the status of dependencies.
|
|
12
|
+
*
|
|
13
|
+
* ## Endpoints
|
|
14
|
+
*
|
|
15
|
+
* ### GET /api/health
|
|
16
|
+
* Basic health check returning server status, uptime, and version.
|
|
17
|
+
* Response time should be under 100ms.
|
|
18
|
+
*
|
|
19
|
+
* **Response:**
|
|
20
|
+
* - `status` (string): 'healthy' | 'degraded' | 'unhealthy' | 'starting'
|
|
21
|
+
* - `uptime` (number): Server uptime in seconds
|
|
22
|
+
* - `timestamp` (string): ISO timestamp of the response
|
|
23
|
+
* - `version` (string): API version
|
|
24
|
+
*
|
|
25
|
+
* ### GET /api/health/detailed
|
|
26
|
+
* Detailed health check with dependency status.
|
|
27
|
+
* Returns 503 when critical dependencies are unhealthy.
|
|
28
|
+
*
|
|
29
|
+
* **Response:**
|
|
30
|
+
* - All fields from basic health check
|
|
31
|
+
* - `dependencies` (object): Status of each dependency
|
|
32
|
+
* - `blockStore`: Block storage service status
|
|
33
|
+
* - `messageService`: Message passing service status
|
|
34
|
+
* - `webSocketServer`: WebSocket server status
|
|
35
|
+
*
|
|
36
|
+
* @requirements 6.1, 6.2, 6.3, 6.4, 6.5
|
|
37
|
+
*/
|
|
38
|
+
class HealthController extends base_1.BaseController {
|
|
39
|
+
constructor(application) {
|
|
40
|
+
super(application);
|
|
41
|
+
// Mark as no longer starting after a brief initialization period
|
|
42
|
+
// In production, this would be set when all services are ready
|
|
43
|
+
setTimeout(() => {
|
|
44
|
+
HealthController.isStarting = false;
|
|
45
|
+
}, 100);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Mark the server as fully initialized (no longer starting)
|
|
49
|
+
*/
|
|
50
|
+
static markReady() {
|
|
51
|
+
HealthController.isStarting = false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Mark the server as starting (for testing or restart scenarios)
|
|
55
|
+
*/
|
|
56
|
+
static markStarting() {
|
|
57
|
+
HealthController.isStarting = true;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if the server is in starting state
|
|
61
|
+
*/
|
|
62
|
+
static isInStartingState() {
|
|
63
|
+
return HealthController.isStarting;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Reset the start time (for testing)
|
|
67
|
+
*/
|
|
68
|
+
static resetStartTime() {
|
|
69
|
+
HealthController.startTime = Date.now();
|
|
70
|
+
}
|
|
71
|
+
initRouteDefinitions() {
|
|
72
|
+
this.routeDefinitions = [
|
|
73
|
+
(0, node_express_suite_1.routeConfig)('get', '/', {
|
|
74
|
+
handlerKey: 'getHealth',
|
|
75
|
+
useAuthentication: false,
|
|
76
|
+
useCryptoAuthentication: false,
|
|
77
|
+
openapi: {
|
|
78
|
+
summary: 'Basic health check',
|
|
79
|
+
description: 'Returns server status, uptime, and version. Response time under 100ms.',
|
|
80
|
+
tags: ['Health'],
|
|
81
|
+
responses: {
|
|
82
|
+
200: {
|
|
83
|
+
schema: 'HealthResponse',
|
|
84
|
+
description: 'Server is healthy',
|
|
85
|
+
example: {
|
|
86
|
+
message: 'OK',
|
|
87
|
+
status: 'healthy',
|
|
88
|
+
uptime: 3600,
|
|
89
|
+
timestamp: '2025-01-16T10:00:00.000Z',
|
|
90
|
+
version: '0.13.0',
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
503: {
|
|
94
|
+
schema: 'HealthResponse',
|
|
95
|
+
description: 'Server is starting or unhealthy',
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
}),
|
|
100
|
+
(0, node_express_suite_1.routeConfig)('get', '/detailed', {
|
|
101
|
+
handlerKey: 'getDetailedHealth',
|
|
102
|
+
useAuthentication: false,
|
|
103
|
+
useCryptoAuthentication: false,
|
|
104
|
+
openapi: {
|
|
105
|
+
summary: 'Detailed health check with dependencies',
|
|
106
|
+
description: 'Returns status of all dependencies. Returns 503 when critical dependencies are unhealthy.',
|
|
107
|
+
tags: ['Health'],
|
|
108
|
+
responses: {
|
|
109
|
+
200: {
|
|
110
|
+
schema: 'DetailedHealthResponse',
|
|
111
|
+
description: 'Health check completed',
|
|
112
|
+
},
|
|
113
|
+
503: {
|
|
114
|
+
schema: 'DetailedHealthResponse',
|
|
115
|
+
description: 'Critical dependency unhealthy',
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
}),
|
|
120
|
+
];
|
|
121
|
+
// Register with OpenAPI registry
|
|
122
|
+
node_express_suite_1.ControllerRegistry.register('/health', 'HealthController', this.routeDefinitions);
|
|
123
|
+
this.handlers = {
|
|
124
|
+
getHealth: this.handleGetHealth.bind(this),
|
|
125
|
+
getDetailedHealth: this.handleGetDetailedHealth.bind(this),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Calculate server uptime in seconds
|
|
130
|
+
*/
|
|
131
|
+
getUptime() {
|
|
132
|
+
return Math.floor((Date.now() - HealthController.startTime) / 1000);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* GET /api/health
|
|
136
|
+
* Basic health check returning server status, uptime, timestamp, and version.
|
|
137
|
+
*
|
|
138
|
+
* Returns 503 with "starting" status during initialization.
|
|
139
|
+
* Response time should be under 100ms.
|
|
140
|
+
*
|
|
141
|
+
* @requirements 6.1, 6.4, 6.5
|
|
142
|
+
*/
|
|
143
|
+
async handleGetHealth() {
|
|
144
|
+
// Check if server is still starting
|
|
145
|
+
if (HealthController.isStarting) {
|
|
146
|
+
return {
|
|
147
|
+
statusCode: 503,
|
|
148
|
+
response: {
|
|
149
|
+
message: 'Server is starting',
|
|
150
|
+
status: brightchain_lib_1.HealthStatus.STARTING,
|
|
151
|
+
uptime: this.getUptime(),
|
|
152
|
+
timestamp: new Date().toISOString(),
|
|
153
|
+
version: HealthController.VERSION,
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
statusCode: 200,
|
|
159
|
+
response: {
|
|
160
|
+
message: 'OK',
|
|
161
|
+
status: brightchain_lib_1.HealthStatus.HEALTHY,
|
|
162
|
+
uptime: this.getUptime(),
|
|
163
|
+
timestamp: new Date().toISOString(),
|
|
164
|
+
version: HealthController.VERSION,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Check the health of a dependency
|
|
170
|
+
*/
|
|
171
|
+
async checkDependencyHealth(name, checkFn) {
|
|
172
|
+
const startTime = Date.now();
|
|
173
|
+
try {
|
|
174
|
+
const isHealthy = await checkFn();
|
|
175
|
+
const latencyMs = Date.now() - startTime;
|
|
176
|
+
return {
|
|
177
|
+
name,
|
|
178
|
+
status: isHealthy ? brightchain_lib_1.HealthStatus.HEALTHY : brightchain_lib_1.HealthStatus.UNHEALTHY,
|
|
179
|
+
latencyMs,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
const latencyMs = Date.now() - startTime;
|
|
184
|
+
return {
|
|
185
|
+
name,
|
|
186
|
+
status: brightchain_lib_1.HealthStatus.UNHEALTHY,
|
|
187
|
+
latencyMs,
|
|
188
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* GET /api/health/detailed
|
|
194
|
+
* Detailed health check with dependency status.
|
|
195
|
+
*
|
|
196
|
+
* Returns 503 when critical dependencies are unhealthy.
|
|
197
|
+
*
|
|
198
|
+
* @requirements 6.2, 6.3, 6.5
|
|
199
|
+
*/
|
|
200
|
+
async handleGetDetailedHealth() {
|
|
201
|
+
// Check if server is still starting
|
|
202
|
+
if (HealthController.isStarting) {
|
|
203
|
+
return {
|
|
204
|
+
statusCode: 503,
|
|
205
|
+
response: {
|
|
206
|
+
message: 'Server is starting',
|
|
207
|
+
status: brightchain_lib_1.HealthStatus.STARTING,
|
|
208
|
+
uptime: this.getUptime(),
|
|
209
|
+
timestamp: new Date().toISOString(),
|
|
210
|
+
version: HealthController.VERSION,
|
|
211
|
+
dependencies: {
|
|
212
|
+
blockStore: {
|
|
213
|
+
name: 'blockStore',
|
|
214
|
+
status: brightchain_lib_1.HealthStatus.STARTING,
|
|
215
|
+
message: 'Server is starting',
|
|
216
|
+
},
|
|
217
|
+
messageService: {
|
|
218
|
+
name: 'messageService',
|
|
219
|
+
status: brightchain_lib_1.HealthStatus.STARTING,
|
|
220
|
+
message: 'Server is starting',
|
|
221
|
+
},
|
|
222
|
+
webSocketServer: {
|
|
223
|
+
name: 'webSocketServer',
|
|
224
|
+
status: brightchain_lib_1.HealthStatus.STARTING,
|
|
225
|
+
message: 'Server is starting',
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
// Check each dependency
|
|
232
|
+
const [blockStoreHealth, messageServiceHealth, webSocketServerHealth] = await Promise.all([
|
|
233
|
+
this.checkDependencyHealth('blockStore', async () => {
|
|
234
|
+
// Check if block store service is available
|
|
235
|
+
try {
|
|
236
|
+
const blockStore = this.application.services.get('blockStore');
|
|
237
|
+
return blockStore !== undefined;
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
}),
|
|
243
|
+
this.checkDependencyHealth('messageService', async () => {
|
|
244
|
+
// Check if message service is available
|
|
245
|
+
try {
|
|
246
|
+
const messageService = this.application.services.get('messageService');
|
|
247
|
+
return messageService !== undefined;
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// Message service may not be registered yet, treat as degraded
|
|
251
|
+
return false;
|
|
252
|
+
}
|
|
253
|
+
}),
|
|
254
|
+
this.checkDependencyHealth('webSocketServer', async () => {
|
|
255
|
+
// Check if WebSocket server is available
|
|
256
|
+
try {
|
|
257
|
+
const wsServer = this.application.services.get('webSocketServer');
|
|
258
|
+
return wsServer !== undefined;
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
// WebSocket server may not be registered yet, treat as degraded
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
}),
|
|
265
|
+
]);
|
|
266
|
+
// Determine overall status based on dependencies
|
|
267
|
+
const allHealthy = blockStoreHealth.status === brightchain_lib_1.HealthStatus.HEALTHY &&
|
|
268
|
+
messageServiceHealth.status === brightchain_lib_1.HealthStatus.HEALTHY &&
|
|
269
|
+
webSocketServerHealth.status === brightchain_lib_1.HealthStatus.HEALTHY;
|
|
270
|
+
const anyUnhealthy = blockStoreHealth.status === brightchain_lib_1.HealthStatus.UNHEALTHY ||
|
|
271
|
+
messageServiceHealth.status === brightchain_lib_1.HealthStatus.UNHEALTHY ||
|
|
272
|
+
webSocketServerHealth.status === brightchain_lib_1.HealthStatus.UNHEALTHY;
|
|
273
|
+
// Block store is critical - if it's unhealthy, the whole system is unhealthy
|
|
274
|
+
const blockStoreUnhealthy = blockStoreHealth.status === brightchain_lib_1.HealthStatus.UNHEALTHY;
|
|
275
|
+
let overallStatus;
|
|
276
|
+
let statusCode;
|
|
277
|
+
let statusMessage;
|
|
278
|
+
if (blockStoreUnhealthy) {
|
|
279
|
+
overallStatus = brightchain_lib_1.HealthStatus.UNHEALTHY;
|
|
280
|
+
statusCode = 503;
|
|
281
|
+
statusMessage = 'Critical dependency unhealthy';
|
|
282
|
+
}
|
|
283
|
+
else if (anyUnhealthy) {
|
|
284
|
+
overallStatus = brightchain_lib_1.HealthStatus.DEGRADED;
|
|
285
|
+
statusCode = 200;
|
|
286
|
+
statusMessage = 'Some dependencies unhealthy';
|
|
287
|
+
}
|
|
288
|
+
else if (allHealthy) {
|
|
289
|
+
overallStatus = brightchain_lib_1.HealthStatus.HEALTHY;
|
|
290
|
+
statusCode = 200;
|
|
291
|
+
statusMessage = 'OK';
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
overallStatus = brightchain_lib_1.HealthStatus.DEGRADED;
|
|
295
|
+
statusCode = 200;
|
|
296
|
+
statusMessage = 'Some dependencies unavailable';
|
|
297
|
+
}
|
|
298
|
+
return {
|
|
299
|
+
statusCode,
|
|
300
|
+
response: {
|
|
301
|
+
message: statusMessage,
|
|
302
|
+
status: overallStatus,
|
|
303
|
+
uptime: this.getUptime(),
|
|
304
|
+
timestamp: new Date().toISOString(),
|
|
305
|
+
version: HealthController.VERSION,
|
|
306
|
+
dependencies: {
|
|
307
|
+
blockStore: blockStoreHealth,
|
|
308
|
+
messageService: messageServiceHealth,
|
|
309
|
+
webSocketServer: webSocketServerHealth,
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
exports.HealthController = HealthController;
|
|
316
|
+
HealthController.VERSION = '0.13.0';
|
|
317
|
+
HealthController.startTime = Date.now();
|
|
318
|
+
HealthController.isStarting = true;
|
|
319
|
+
//# sourceMappingURL=health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/health.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
export * from './blocks';
|
|
2
2
|
export * from './cbl';
|
|
3
|
+
export * from './docs';
|
|
3
4
|
export * from './energy';
|
|
5
|
+
export * from './health';
|
|
4
6
|
export * from './i18n';
|
|
5
7
|
export * from './members';
|
|
8
|
+
export * from './messages';
|
|
9
|
+
export * from './nodes';
|
|
6
10
|
export * from './quorum';
|
|
11
|
+
export * from './scbl';
|
|
7
12
|
export * from './sessions';
|
|
13
|
+
export * from './sync';
|
|
8
14
|
export * from './user';
|
|
9
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
|
|
@@ -3,10 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./blocks"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./cbl"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./docs"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./energy"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./health"), exports);
|
|
7
9
|
tslib_1.__exportStar(require("./i18n"), exports);
|
|
8
10
|
tslib_1.__exportStar(require("./members"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./messages"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./nodes"), exports);
|
|
9
13
|
tslib_1.__exportStar(require("./quorum"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./scbl"), exports);
|
|
10
15
|
tslib_1.__exportStar(require("./sessions"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./sync"), exports);
|
|
11
17
|
tslib_1.__exportStar(require("./user"), exports);
|
|
12
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,gDAAsB;AACtB,mDAAyB;AACzB,iDAAuB;AACvB,oDAA0B;AAC1B,mDAAyB;AACzB,qDAA2B;AAC3B,iDAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,gDAAsB;AACtB,iDAAuB;AACvB,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,oDAA0B;AAC1B,qDAA2B;AAC3B,kDAAwB;AACxB,mDAAyB;AACzB,iDAAuB;AACvB,qDAA2B;AAC3B,iDAAuB;AACvB,iDAAuB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { IDeleteMessageResponse, IGetMessageResponse, IQueryMessagesResponse, ISendMessageResponse } from '@brightchain/brightchain-lib';
|
|
2
|
+
import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
|
|
3
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
4
|
+
import { ApiErrorResponse, ApiRequestHandler, TypedHandlers } from '@digitaldefiance/node-express-suite';
|
|
5
|
+
import { IBrightChainApplication } from '../../interfaces/application';
|
|
6
|
+
import { MessagePassingService } from '../../services/messagePassingService';
|
|
7
|
+
import { DefaultBackendIdType } from '../../shared-types';
|
|
8
|
+
import { BaseController } from '../base';
|
|
9
|
+
type MessageApiResponse = ISendMessageResponse | IGetMessageResponse | IQueryMessagesResponse | IDeleteMessageResponse | ApiErrorResponse;
|
|
10
|
+
interface MessagesHandlers extends TypedHandlers {
|
|
11
|
+
sendMessage: ApiRequestHandler<ISendMessageResponse | ApiErrorResponse>;
|
|
12
|
+
getMessage: ApiRequestHandler<IGetMessageResponse | ApiErrorResponse>;
|
|
13
|
+
queryMessages: ApiRequestHandler<IQueryMessagesResponse | ApiErrorResponse>;
|
|
14
|
+
deleteMessage: ApiRequestHandler<IDeleteMessageResponse | ApiErrorResponse>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Controller for message passing operations.
|
|
18
|
+
*
|
|
19
|
+
* Provides REST API endpoints for sending, retrieving, querying, and deleting
|
|
20
|
+
* messages in the BrightChain distributed messaging system.
|
|
21
|
+
*
|
|
22
|
+
* ## Endpoints
|
|
23
|
+
*
|
|
24
|
+
* ### POST /api/messages
|
|
25
|
+
* Send a new message with optional recipients.
|
|
26
|
+
*
|
|
27
|
+
* **Request Body:**
|
|
28
|
+
* - `content` (string, required): Base64-encoded message content
|
|
29
|
+
* - `senderId` (string, required): Sender member ID
|
|
30
|
+
* - `recipients` (string[], optional): Recipient IDs (broadcast if empty)
|
|
31
|
+
* - `messageType` (string, required): Message type identifier
|
|
32
|
+
* - `priority` (number, optional): Message priority level
|
|
33
|
+
* - `encryptionScheme` (number, optional): Encryption scheme identifier
|
|
34
|
+
*
|
|
35
|
+
* **Response:** Message ID and magnet URL
|
|
36
|
+
*
|
|
37
|
+
* ### GET /api/messages/:id
|
|
38
|
+
* Retrieve a message by its ID.
|
|
39
|
+
*
|
|
40
|
+
* **Parameters:**
|
|
41
|
+
* - `id` (string, required): Message ID
|
|
42
|
+
*
|
|
43
|
+
* **Response:** Base64-encoded message content
|
|
44
|
+
*
|
|
45
|
+
* ### GET /api/messages
|
|
46
|
+
* Query messages with optional filters.
|
|
47
|
+
*
|
|
48
|
+
* **Query Parameters:**
|
|
49
|
+
* - `recipientId` (string, optional): Filter by recipient ID
|
|
50
|
+
* - `senderId` (string, optional): Filter by sender ID
|
|
51
|
+
* - `messageType` (string, optional): Filter by message type
|
|
52
|
+
* - `page` (number, optional): Page number (default: 1)
|
|
53
|
+
* - `pageSize` (number, optional): Page size (default: 50)
|
|
54
|
+
*
|
|
55
|
+
* **Response:** Array of message metadata
|
|
56
|
+
*
|
|
57
|
+
* ### DELETE /api/messages/:id
|
|
58
|
+
* Delete a message by its ID.
|
|
59
|
+
*
|
|
60
|
+
* **Parameters:**
|
|
61
|
+
* - `id` (string, required): Message ID
|
|
62
|
+
*
|
|
63
|
+
* **Response:** 204 No Content on success
|
|
64
|
+
*
|
|
65
|
+
* @requirements 1.1, 1.2, 1.3, 1.4, 1.5, 1.6
|
|
66
|
+
*/
|
|
67
|
+
export declare class MessagesController<TID extends PlatformID = DefaultBackendIdType> extends BaseController<TID, MessageApiResponse, MessagesHandlers, CoreLanguageCode> {
|
|
68
|
+
private messageService;
|
|
69
|
+
constructor(application: IBrightChainApplication<TID>);
|
|
70
|
+
/**
|
|
71
|
+
* Set the MessagePassingService instance.
|
|
72
|
+
* This allows for dependency injection and testing.
|
|
73
|
+
*/
|
|
74
|
+
setMessageService(service: MessagePassingService): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get the MessagePassingService instance.
|
|
77
|
+
* Throws if the service has not been set.
|
|
78
|
+
*/
|
|
79
|
+
private getMessageService;
|
|
80
|
+
protected initRouteDefinitions(): void;
|
|
81
|
+
/**
|
|
82
|
+
* POST /api/messages
|
|
83
|
+
* Send a new message.
|
|
84
|
+
*
|
|
85
|
+
* @param req - Request containing message content and metadata
|
|
86
|
+
* @returns Message ID and magnet URL on success, or error response
|
|
87
|
+
* @requirements 1.1
|
|
88
|
+
*/
|
|
89
|
+
private handleSendMessage;
|
|
90
|
+
/**
|
|
91
|
+
* GET /api/messages/:id
|
|
92
|
+
* Retrieve a message by its ID.
|
|
93
|
+
*
|
|
94
|
+
* @param req - Request containing the message ID parameter
|
|
95
|
+
* @returns Base64-encoded message content on success, or 404 if not found
|
|
96
|
+
* @requirements 1.2, 1.5
|
|
97
|
+
*/
|
|
98
|
+
private handleGetMessage;
|
|
99
|
+
/**
|
|
100
|
+
* GET /api/messages
|
|
101
|
+
* Query messages with optional filters.
|
|
102
|
+
*
|
|
103
|
+
* @param req - Request containing query parameters
|
|
104
|
+
* @returns Array of message metadata matching the query
|
|
105
|
+
* @requirements 1.3
|
|
106
|
+
*/
|
|
107
|
+
private handleQueryMessages;
|
|
108
|
+
/**
|
|
109
|
+
* DELETE /api/messages/:id
|
|
110
|
+
* Delete a message by its ID.
|
|
111
|
+
*
|
|
112
|
+
* @param req - Request containing the message ID parameter
|
|
113
|
+
* @returns 204 No Content on success, or 404 if not found
|
|
114
|
+
* @requirements 1.4
|
|
115
|
+
*/
|
|
116
|
+
private handleDeleteMessage;
|
|
117
|
+
}
|
|
118
|
+
export {};
|
|
119
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EAGrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAM7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,KAAK,kBAAkB,GACnB,oBAAoB,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,gBAAgB,CAAC;AAErB,UAAU,gBAAiB,SAAQ,aAAa;IAC9C,WAAW,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACxE,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,aAAa,EAAE,iBAAiB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAAC;IAC5E,aAAa,EAAE,iBAAiB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAAC;CAC7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBAAa,kBAAkB,CAC7B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,CACjB;IACC,OAAO,CAAC,cAAc,CAAsC;gBAEhD,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAIrD;;;OAGG;IACI,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAI9D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAOzB,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAgCtC;;;;;;;OAOG;YACW,iBAAiB;IAqE/B;;;;;;;OAOG;YACW,gBAAgB;IA6B9B;;;;;;;OAOG;YACW,mBAAmB;IA4CjC;;;;;;;OAOG;YACW,mBAAmB;CAwBlC"}
|