@famir/database 0.0.2 → 0.0.4
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/README.md +187 -1
- package/dist/database.d.ts +0 -1
- package/dist/database.error.js +1 -1
- package/dist/database.error.js.map +1 -1
- package/dist/database.functions.d.ts +30 -25
- package/dist/database.functions.js +8 -8
- package/dist/database.functions.js.map +1 -1
- package/dist/database.js +0 -1
- package/dist/database.js.map +1 -1
- package/dist/database.keys.d.ts +2 -1
- package/dist/database.keys.js +6 -3
- package/dist/database.keys.js.map +1 -1
- package/dist/database.schemas.js +2 -2
- package/dist/database.schemas.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/base/index.js.map +1 -0
- package/dist/{repositories → modules}/base/redis-base.repository.d.ts +11 -9
- package/dist/modules/base/redis-base.repository.js +164 -0
- package/dist/modules/base/redis-base.repository.js.map +1 -0
- package/dist/{repositories → modules}/campaign/campaign.d.ts +4 -8
- package/dist/{repositories → modules}/campaign/campaign.functions.d.ts +7 -16
- package/dist/{repositories → modules}/campaign/campaign.functions.js +23 -36
- package/dist/modules/campaign/campaign.functions.js.map +1 -0
- package/dist/modules/campaign/campaign.js +3 -0
- package/dist/modules/campaign/campaign.js.map +1 -0
- package/dist/{models/campaign/campaign.d.ts → modules/campaign/campaign.models.d.ts} +3 -2
- package/dist/{models/campaign/campaign.js → modules/campaign/campaign.models.js} +6 -4
- package/dist/modules/campaign/campaign.models.js.map +1 -0
- package/dist/{repositories → modules}/campaign/campaign.schemas.d.ts +3 -2
- package/dist/modules/campaign/campaign.schemas.js +109 -0
- package/dist/modules/campaign/campaign.schemas.js.map +1 -0
- package/dist/{repositories → modules}/campaign/index.d.ts +1 -0
- package/dist/{repositories → modules}/campaign/index.js +1 -0
- package/dist/modules/campaign/index.js.map +1 -0
- package/dist/{repositories → modules}/campaign/redis-campaign.repository.d.ts +5 -6
- package/dist/{repositories → modules}/campaign/redis-campaign.repository.js +33 -34
- package/dist/modules/campaign/redis-campaign.repository.js.map +1 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/{repositories → modules}/lure/index.d.ts +1 -0
- package/dist/{repositories → modules}/lure/index.js +1 -0
- package/dist/modules/lure/index.js.map +1 -0
- package/dist/{repositories → modules}/lure/lure.d.ts +1 -1
- package/dist/{repositories → modules}/lure/lure.functions.d.ts +2 -2
- package/dist/{repositories → modules}/lure/lure.functions.js +11 -11
- package/dist/modules/lure/lure.functions.js.map +1 -0
- package/dist/modules/lure/lure.js.map +1 -0
- package/dist/{models/lure/lure.js → modules/lure/lure.models.js} +1 -1
- package/dist/modules/lure/lure.models.js.map +1 -0
- package/dist/modules/lure/lure.schemas.js +32 -0
- package/dist/modules/lure/lure.schemas.js.map +1 -0
- package/dist/{repositories → modules}/lure/redis-lure.repository.d.ts +3 -3
- package/dist/{repositories → modules}/lure/redis-lure.repository.js +23 -10
- package/dist/modules/lure/redis-lure.repository.js.map +1 -0
- package/dist/{repositories → modules}/message/index.d.ts +1 -0
- package/dist/{repositories → modules}/message/index.js +1 -0
- package/dist/modules/message/index.js.map +1 -0
- package/dist/{repositories → modules}/message/message.d.ts +3 -3
- package/dist/{repositories → modules}/message/message.functions.d.ts +5 -4
- package/dist/{repositories → modules}/message/message.functions.js +12 -12
- package/dist/modules/message/message.functions.js.map +1 -0
- package/dist/modules/message/message.js.map +1 -0
- package/dist/{models/message/message.d.ts → modules/message/message.models.d.ts} +4 -4
- package/dist/{models/message/message.js → modules/message/message.models.js} +6 -6
- package/dist/modules/message/message.models.js.map +1 -0
- package/dist/modules/message/message.schemas.js +93 -0
- package/dist/modules/message/message.schemas.js.map +1 -0
- package/dist/{repositories → modules}/message/redis-message.repository.d.ts +6 -5
- package/dist/{repositories → modules}/message/redis-message.repository.js +17 -14
- package/dist/modules/message/redis-message.repository.js.map +1 -0
- package/dist/{repositories → modules}/proxy/index.d.ts +1 -0
- package/dist/{repositories → modules}/proxy/index.js +1 -0
- package/dist/modules/proxy/index.js.map +1 -0
- package/dist/{repositories → modules}/proxy/proxy.d.ts +1 -1
- package/dist/{repositories → modules}/proxy/proxy.functions.d.ts +2 -2
- package/dist/{repositories → modules}/proxy/proxy.functions.js +10 -10
- package/dist/modules/proxy/proxy.functions.js.map +1 -0
- package/dist/modules/proxy/proxy.js.map +1 -0
- package/dist/{models/proxy/proxy.js → modules/proxy/proxy.models.js} +1 -1
- package/dist/modules/proxy/proxy.models.js.map +1 -0
- package/dist/modules/proxy/proxy.schemas.js +23 -0
- package/dist/modules/proxy/proxy.schemas.js.map +1 -0
- package/dist/{repositories → modules}/proxy/redis-proxy.repository.d.ts +3 -3
- package/dist/{repositories → modules}/proxy/redis-proxy.repository.js +23 -10
- package/dist/modules/proxy/redis-proxy.repository.js.map +1 -0
- package/dist/{repositories → modules}/redirector/index.d.ts +1 -0
- package/dist/{repositories → modules}/redirector/index.js +1 -0
- package/dist/modules/redirector/index.js.map +1 -0
- package/dist/{repositories → modules}/redirector/redirector.d.ts +3 -1
- package/dist/{repositories → modules}/redirector/redirector.functions.d.ts +14 -3
- package/dist/{repositories → modules}/redirector/redirector.functions.js +38 -12
- package/dist/modules/redirector/redirector.functions.js.map +1 -0
- package/dist/modules/redirector/redirector.js.map +1 -0
- package/dist/{models/redirector/redirector.d.ts → modules/redirector/redirector.models.d.ts} +5 -1
- package/dist/{models/redirector/redirector.js → modules/redirector/redirector.models.js} +10 -2
- package/dist/modules/redirector/redirector.models.js.map +1 -0
- package/dist/modules/redirector/redirector.schemas.d.ts +7 -0
- package/dist/modules/redirector/redirector.schemas.js +51 -0
- package/dist/modules/redirector/redirector.schemas.js.map +1 -0
- package/dist/{repositories → modules}/redirector/redis-redirector.repository.d.ts +5 -3
- package/dist/{repositories → modules}/redirector/redis-redirector.repository.js +45 -9
- package/dist/modules/redirector/redis-redirector.repository.js.map +1 -0
- package/dist/{repositories → modules}/session/index.d.ts +1 -0
- package/dist/{repositories → modules}/session/index.js +1 -0
- package/dist/modules/session/index.js.map +1 -0
- package/dist/{repositories → modules}/session/redis-session.repository.d.ts +3 -3
- package/dist/{repositories → modules}/session/redis-session.repository.js +22 -13
- package/dist/modules/session/redis-session.repository.js.map +1 -0
- package/dist/{repositories → modules}/session/session.d.ts +1 -1
- package/dist/{repositories → modules}/session/session.functions.d.ts +3 -3
- package/dist/{repositories → modules}/session/session.functions.js +8 -8
- package/dist/modules/session/session.functions.js.map +1 -0
- package/dist/modules/session/session.js.map +1 -0
- package/dist/{models/session/session.d.ts → modules/session/session.models.d.ts} +6 -0
- package/dist/{models/session/session.js → modules/session/session.models.js} +1 -1
- package/dist/modules/session/session.models.js.map +1 -0
- package/dist/modules/session/session.schemas.d.ts +4 -0
- package/dist/modules/session/session.schemas.js +43 -0
- package/dist/modules/session/session.schemas.js.map +1 -0
- package/dist/{repositories → modules}/target/index.d.ts +1 -0
- package/dist/{repositories → modules}/target/index.js +1 -0
- package/dist/modules/target/index.js.map +1 -0
- package/dist/{repositories → modules}/target/redis-target.repository.d.ts +4 -4
- package/dist/{repositories → modules}/target/redis-target.repository.js +56 -35
- package/dist/modules/target/redis-target.repository.js.map +1 -0
- package/dist/{repositories → modules}/target/target.d.ts +2 -1
- package/dist/{repositories → modules}/target/target.functions.d.ts +15 -9
- package/dist/{repositories → modules}/target/target.functions.js +44 -38
- package/dist/modules/target/target.functions.js.map +1 -0
- package/dist/modules/target/target.js.map +1 -0
- package/dist/{models/target/target.d.ts → modules/target/target.models.d.ts} +6 -4
- package/dist/{models/target/target.js → modules/target/target.models.js} +11 -11
- package/dist/modules/target/target.models.js.map +1 -0
- package/dist/{repositories → modules}/target/target.schemas.d.ts +3 -1
- package/dist/modules/target/target.schemas.js +174 -0
- package/dist/modules/target/target.schemas.js.map +1 -0
- package/dist/redis-database-connector.d.ts +2 -1
- package/dist/redis-database-connector.js +12 -10
- package/dist/redis-database-connector.js.map +1 -1
- package/dist/redis-database-manager.d.ts +4 -3
- package/dist/redis-database-manager.js +16 -9
- package/dist/redis-database-manager.js.map +1 -1
- package/dist/redis-functions.d.ts +1 -1
- package/dist/redis-functions.js +30 -1455
- package/dist/redis-functions.js.map +1 -1
- package/package.json +17 -10
- package/dist/models/campaign/campaign.js.map +0 -1
- package/dist/models/campaign/index.d.ts +0 -1
- package/dist/models/campaign/index.js +0 -2
- package/dist/models/campaign/index.js.map +0 -1
- package/dist/models/index.d.ts +0 -7
- package/dist/models/index.js +0 -8
- package/dist/models/index.js.map +0 -1
- package/dist/models/lure/index.d.ts +0 -1
- package/dist/models/lure/index.js +0 -2
- package/dist/models/lure/index.js.map +0 -1
- package/dist/models/lure/lure.js.map +0 -1
- package/dist/models/message/index.d.ts +0 -1
- package/dist/models/message/index.js +0 -2
- package/dist/models/message/index.js.map +0 -1
- package/dist/models/message/message.js.map +0 -1
- package/dist/models/proxy/index.d.ts +0 -1
- package/dist/models/proxy/index.js +0 -2
- package/dist/models/proxy/index.js.map +0 -1
- package/dist/models/proxy/proxy.js.map +0 -1
- package/dist/models/redirector/index.d.ts +0 -1
- package/dist/models/redirector/index.js +0 -2
- package/dist/models/redirector/index.js.map +0 -1
- package/dist/models/redirector/redirector.js.map +0 -1
- package/dist/models/session/index.d.ts +0 -1
- package/dist/models/session/index.js +0 -2
- package/dist/models/session/index.js.map +0 -1
- package/dist/models/session/session.js.map +0 -1
- package/dist/models/target/index.d.ts +0 -1
- package/dist/models/target/index.js +0 -2
- package/dist/models/target/index.js.map +0 -1
- package/dist/models/target/target.js.map +0 -1
- package/dist/repositories/base/index.js.map +0 -1
- package/dist/repositories/base/redis-base.repository.js +0 -140
- package/dist/repositories/base/redis-base.repository.js.map +0 -1
- package/dist/repositories/campaign/campaign.functions.js.map +0 -1
- package/dist/repositories/campaign/campaign.js +0 -2
- package/dist/repositories/campaign/campaign.js.map +0 -1
- package/dist/repositories/campaign/campaign.schemas.js +0 -148
- package/dist/repositories/campaign/campaign.schemas.js.map +0 -1
- package/dist/repositories/campaign/index.js.map +0 -1
- package/dist/repositories/campaign/redis-campaign.repository.js.map +0 -1
- package/dist/repositories/index.js.map +0 -1
- package/dist/repositories/lure/index.js.map +0 -1
- package/dist/repositories/lure/lure.functions.js.map +0 -1
- package/dist/repositories/lure/lure.js.map +0 -1
- package/dist/repositories/lure/lure.schemas.js +0 -45
- package/dist/repositories/lure/lure.schemas.js.map +0 -1
- package/dist/repositories/lure/redis-lure.repository.js.map +0 -1
- package/dist/repositories/message/index.js.map +0 -1
- package/dist/repositories/message/message.functions.js.map +0 -1
- package/dist/repositories/message/message.js.map +0 -1
- package/dist/repositories/message/message.schemas.js +0 -160
- package/dist/repositories/message/message.schemas.js.map +0 -1
- package/dist/repositories/message/redis-message.repository.js.map +0 -1
- package/dist/repositories/proxy/index.js.map +0 -1
- package/dist/repositories/proxy/proxy.functions.js.map +0 -1
- package/dist/repositories/proxy/proxy.js.map +0 -1
- package/dist/repositories/proxy/proxy.schemas.js +0 -34
- package/dist/repositories/proxy/proxy.schemas.js.map +0 -1
- package/dist/repositories/proxy/redis-proxy.repository.js.map +0 -1
- package/dist/repositories/redirector/index.js.map +0 -1
- package/dist/repositories/redirector/redirector.functions.js.map +0 -1
- package/dist/repositories/redirector/redirector.js.map +0 -1
- package/dist/repositories/redirector/redirector.schemas.d.ts +0 -3
- package/dist/repositories/redirector/redirector.schemas.js +0 -51
- package/dist/repositories/redirector/redirector.schemas.js.map +0 -1
- package/dist/repositories/redirector/redis-redirector.repository.js.map +0 -1
- package/dist/repositories/session/index.js.map +0 -1
- package/dist/repositories/session/redis-session.repository.js.map +0 -1
- package/dist/repositories/session/session.functions.js.map +0 -1
- package/dist/repositories/session/session.js.map +0 -1
- package/dist/repositories/session/session.schemas.d.ts +0 -2
- package/dist/repositories/session/session.schemas.js +0 -44
- package/dist/repositories/session/session.schemas.js.map +0 -1
- package/dist/repositories/target/index.js.map +0 -1
- package/dist/repositories/target/redis-target.repository.js.map +0 -1
- package/dist/repositories/target/target.functions.js.map +0 -1
- package/dist/repositories/target/target.js.map +0 -1
- package/dist/repositories/target/target.schemas.js +0 -251
- package/dist/repositories/target/target.schemas.js.map +0 -1
- package/dist/{repositories → modules}/base/index.d.ts +0 -0
- package/dist/{repositories → modules}/base/index.js +0 -0
- package/dist/{repositories → modules}/index.d.ts +0 -0
- package/dist/{repositories → modules}/index.js +0 -0
- package/dist/{repositories → modules}/lure/lure.js +0 -0
- package/dist/{models/lure/lure.d.ts → modules/lure/lure.models.d.ts} +0 -0
- package/dist/{repositories → modules}/lure/lure.schemas.d.ts +1 -1
- package/dist/{repositories → modules}/message/message.js +0 -0
- package/dist/{repositories → modules}/message/message.schemas.d.ts +0 -0
- package/dist/{repositories → modules}/proxy/proxy.js +0 -0
- package/dist/{models/proxy/proxy.d.ts → modules/proxy/proxy.models.d.ts} +0 -0
- package/dist/{repositories → modules}/proxy/proxy.schemas.d.ts +1 -1
- /package/dist/{repositories → modules}/redirector/redirector.js +0 -0
- /package/dist/{repositories → modules}/session/session.js +0 -0
- /package/dist/{repositories → modules}/target/target.js +0 -0
|
@@ -8,14 +8,14 @@ export class MessageModel {
|
|
|
8
8
|
method;
|
|
9
9
|
url;
|
|
10
10
|
status;
|
|
11
|
-
|
|
11
|
+
analyze;
|
|
12
12
|
startTime;
|
|
13
13
|
finishTime;
|
|
14
14
|
createdAt;
|
|
15
15
|
static isNotNull = (model) => {
|
|
16
16
|
return model != null;
|
|
17
17
|
};
|
|
18
|
-
constructor(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, status,
|
|
18
|
+
constructor(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, status, analyze, startTime, finishTime, createdAt) {
|
|
19
19
|
this.campaignId = campaignId;
|
|
20
20
|
this.messageId = messageId;
|
|
21
21
|
this.proxyId = proxyId;
|
|
@@ -25,7 +25,7 @@ export class MessageModel {
|
|
|
25
25
|
this.method = method;
|
|
26
26
|
this.url = url;
|
|
27
27
|
this.status = status;
|
|
28
|
-
this.
|
|
28
|
+
this.analyze = analyze;
|
|
29
29
|
this.startTime = startTime;
|
|
30
30
|
this.finishTime = finishTime;
|
|
31
31
|
this.createdAt = createdAt;
|
|
@@ -42,8 +42,8 @@ export class FullMessageModel extends MessageModel {
|
|
|
42
42
|
connection;
|
|
43
43
|
payload;
|
|
44
44
|
errors;
|
|
45
|
-
constructor(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, requestHeaders, requestBody, status, responseHeaders, responseBody, connection, payload, errors,
|
|
46
|
-
super(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, status,
|
|
45
|
+
constructor(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, requestHeaders, requestBody, status, responseHeaders, responseBody, connection, payload, errors, analyze, startTime, finishTime, createdAt) {
|
|
46
|
+
super(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, status, analyze, startTime, finishTime, createdAt);
|
|
47
47
|
this.requestHeaders = requestHeaders;
|
|
48
48
|
this.requestBody = requestBody;
|
|
49
49
|
this.responseHeaders = responseHeaders;
|
|
@@ -53,4 +53,4 @@ export class FullMessageModel extends MessageModel {
|
|
|
53
53
|
this.errors = errors;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
//# sourceMappingURL=message.js.map
|
|
56
|
+
//# sourceMappingURL=message.models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.models.js","sourceRoot":"","sources":["../../../src/modules/message/message.models.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,YAAY;IA6BZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAlCX,MAAM,CAAC,SAAS,GAAG,CAAyB,KAAe,EAAc,EAAE;QACzE,OAAO,KAAK,IAAI,IAAI,CAAA;IACtB,CAAC,CAAA;IAmBD,YACW,UAAkB,EAClB,SAAiB,EACjB,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,IAAc,EACd,MAAkB,EAClB,GAAW,EACX,MAAc,EACd,OAAe,EACf,SAAiB,EACjB,UAAkB,EAClB,SAAe;QAZf,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAQ;QACjB,SAAI,GAAJ,IAAI,CAAU;QACd,WAAM,GAAN,MAAM,CAAY;QAClB,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAQ;QACjB,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAM;IACvB,CAAC;IAOJ,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAChF,CAAC;;AAQH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAkCrC;IACA;IAEA;IACA;IACA;IACA;IACA;IAhBX,YACE,UAAkB,EAClB,SAAiB,EACjB,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,IAAc,EACd,MAAkB,EAClB,GAAW,EACF,cAA2B,EAC3B,WAAqB,EAC9B,MAAc,EACL,eAA4B,EAC5B,YAAsB,EACtB,UAA0B,EAC1B,OAAoB,EACpB,MAAmB,EAC5B,OAAe,EACf,SAAiB,EACjB,UAAkB,EAClB,SAAe;QAEf,KAAK,CACH,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,MAAM,EACN,GAAG,EACH,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,CACV,CAAA;QA3BQ,mBAAc,GAAd,cAAc,CAAa;QAC3B,gBAAW,GAAX,WAAW,CAAU;QAErB,oBAAe,GAAf,eAAe,CAAa;QAC5B,iBAAY,GAAZ,YAAY,CAAU;QACtB,eAAU,GAAV,UAAU,CAAgB;QAC1B,YAAO,GAAP,OAAO,CAAa;QACpB,WAAM,GAAN,MAAM,CAAa;IAqB9B,CAAC;CACF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { httpConnectionSchema, httpErrorsSchema, httpHeadersSchema, httpMethodSchema, httpPayloadSchema, httpRelativeUrlSchema, httpStatusSchema, httpTypeSchema, } from '@famir/http-proto';
|
|
2
|
+
import { customIdentSchema, randomIdentSchema, serializableSchema, timestampSchema, } from '@famir/validator';
|
|
3
|
+
const rawMessageSchema = {
|
|
4
|
+
type: 'object',
|
|
5
|
+
required: [
|
|
6
|
+
'campaign_id',
|
|
7
|
+
'message_id',
|
|
8
|
+
'proxy_id',
|
|
9
|
+
'target_id',
|
|
10
|
+
'session_id',
|
|
11
|
+
'type',
|
|
12
|
+
'method',
|
|
13
|
+
'url',
|
|
14
|
+
'status',
|
|
15
|
+
'analyze',
|
|
16
|
+
'start_time',
|
|
17
|
+
'finish_time',
|
|
18
|
+
'created_at',
|
|
19
|
+
],
|
|
20
|
+
properties: {
|
|
21
|
+
campaign_id: customIdentSchema,
|
|
22
|
+
message_id: randomIdentSchema,
|
|
23
|
+
proxy_id: customIdentSchema,
|
|
24
|
+
target_id: customIdentSchema,
|
|
25
|
+
session_id: randomIdentSchema,
|
|
26
|
+
type: httpTypeSchema,
|
|
27
|
+
method: httpMethodSchema,
|
|
28
|
+
url: httpRelativeUrlSchema,
|
|
29
|
+
status: httpStatusSchema,
|
|
30
|
+
analyze: customIdentSchema,
|
|
31
|
+
start_time: timestampSchema,
|
|
32
|
+
finish_time: timestampSchema,
|
|
33
|
+
created_at: timestampSchema,
|
|
34
|
+
},
|
|
35
|
+
additionalProperties: false,
|
|
36
|
+
};
|
|
37
|
+
const rawFullMessageSchema = {
|
|
38
|
+
type: 'object',
|
|
39
|
+
required: [
|
|
40
|
+
'campaign_id',
|
|
41
|
+
'message_id',
|
|
42
|
+
'proxy_id',
|
|
43
|
+
'target_id',
|
|
44
|
+
'session_id',
|
|
45
|
+
'type',
|
|
46
|
+
'method',
|
|
47
|
+
'url',
|
|
48
|
+
'request_headers',
|
|
49
|
+
'request_body',
|
|
50
|
+
'status',
|
|
51
|
+
'response_headers',
|
|
52
|
+
'response_body',
|
|
53
|
+
'connection',
|
|
54
|
+
'payload',
|
|
55
|
+
'errors',
|
|
56
|
+
'analyze',
|
|
57
|
+
'start_time',
|
|
58
|
+
'finish_time',
|
|
59
|
+
'created_at',
|
|
60
|
+
],
|
|
61
|
+
properties: {
|
|
62
|
+
campaign_id: customIdentSchema,
|
|
63
|
+
message_id: randomIdentSchema,
|
|
64
|
+
proxy_id: customIdentSchema,
|
|
65
|
+
target_id: customIdentSchema,
|
|
66
|
+
session_id: randomIdentSchema,
|
|
67
|
+
type: httpTypeSchema,
|
|
68
|
+
method: httpMethodSchema,
|
|
69
|
+
url: httpRelativeUrlSchema,
|
|
70
|
+
request_headers: serializableSchema,
|
|
71
|
+
request_body: serializableSchema,
|
|
72
|
+
status: httpStatusSchema,
|
|
73
|
+
response_headers: serializableSchema,
|
|
74
|
+
response_body: serializableSchema,
|
|
75
|
+
connection: serializableSchema,
|
|
76
|
+
payload: serializableSchema,
|
|
77
|
+
errors: serializableSchema,
|
|
78
|
+
analyze: customIdentSchema,
|
|
79
|
+
start_time: timestampSchema,
|
|
80
|
+
finish_time: timestampSchema,
|
|
81
|
+
created_at: timestampSchema,
|
|
82
|
+
},
|
|
83
|
+
additionalProperties: false,
|
|
84
|
+
};
|
|
85
|
+
export const messageSchemas = {
|
|
86
|
+
'database-raw-message': rawMessageSchema,
|
|
87
|
+
'database-raw-full-message': rawFullMessageSchema,
|
|
88
|
+
'database-message-headers': httpHeadersSchema,
|
|
89
|
+
'database-message-connection': httpConnectionSchema,
|
|
90
|
+
'database-message-payload': httpPayloadSchema,
|
|
91
|
+
'database-message-errors': httpErrorsSchema,
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=message.schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.schemas.js","sourceRoot":"","sources":["../../../src/modules/message/message.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAA;AASzB,MAAM,gBAAgB,GAA+B;IACnD,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE;QACR,aAAa;QACb,YAAY;QACZ,UAAU;QACV,WAAW;QACX,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,aAAa;QACb,YAAY;KACb;IACD,UAAU,EAAE;QACV,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,iBAAiB;QAC7B,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EAAE,iBAAiB;QAC5B,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,gBAAgB;QACxB,GAAG,EAAE,qBAAqB;QAC1B,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,eAAe;KAC5B;IACD,oBAAoB,EAAE,KAAK;CACnB,CAAA;AAQV,MAAM,oBAAoB,GAAmC;IAC3D,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE;QACR,aAAa;QACb,YAAY;QACZ,UAAU;QACV,WAAW;QACX,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,iBAAiB;QACjB,cAAc;QACd,QAAQ;QACR,kBAAkB;QAClB,eAAe;QACf,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,aAAa;QACb,YAAY;KACb;IACD,UAAU,EAAE;QACV,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,iBAAiB;QAC7B,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EAAE,iBAAiB;QAC5B,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,gBAAgB;QACxB,GAAG,EAAE,qBAAqB;QAC1B,eAAe,EAAE,kBAAkB;QACnC,YAAY,EAAE,kBAAkB;QAChC,MAAM,EAAE,gBAAgB;QACxB,gBAAgB,EAAE,kBAAkB;QACpC,aAAa,EAAE,kBAAkB;QACjC,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,eAAe;KAC5B;IACD,oBAAoB,EAAE,KAAK;CACnB,CAAA;AAQV,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,sBAAsB,EAAE,gBAAgB;IACxC,2BAA2B,EAAE,oBAAoB;IACjD,0BAA0B,EAAE,iBAAiB;IAC7C,6BAA6B,EAAE,oBAAoB;IACnD,0BAA0B,EAAE,iBAAiB;IAC7C,yBAAyB,EAAE,gBAAgB;CACnC,CAAA"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { DIContainer
|
|
1
|
+
import { DIContainer } from '@famir/common';
|
|
2
2
|
import { Config } from '@famir/config';
|
|
3
|
+
import { HttpBody, HttpConnection, HttpError, HttpHeaders, HttpMethod, HttpPayload, HttpType } from '@famir/http-proto';
|
|
3
4
|
import { Logger } from '@famir/logger';
|
|
4
5
|
import { Validator } from '@famir/validator';
|
|
5
|
-
import {
|
|
6
|
-
import { FullMessageModel, MessageModel } from '../../models/index.js';
|
|
6
|
+
import { DatabaseConnector, RedisDatabaseConfig } from '../../database.js';
|
|
7
7
|
import { RedisBaseRepository } from '../base/index.js';
|
|
8
8
|
import { MessageRepository } from './message.js';
|
|
9
|
+
import { FullMessageModel, MessageModel } from './message.models.js';
|
|
9
10
|
export declare class RedisMessageRepository extends RedisBaseRepository implements MessageRepository {
|
|
10
11
|
static register(container: DIContainer): void;
|
|
11
|
-
constructor(validator: Validator, config: Config<RedisDatabaseConfig>, logger: Logger,
|
|
12
|
-
create(campaignId: string, messageId: string, proxyId: string, targetId: string, sessionId: string, type: HttpType, method: HttpMethod, url: string, requestHeaders: HttpHeaders, requestBody: HttpBody, status: number, responseHeaders: HttpHeaders, responseBody: HttpBody, connection: HttpConnection, payload: HttpPayload, errors: HttpError[],
|
|
12
|
+
constructor(validator: Validator, config: Config<RedisDatabaseConfig>, logger: Logger, connector: DatabaseConnector);
|
|
13
|
+
create(campaignId: string, messageId: string, proxyId: string, targetId: string, sessionId: string, type: HttpType, method: HttpMethod, url: string, requestHeaders: HttpHeaders, requestBody: HttpBody, status: number, responseHeaders: HttpHeaders, responseBody: HttpBody, connection: HttpConnection, payload: HttpPayload, errors: HttpError[], analyze: string, startTime: number, finishTime: number): Promise<void>;
|
|
13
14
|
createDummy(campaignId: string, messageId: string, proxyId: string, targetId: string, sessionId: string): Promise<void>;
|
|
14
15
|
read(campaignId: string, messageId: string): Promise<MessageModel | null>;
|
|
15
16
|
readFull(campaignId: string, messageId: string): Promise<FullMessageModel | null>;
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import { CONFIG } from '@famir/config';
|
|
2
2
|
import { LOGGER } from '@famir/logger';
|
|
3
3
|
import { VALIDATOR } from '@famir/validator';
|
|
4
|
+
import { DatabaseError } from '../../database.error.js';
|
|
4
5
|
import { DATABASE_CONNECTOR } from '../../database.js';
|
|
5
|
-
import { FullMessageModel, MessageModel } from '../../models/index.js';
|
|
6
6
|
import { RedisBaseRepository } from '../base/index.js';
|
|
7
7
|
import { MESSAGE_REPOSITORY } from './message.js';
|
|
8
|
+
import { FullMessageModel, MessageModel } from './message.models.js';
|
|
8
9
|
import { messageSchemas } from './message.schemas.js';
|
|
9
10
|
export class RedisMessageRepository extends RedisBaseRepository {
|
|
10
11
|
static register(container) {
|
|
11
|
-
container.registerSingleton(MESSAGE_REPOSITORY, (c) => new RedisMessageRepository(c.resolve(VALIDATOR), c.resolve(CONFIG), c.resolve(LOGGER), c.resolve(DATABASE_CONNECTOR)
|
|
12
|
+
container.registerSingleton(MESSAGE_REPOSITORY, (c) => new RedisMessageRepository(c.resolve(VALIDATOR), c.resolve(CONFIG), c.resolve(LOGGER), c.resolve(DATABASE_CONNECTOR)));
|
|
12
13
|
}
|
|
13
|
-
constructor(validator, config, logger,
|
|
14
|
-
super(validator, config, logger,
|
|
14
|
+
constructor(validator, config, logger, connector) {
|
|
15
|
+
super(validator, config, logger, connector, 'message');
|
|
15
16
|
this.validator.addSchemas(messageSchemas);
|
|
16
17
|
this.logger.debug(`MessageRepository initialized`);
|
|
17
18
|
}
|
|
18
|
-
async create(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, requestHeaders, requestBody, status, responseHeaders, responseBody, connection, payload, errors,
|
|
19
|
+
async create(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, requestHeaders, requestBody, status, responseHeaders, responseBody, connection, payload, errors, analyze, startTime, finishTime) {
|
|
19
20
|
try {
|
|
20
|
-
const statusReply = await this.connection.message.create_message(this.options.prefix, campaignId, messageId, proxyId, targetId, sessionId, type, method, url, this.encodeJson(requestHeaders), this.encodeBase64(requestBody), status
|
|
21
|
-
const mesg = this.
|
|
21
|
+
const statusReply = await this.connection.message.create_message(this.options.prefix, campaignId, messageId, proxyId, targetId, sessionId, type, method, url, this.encodeJson(requestHeaders), this.encodeBase64(requestBody), status, this.encodeJson(responseHeaders), this.encodeBase64(responseBody), this.encodeJson(connection), this.encodeJson(payload), this.encodeJson(errors), analyze, startTime, finishTime, Date.now());
|
|
22
|
+
const [code, mesg] = this.parseStatusReply(statusReply);
|
|
23
|
+
if (code !== 'OK') {
|
|
24
|
+
throw new DatabaseError(mesg, { code });
|
|
25
|
+
}
|
|
22
26
|
this.logger.info(mesg, { message: { campaignId, messageId, proxyId, targetId, sessionId } });
|
|
23
27
|
}
|
|
24
28
|
catch (error) {
|
|
@@ -28,7 +32,10 @@ export class RedisMessageRepository extends RedisBaseRepository {
|
|
|
28
32
|
async createDummy(campaignId, messageId, proxyId, targetId, sessionId) {
|
|
29
33
|
try {
|
|
30
34
|
const statusReply = await this.connection.message.create_dummy_message(this.options.prefix, campaignId, messageId, proxyId, targetId, sessionId);
|
|
31
|
-
const mesg = this.
|
|
35
|
+
const [code, mesg] = this.parseStatusReply(statusReply);
|
|
36
|
+
if (code !== 'OK') {
|
|
37
|
+
throw new DatabaseError(mesg, { code });
|
|
38
|
+
}
|
|
32
39
|
this.logger.info(mesg, { message: { campaignId, messageId, proxyId, targetId, sessionId } });
|
|
33
40
|
}
|
|
34
41
|
catch (error) {
|
|
@@ -58,18 +65,14 @@ export class RedisMessageRepository extends RedisBaseRepository {
|
|
|
58
65
|
return null;
|
|
59
66
|
}
|
|
60
67
|
this.validateRawData('database-raw-message', rawModel);
|
|
61
|
-
|
|
62
|
-
this.validateRawData('database-message-method', rawModel.method);
|
|
63
|
-
return new MessageModel(rawModel.campaign_id, rawModel.message_id, rawModel.proxy_id, rawModel.target_id, rawModel.session_id, rawModel.type, rawModel.method, rawModel.url, rawModel.status, rawModel.processor, rawModel.start_time, rawModel.finish_time, new Date(rawModel.created_at));
|
|
68
|
+
return new MessageModel(rawModel.campaign_id, rawModel.message_id, rawModel.proxy_id, rawModel.target_id, rawModel.session_id, rawModel.type, rawModel.method, rawModel.url, rawModel.status, rawModel.analyze, rawModel.start_time, rawModel.finish_time, new Date(rawModel.created_at));
|
|
64
69
|
}
|
|
65
70
|
buildFullModel(rawModel) {
|
|
66
71
|
if (rawModel === null) {
|
|
67
72
|
return null;
|
|
68
73
|
}
|
|
69
74
|
this.validateRawData('database-raw-full-message', rawModel);
|
|
70
|
-
this.
|
|
71
|
-
this.validateRawData('database-message-method', rawModel.method);
|
|
72
|
-
return new FullMessageModel(rawModel.campaign_id, rawModel.message_id, rawModel.proxy_id, rawModel.target_id, rawModel.session_id, rawModel.type, rawModel.method, rawModel.url, this.parseHeaders(rawModel.request_headers), this.decodeBase64(rawModel.request_body), rawModel.status, this.parseHeaders(rawModel.response_headers), this.decodeBase64(rawModel.response_body), this.parseConnection(rawModel.connection), this.parsePayload(rawModel.payload), this.parseErrors(rawModel.errors), rawModel.processor, rawModel.start_time, rawModel.finish_time, new Date(rawModel.created_at));
|
|
75
|
+
return new FullMessageModel(rawModel.campaign_id, rawModel.message_id, rawModel.proxy_id, rawModel.target_id, rawModel.session_id, rawModel.type, rawModel.method, rawModel.url, this.parseHeaders(rawModel.request_headers), this.decodeBase64(rawModel.request_body), rawModel.status, this.parseHeaders(rawModel.response_headers), this.decodeBase64(rawModel.response_body), this.parseConnection(rawModel.connection), this.parsePayload(rawModel.payload), this.parseErrors(rawModel.errors), rawModel.analyze, rawModel.start_time, rawModel.finish_time, new Date(rawModel.created_at));
|
|
73
76
|
}
|
|
74
77
|
parseHeaders(value) {
|
|
75
78
|
const data = this.decodeJson(value);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis-message.repository.js","sourceRoot":"","sources":["../../../src/modules/message/redis-message.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/proxy/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProxyModel } from '
|
|
1
|
+
import { ProxyModel } from './proxy.models.js';
|
|
2
2
|
export declare const PROXY_REPOSITORY: unique symbol;
|
|
3
3
|
export interface ProxyRepository {
|
|
4
4
|
create(campaignId: string, proxyId: string, url: string, lockSecret: string): Promise<void>;
|
|
@@ -3,7 +3,7 @@ export interface RawProxy {
|
|
|
3
3
|
campaign_id: string;
|
|
4
4
|
proxy_id: string;
|
|
5
5
|
url: string;
|
|
6
|
-
is_enabled:
|
|
6
|
+
is_enabled: boolean;
|
|
7
7
|
message_count: number;
|
|
8
8
|
created_at: number;
|
|
9
9
|
}
|
|
@@ -11,7 +11,7 @@ export declare const proxyFunctions: {
|
|
|
11
11
|
readonly proxy: {
|
|
12
12
|
readonly create_proxy: {
|
|
13
13
|
readonly NUMBER_OF_KEYS: 5;
|
|
14
|
-
readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, proxyId: string, url: string, createdAt:
|
|
14
|
+
readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, proxyId: string, url: string, createdAt: number, lockSecret: string) => void;
|
|
15
15
|
readonly transformReply: () => unknown;
|
|
16
16
|
};
|
|
17
17
|
readonly read_proxy: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { campaignKey, campaignLockKey, enabledProxyIndexKey, proxyIndexKey, proxyKey, proxyUrlsKey } from '../../database.keys.js';
|
|
1
|
+
import { campaignKey, campaignLockKey, enabledProxyIndexKey, proxyIndexKey, proxyKey, proxyUrlsKey, } from '../../database.keys.js';
|
|
2
2
|
export const proxyFunctions = {
|
|
3
3
|
proxy: {
|
|
4
4
|
create_proxy: {
|
|
@@ -12,10 +12,10 @@ export const proxyFunctions = {
|
|
|
12
12
|
parser.push(campaignId);
|
|
13
13
|
parser.push(proxyId);
|
|
14
14
|
parser.push(url);
|
|
15
|
-
parser.push(createdAt);
|
|
15
|
+
parser.push(createdAt.toString());
|
|
16
16
|
parser.push(lockSecret);
|
|
17
17
|
},
|
|
18
|
-
transformReply: undefined
|
|
18
|
+
transformReply: undefined,
|
|
19
19
|
},
|
|
20
20
|
read_proxy: {
|
|
21
21
|
NUMBER_OF_KEYS: 2,
|
|
@@ -23,7 +23,7 @@ export const proxyFunctions = {
|
|
|
23
23
|
parser.pushKey(campaignKey(prefix, campaignId));
|
|
24
24
|
parser.pushKey(proxyKey(prefix, campaignId, proxyId));
|
|
25
25
|
},
|
|
26
|
-
transformReply: undefined
|
|
26
|
+
transformReply: undefined,
|
|
27
27
|
},
|
|
28
28
|
read_proxy_index: {
|
|
29
29
|
NUMBER_OF_KEYS: 2,
|
|
@@ -31,7 +31,7 @@ export const proxyFunctions = {
|
|
|
31
31
|
parser.pushKey(campaignKey(prefix, campaignId));
|
|
32
32
|
parser.pushKey(proxyIndexKey(prefix, campaignId));
|
|
33
33
|
},
|
|
34
|
-
transformReply: undefined
|
|
34
|
+
transformReply: undefined,
|
|
35
35
|
},
|
|
36
36
|
enable_proxy: {
|
|
37
37
|
NUMBER_OF_KEYS: 4,
|
|
@@ -42,7 +42,7 @@ export const proxyFunctions = {
|
|
|
42
42
|
parser.pushKey(enabledProxyIndexKey(prefix, campaignId));
|
|
43
43
|
parser.push(lockSecret);
|
|
44
44
|
},
|
|
45
|
-
transformReply: undefined
|
|
45
|
+
transformReply: undefined,
|
|
46
46
|
},
|
|
47
47
|
disable_proxy: {
|
|
48
48
|
NUMBER_OF_KEYS: 4,
|
|
@@ -53,7 +53,7 @@ export const proxyFunctions = {
|
|
|
53
53
|
parser.pushKey(enabledProxyIndexKey(prefix, campaignId));
|
|
54
54
|
parser.push(lockSecret);
|
|
55
55
|
},
|
|
56
|
-
transformReply: undefined
|
|
56
|
+
transformReply: undefined,
|
|
57
57
|
},
|
|
58
58
|
delete_proxy: {
|
|
59
59
|
NUMBER_OF_KEYS: 5,
|
|
@@ -65,8 +65,8 @@ export const proxyFunctions = {
|
|
|
65
65
|
parser.pushKey(proxyIndexKey(prefix, campaignId));
|
|
66
66
|
parser.push(lockSecret);
|
|
67
67
|
},
|
|
68
|
-
transformReply: undefined
|
|
69
|
-
}
|
|
70
|
-
}
|
|
68
|
+
transformReply: undefined,
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
71
|
};
|
|
72
72
|
//# sourceMappingURL=proxy.functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.functions.js","sourceRoot":"","sources":["../../../src/modules/proxy/proxy.functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/modules/proxy/proxy.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.models.js","sourceRoot":"","sources":["../../../src/modules/proxy/proxy.models.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,UAAU;IAgCV;IACA;IACA;IACA;IACA;IACA;IA9BX,MAAM,CAAC,SAAS,GAAG,CAAuB,KAAe,EAAc,EAAE;QACvE,OAAO,KAAK,IAAI,IAAI,CAAA;IACtB,CAAC,CAAA;IAQD,MAAM,CAAC,SAAS,GAAG,CAAuB,KAAQ,EAAoC,EAAE;QACtF,OAAO,KAAK,CAAC,SAAS,CAAA;IACxB,CAAC,CAAA;IAYD,YACW,UAAkB,EAClB,OAAe,EACf,GAAW,EACX,SAAkB,EAClB,YAAoB,EACpB,SAAe;QALf,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAQ;QACf,QAAG,GAAH,GAAG,CAAQ;QACX,cAAS,GAAT,SAAS,CAAS;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAM;IACvB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { booleanSchema, counterSchema, customIdentSchema, timestampSchema, } from '@famir/validator';
|
|
2
|
+
export const proxyUrlSchema = {
|
|
3
|
+
type: 'string',
|
|
4
|
+
minLength: 1,
|
|
5
|
+
maxLength: 256,
|
|
6
|
+
};
|
|
7
|
+
const rawProxySchema = {
|
|
8
|
+
type: 'object',
|
|
9
|
+
required: ['campaign_id', 'proxy_id', 'url', 'is_enabled', 'message_count', 'created_at'],
|
|
10
|
+
properties: {
|
|
11
|
+
campaign_id: customIdentSchema,
|
|
12
|
+
proxy_id: customIdentSchema,
|
|
13
|
+
url: proxyUrlSchema,
|
|
14
|
+
is_enabled: booleanSchema,
|
|
15
|
+
message_count: counterSchema,
|
|
16
|
+
created_at: timestampSchema,
|
|
17
|
+
},
|
|
18
|
+
additionalProperties: false,
|
|
19
|
+
};
|
|
20
|
+
export const proxySchemas = {
|
|
21
|
+
'database-raw-proxy': rawProxySchema,
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=proxy.schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.schemas.js","sourceRoot":"","sources":["../../../src/modules/proxy/proxy.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAA;AASzB,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,GAAG;CACN,CAAA;AAQV,MAAM,cAAc,GAA6B;IAC/C,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,CAAC;IACzF,UAAU,EAAE;QACV,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,iBAAiB;QAC3B,GAAG,EAAE,cAAc;QACnB,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,aAAa;QAC5B,UAAU,EAAE,eAAe;KAC5B;IACD,oBAAoB,EAAE,KAAK;CACnB,CAAA;AAQV,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,oBAAoB,EAAE,cAAc;CAC5B,CAAA"}
|
|
@@ -2,13 +2,13 @@ import { DIContainer } from '@famir/common';
|
|
|
2
2
|
import { Config } from '@famir/config';
|
|
3
3
|
import { Logger } from '@famir/logger';
|
|
4
4
|
import { Validator } from '@famir/validator';
|
|
5
|
-
import {
|
|
6
|
-
import { ProxyModel } from '../../models/index.js';
|
|
5
|
+
import { DatabaseConnector, RedisDatabaseConfig } from '../../database.js';
|
|
7
6
|
import { RedisBaseRepository } from '../base/index.js';
|
|
8
7
|
import { ProxyRepository } from './proxy.js';
|
|
8
|
+
import { ProxyModel } from './proxy.models.js';
|
|
9
9
|
export declare class RedisProxyRepository extends RedisBaseRepository implements ProxyRepository {
|
|
10
10
|
static register(container: DIContainer): void;
|
|
11
|
-
constructor(validator: Validator, config: Config<RedisDatabaseConfig>, logger: Logger,
|
|
11
|
+
constructor(validator: Validator, config: Config<RedisDatabaseConfig>, logger: Logger, connector: DatabaseConnector);
|
|
12
12
|
create(campaignId: string, proxyId: string, url: string, lockSecret: string): Promise<void>;
|
|
13
13
|
read(campaignId: string, proxyId: string): Promise<ProxyModel | null>;
|
|
14
14
|
enable(campaignId: string, proxyId: string, lockSecret: string): Promise<void>;
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import { CONFIG } from '@famir/config';
|
|
2
2
|
import { LOGGER } from '@famir/logger';
|
|
3
3
|
import { VALIDATOR } from '@famir/validator';
|
|
4
|
+
import { DatabaseError } from '../../database.error.js';
|
|
4
5
|
import { DATABASE_CONNECTOR } from '../../database.js';
|
|
5
|
-
import { ProxyModel } from '../../models/index.js';
|
|
6
6
|
import { RedisBaseRepository } from '../base/index.js';
|
|
7
7
|
import { PROXY_REPOSITORY } from './proxy.js';
|
|
8
|
+
import { ProxyModel } from './proxy.models.js';
|
|
8
9
|
import { proxySchemas } from './proxy.schemas.js';
|
|
9
10
|
export class RedisProxyRepository extends RedisBaseRepository {
|
|
10
11
|
static register(container) {
|
|
11
|
-
container.registerSingleton(PROXY_REPOSITORY, (c) => new RedisProxyRepository(c.resolve(VALIDATOR), c.resolve(CONFIG), c.resolve(LOGGER), c.resolve(DATABASE_CONNECTOR)
|
|
12
|
+
container.registerSingleton(PROXY_REPOSITORY, (c) => new RedisProxyRepository(c.resolve(VALIDATOR), c.resolve(CONFIG), c.resolve(LOGGER), c.resolve(DATABASE_CONNECTOR)));
|
|
12
13
|
}
|
|
13
|
-
constructor(validator, config, logger,
|
|
14
|
-
super(validator, config, logger,
|
|
14
|
+
constructor(validator, config, logger, connector) {
|
|
15
|
+
super(validator, config, logger, connector, 'proxy');
|
|
15
16
|
this.validator.addSchemas(proxySchemas);
|
|
16
17
|
this.logger.debug(`ProxyRepository initialized`);
|
|
17
18
|
}
|
|
18
19
|
async create(campaignId, proxyId, url, lockSecret) {
|
|
19
20
|
try {
|
|
20
|
-
const statusReply = await this.connection.proxy.create_proxy(this.options.prefix, campaignId, proxyId, url, Date.now()
|
|
21
|
-
const mesg = this.
|
|
21
|
+
const statusReply = await this.connection.proxy.create_proxy(this.options.prefix, campaignId, proxyId, url, Date.now(), lockSecret);
|
|
22
|
+
const [code, mesg] = this.parseStatusReply(statusReply);
|
|
23
|
+
if (code !== 'OK') {
|
|
24
|
+
throw new DatabaseError(mesg, { code });
|
|
25
|
+
}
|
|
22
26
|
this.logger.info(mesg, { proxy: { campaignId, proxyId } });
|
|
23
27
|
}
|
|
24
28
|
catch (error) {
|
|
@@ -37,7 +41,10 @@ export class RedisProxyRepository extends RedisBaseRepository {
|
|
|
37
41
|
async enable(campaignId, proxyId, lockSecret) {
|
|
38
42
|
try {
|
|
39
43
|
const statusReply = await this.connection.proxy.enable_proxy(this.options.prefix, campaignId, proxyId, lockSecret);
|
|
40
|
-
const mesg = this.
|
|
44
|
+
const [code, mesg] = this.parseStatusReply(statusReply);
|
|
45
|
+
if (code !== 'OK') {
|
|
46
|
+
throw new DatabaseError(mesg, { code });
|
|
47
|
+
}
|
|
41
48
|
this.logger.info(mesg, { proxy: { campaignId, proxyId } });
|
|
42
49
|
}
|
|
43
50
|
catch (error) {
|
|
@@ -47,7 +54,10 @@ export class RedisProxyRepository extends RedisBaseRepository {
|
|
|
47
54
|
async disable(campaignId, proxyId, lockSecret) {
|
|
48
55
|
try {
|
|
49
56
|
const statusReply = await this.connection.proxy.disable_proxy(this.options.prefix, campaignId, proxyId, lockSecret);
|
|
50
|
-
const mesg = this.
|
|
57
|
+
const [code, mesg] = this.parseStatusReply(statusReply);
|
|
58
|
+
if (code !== 'OK') {
|
|
59
|
+
throw new DatabaseError(mesg, { code });
|
|
60
|
+
}
|
|
51
61
|
this.logger.info(mesg, { proxy: { campaignId, proxyId } });
|
|
52
62
|
}
|
|
53
63
|
catch (error) {
|
|
@@ -57,7 +67,10 @@ export class RedisProxyRepository extends RedisBaseRepository {
|
|
|
57
67
|
async delete(campaignId, proxyId, lockSecret) {
|
|
58
68
|
try {
|
|
59
69
|
const statusReply = await this.connection.proxy.delete_proxy(this.options.prefix, campaignId, proxyId, lockSecret);
|
|
60
|
-
const mesg = this.
|
|
70
|
+
const [code, mesg] = this.parseStatusReply(statusReply);
|
|
71
|
+
if (code !== 'OK') {
|
|
72
|
+
throw new DatabaseError(mesg, { code });
|
|
73
|
+
}
|
|
61
74
|
this.logger.info(mesg, { proxy: { campaignId, proxyId } });
|
|
62
75
|
}
|
|
63
76
|
catch (error) {
|
|
@@ -83,7 +96,7 @@ export class RedisProxyRepository extends RedisBaseRepository {
|
|
|
83
96
|
return null;
|
|
84
97
|
}
|
|
85
98
|
this.validateRawData('database-raw-proxy', rawModel);
|
|
86
|
-
return new ProxyModel(rawModel.campaign_id, rawModel.proxy_id, rawModel.url,
|
|
99
|
+
return new ProxyModel(rawModel.campaign_id, rawModel.proxy_id, rawModel.url, rawModel.is_enabled, rawModel.message_count, new Date(rawModel.created_at));
|
|
87
100
|
}
|
|
88
101
|
buildCollection(rawCollection) {
|
|
89
102
|
this.validateArrayReply(rawCollection);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis-proxy.repository.js","sourceRoot":"","sources":["../../../src/modules/proxy/redis-proxy.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/redirector/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kCAAkC,CAAA"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { FullRedirectorModel, RedirectorModel } from '
|
|
1
|
+
import { FullRedirectorModel, RedirectorModel } from './redirector.models.js';
|
|
2
2
|
export declare const REDIRECTOR_REPOSITORY: unique symbol;
|
|
3
3
|
export interface RedirectorRepository {
|
|
4
4
|
create(campaignId: string, redirectorId: string, page: string, lockSecret: string): Promise<void>;
|
|
5
5
|
read(campaignId: string, redirectorId: string): Promise<RedirectorModel | null>;
|
|
6
6
|
readFull(campaignId: string, redirectorId: string): Promise<FullRedirectorModel | null>;
|
|
7
7
|
update(campaignId: string, redirectorId: string, page: string | null | undefined, lockSecret: string): Promise<void>;
|
|
8
|
+
appendField(campaignId: string, redirectorId: string, field: string, lockSecret: string): Promise<void>;
|
|
9
|
+
removeField(campaignId: string, redirectorId: string, field: string, lockSecret: string): Promise<void>;
|
|
8
10
|
delete(campaignId: string, redirectorId: string, lockSecret: string): Promise<void>;
|
|
9
11
|
list(campaignId: string): Promise<RedirectorModel[] | null>;
|
|
10
12
|
listFull(campaignId: string): Promise<FullRedirectorModel[] | null>;
|
|
@@ -7,12 +7,13 @@ export interface RawRedirector {
|
|
|
7
7
|
}
|
|
8
8
|
export interface RawFullRedirector extends RawRedirector {
|
|
9
9
|
page: string;
|
|
10
|
+
fields: string[];
|
|
10
11
|
}
|
|
11
12
|
export declare const redirectorFunctions: {
|
|
12
13
|
readonly redirector: {
|
|
13
14
|
readonly create_redirector: {
|
|
14
15
|
readonly NUMBER_OF_KEYS: 4;
|
|
15
|
-
readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, page: string, createdAt:
|
|
16
|
+
readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, page: string, createdAt: number, lockSecret: string) => void;
|
|
16
17
|
readonly transformReply: () => unknown;
|
|
17
18
|
};
|
|
18
19
|
readonly read_redirector: {
|
|
@@ -21,7 +22,7 @@ export declare const redirectorFunctions: {
|
|
|
21
22
|
readonly transformReply: () => unknown;
|
|
22
23
|
};
|
|
23
24
|
readonly read_full_redirector: {
|
|
24
|
-
readonly NUMBER_OF_KEYS:
|
|
25
|
+
readonly NUMBER_OF_KEYS: 3;
|
|
25
26
|
readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string) => void;
|
|
26
27
|
readonly transformReply: () => unknown;
|
|
27
28
|
};
|
|
@@ -35,8 +36,18 @@ export declare const redirectorFunctions: {
|
|
|
35
36
|
readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, page: string | null, lockSecret: string) => void;
|
|
36
37
|
readonly transformReply: () => unknown;
|
|
37
38
|
};
|
|
38
|
-
readonly
|
|
39
|
+
readonly append_redirector_field: {
|
|
39
40
|
readonly NUMBER_OF_KEYS: 4;
|
|
41
|
+
readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, field: string, lockSecret: string) => void;
|
|
42
|
+
readonly transformReply: () => unknown;
|
|
43
|
+
};
|
|
44
|
+
readonly remove_redirector_field: {
|
|
45
|
+
readonly NUMBER_OF_KEYS: 4;
|
|
46
|
+
readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, field: string, lockSecret: string) => void;
|
|
47
|
+
readonly transformReply: () => unknown;
|
|
48
|
+
};
|
|
49
|
+
readonly delete_redirector: {
|
|
50
|
+
readonly NUMBER_OF_KEYS: 5;
|
|
40
51
|
readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, lockSecret: string) => void;
|
|
41
52
|
readonly transformReply: () => unknown;
|
|
42
53
|
};
|