@pax2pay/model-banking 0.1.413 → 0.1.415
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/Client/Transactions/index.ts +9 -0
- package/Transaction/Statistics.ts +32 -14
- package/dist/Client/Transactions/index.d.ts +7 -0
- package/dist/Client/Transactions/index.js +5 -0
- package/dist/Client/Transactions/index.js.map +1 -1
- package/dist/Transaction/Statistics.d.ts +13 -14
- package/dist/Transaction/Statistics.js +17 -1
- package/dist/Transaction/Statistics.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,8 @@ import { gracely } from "gracely"
|
|
|
2
2
|
import { isoly } from "isoly"
|
|
3
3
|
import { http } from "cloudly-http"
|
|
4
4
|
import * as rest from "cloudly-rest"
|
|
5
|
+
import { Card } from "../../Card"
|
|
6
|
+
import { Supplier } from "../../Supplier"
|
|
5
7
|
import { Transaction } from "../../Transaction"
|
|
6
8
|
import { Notes } from "./Notes"
|
|
7
9
|
|
|
@@ -41,4 +43,11 @@ export class Transactions extends rest.Collection<gracely.Error> {
|
|
|
41
43
|
: `/transaction/${transaction}?detailed=true`
|
|
42
44
|
)
|
|
43
45
|
}
|
|
46
|
+
async statistics(
|
|
47
|
+
range: isoly.DateRange,
|
|
48
|
+
queries?: { cursor?: string; scheme?: Card.Scheme; supplier?: Supplier }
|
|
49
|
+
): Promise<Transaction.Statistics | gracely.Error> {
|
|
50
|
+
const query = "?" + http.Search.stringify({ ...queries, ...range })
|
|
51
|
+
return this.client.get<Transaction.Statistics>(`/transaction/statistics${query}`)
|
|
52
|
+
}
|
|
44
53
|
}
|
|
@@ -3,28 +3,29 @@ import { isly } from "isly"
|
|
|
3
3
|
import { Transaction } from "."
|
|
4
4
|
|
|
5
5
|
export type Statistics = Record<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
Statistics.TransactionType,
|
|
7
|
+
Record<
|
|
8
|
+
Statistics.Region,
|
|
9
|
+
{
|
|
9
10
|
count: number
|
|
10
11
|
amount: number
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
count: number
|
|
14
|
-
amount: number
|
|
15
|
-
}
|
|
16
|
-
extraRegion: {
|
|
17
|
-
count: number
|
|
18
|
-
amount: number
|
|
19
|
-
}
|
|
20
|
-
}
|
|
13
|
+
>
|
|
21
14
|
>
|
|
22
15
|
|
|
23
16
|
export namespace Statistics {
|
|
17
|
+
export type TransactionType = typeof TransactionType.values[number]
|
|
18
|
+
export namespace TransactionType {
|
|
19
|
+
export const values = ["capture", "refund"] as const
|
|
20
|
+
}
|
|
21
|
+
export type Region = typeof Region.values[number]
|
|
22
|
+
export namespace Region {
|
|
23
|
+
export const values = ["domestic", "intraRegion", "extraRegion"] as const
|
|
24
|
+
}
|
|
24
25
|
export const type = isly.record<Statistics>(
|
|
25
|
-
isly.string(
|
|
26
|
+
isly.string<TransactionType>(TransactionType.values),
|
|
26
27
|
isly.record(
|
|
27
|
-
isly.string(
|
|
28
|
+
isly.string<Region>(Region.values),
|
|
28
29
|
isly.object({
|
|
29
30
|
count: isly.number(),
|
|
30
31
|
amount: isly.number(),
|
|
@@ -50,4 +51,21 @@ export namespace Statistics {
|
|
|
50
51
|
}
|
|
51
52
|
return statistics
|
|
52
53
|
}
|
|
54
|
+
export function combine(accumulation: Statistics, incoming: Statistics): Statistics {
|
|
55
|
+
Object.entries(incoming).forEach(([kind, statistic]: [TransactionType, Statistics[TransactionType]]) =>
|
|
56
|
+
Object.entries(statistic).forEach(
|
|
57
|
+
([region, { count, amount }]: [
|
|
58
|
+
Region,
|
|
59
|
+
{
|
|
60
|
+
count: number
|
|
61
|
+
amount: number
|
|
62
|
+
}
|
|
63
|
+
]) => {
|
|
64
|
+
accumulation[kind][region].count += count
|
|
65
|
+
accumulation[kind][region].amount += amount
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
)
|
|
69
|
+
return accumulation
|
|
70
|
+
}
|
|
53
71
|
}
|
|
@@ -2,6 +2,8 @@ import { gracely } from "gracely";
|
|
|
2
2
|
import { isoly } from "isoly";
|
|
3
3
|
import { http } from "cloudly-http";
|
|
4
4
|
import * as rest from "cloudly-rest";
|
|
5
|
+
import { Card } from "../../Card";
|
|
6
|
+
import { Supplier } from "../../Supplier";
|
|
5
7
|
import { Transaction } from "../../Transaction";
|
|
6
8
|
import { Notes } from "./Notes";
|
|
7
9
|
export declare class Transactions extends rest.Collection<gracely.Error> {
|
|
@@ -18,4 +20,9 @@ export declare class Transactions extends rest.Collection<gracely.Error> {
|
|
|
18
20
|
cursor?: string | undefined;
|
|
19
21
|
}) | gracely.Error>;
|
|
20
22
|
fetch(transaction: string, account?: string): Promise<Transaction | gracely.Error>;
|
|
23
|
+
statistics(range: isoly.DateRange, queries?: {
|
|
24
|
+
cursor?: string;
|
|
25
|
+
scheme?: Card.Scheme;
|
|
26
|
+
supplier?: Supplier;
|
|
27
|
+
}): Promise<Transaction.Statistics | gracely.Error>;
|
|
21
28
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { http } from "cloudly-http";
|
|
1
2
|
import * as rest from "cloudly-rest";
|
|
2
3
|
import { Notes } from "./Notes";
|
|
3
4
|
export class Transactions extends rest.Collection {
|
|
@@ -25,5 +26,9 @@ export class Transactions extends rest.Collection {
|
|
|
25
26
|
? `/account/${account}/transaction/${transaction}?detailed=true`
|
|
26
27
|
: `/transaction/${transaction}?detailed=true`);
|
|
27
28
|
}
|
|
29
|
+
async statistics(range, queries) {
|
|
30
|
+
const query = "?" + http.Search.stringify({ ...queries, ...range });
|
|
31
|
+
return this.client.get(`/transaction/statistics${query}`);
|
|
32
|
+
}
|
|
28
33
|
}
|
|
29
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../","sources":["Client/Transactions/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../","sources":["Client/Transactions/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAA;AAIpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,MAAM,OAAO,YAAa,SAAQ,IAAI,CAAC,UAAyB;IAE/D,YAAY,MAAmB;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAA;QAFL,UAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAGvC,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,WAAkC;QAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAc,YAAY,OAAO,cAAc,EAAE,WAAW,CAAC,CAAA;IACrF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAMV;QACA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;YAC5B,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACzG,GAAG,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;YAC7B,QAAQ,EAAE,MAAM;SAChB,CAAC;aACA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,MAAM,IAAI,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,CAAA;QAC1F,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAC3B,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,EAC7B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAC1D,CAAA;IACF,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,WAAmB,EAAE,OAAgB;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACrB,OAAO;YACN,CAAC,CAAC,YAAY,OAAO,gBAAgB,WAAW,gBAAgB;YAChE,CAAC,CAAC,gBAAgB,WAAW,gBAAgB,CAC9C,CAAA;IACF,CAAC;IACD,KAAK,CAAC,UAAU,CACf,KAAsB,EACtB,OAAwE;QAExE,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAyB,0BAA0B,KAAK,EAAE,CAAC,CAAA;IAClF,CAAC;CACD"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { isoly } from "isoly";
|
|
2
2
|
import { isly } from "isly";
|
|
3
3
|
import { Transaction } from ".";
|
|
4
|
-
export type Statistics = Record<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
intraRegion: {
|
|
10
|
-
count: number;
|
|
11
|
-
amount: number;
|
|
12
|
-
};
|
|
13
|
-
extraRegion: {
|
|
14
|
-
count: number;
|
|
15
|
-
amount: number;
|
|
16
|
-
};
|
|
17
|
-
}>;
|
|
4
|
+
export type Statistics = Record<Statistics.TransactionType, Record<Statistics.Region, {
|
|
5
|
+
count: number;
|
|
6
|
+
amount: number;
|
|
7
|
+
}>>;
|
|
18
8
|
export declare namespace Statistics {
|
|
9
|
+
type TransactionType = typeof TransactionType.values[number];
|
|
10
|
+
namespace TransactionType {
|
|
11
|
+
const values: readonly ["capture", "refund"];
|
|
12
|
+
}
|
|
13
|
+
type Region = typeof Region.values[number];
|
|
14
|
+
namespace Region {
|
|
15
|
+
const values: readonly ["domestic", "intraRegion", "extraRegion"];
|
|
16
|
+
}
|
|
19
17
|
const type: isly.Type<Transaction.Statistics>;
|
|
20
18
|
function append(statistics: Statistics, transaction: Transaction, domestic: isoly.CountryCode.Alpha2[], intraRegion: isoly.CountryCode.Alpha2[]): Statistics;
|
|
19
|
+
function combine(accumulation: Statistics, incoming: Statistics): Statistics;
|
|
21
20
|
}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { isly } from "isly";
|
|
2
2
|
export var Statistics;
|
|
3
3
|
(function (Statistics) {
|
|
4
|
-
|
|
4
|
+
let TransactionType;
|
|
5
|
+
(function (TransactionType) {
|
|
6
|
+
TransactionType.values = ["capture", "refund"];
|
|
7
|
+
})(TransactionType = Statistics.TransactionType || (Statistics.TransactionType = {}));
|
|
8
|
+
let Region;
|
|
9
|
+
(function (Region) {
|
|
10
|
+
Region.values = ["domestic", "intraRegion", "extraRegion"];
|
|
11
|
+
})(Region = Statistics.Region || (Statistics.Region = {}));
|
|
12
|
+
Statistics.type = isly.record(isly.string(TransactionType.values), isly.record(isly.string(Region.values), isly.object({
|
|
5
13
|
count: isly.number(),
|
|
6
14
|
amount: isly.number(),
|
|
7
15
|
})));
|
|
@@ -20,5 +28,13 @@ export var Statistics;
|
|
|
20
28
|
return statistics;
|
|
21
29
|
}
|
|
22
30
|
Statistics.append = append;
|
|
31
|
+
function combine(accumulation, incoming) {
|
|
32
|
+
Object.entries(incoming).forEach(([kind, statistic]) => Object.entries(statistic).forEach(([region, { count, amount }]) => {
|
|
33
|
+
accumulation[kind][region].count += count;
|
|
34
|
+
accumulation[kind][region].amount += amount;
|
|
35
|
+
}));
|
|
36
|
+
return accumulation;
|
|
37
|
+
}
|
|
38
|
+
Statistics.combine = combine;
|
|
23
39
|
})(Statistics || (Statistics = {}));
|
|
24
40
|
//# sourceMappingURL=Statistics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Statistics.js","sourceRoot":"../","sources":["Transaction/Statistics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Statistics.js","sourceRoot":"../","sources":["Transaction/Statistics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAc3B,MAAM,KAAW,UAAU,CAuD1B;AAvDD,WAAiB,UAAU;IAE1B,IAAiB,eAAe,CAE/B;IAFD,WAAiB,eAAe;QAClB,sBAAM,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAA;IACrD,CAAC,EAFgB,eAAe,GAAf,0BAAe,KAAf,0BAAe,QAE/B;IAED,IAAiB,MAAM,CAEtB;IAFD,WAAiB,MAAM;QACT,aAAM,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAU,CAAA;IAC1E,CAAC,EAFgB,MAAM,GAAN,iBAAM,KAAN,iBAAM,QAEtB;IACY,eAAI,GAAG,IAAI,CAAC,MAAM,CAC9B,IAAI,CAAC,MAAM,CAAkB,eAAe,CAAC,MAAM,CAAC,EACpD,IAAI,CAAC,MAAM,CACV,IAAI,CAAC,MAAM,CAAS,MAAM,CAAC,MAAM,CAAC,EAClC,IAAI,CAAC,MAAM,CAAC;QACX,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;QACpB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;KACrB,CAAC,CACF,CACD,CAAA;IACD,SAAgB,MAAM,CACrB,UAAsB,EACtB,WAAwB,EACxB,QAAoC,EACpC,WAAuC;QAEvC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAA;QAC/B,MAAM,aAAa,GAAG,KAAK,EAAE,aAAa,CAAA;QAC1C,IAAI,KAAK,IAAI,aAAa,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC3G,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACjF,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACtD,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,aAAa,CAAA;YAChB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;YAClD,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAA;QAC9E,CAAC;QACD,OAAO,UAAU,CAAA;IAClB,CAAC;IAlBe,iBAAM,SAkBrB,CAAA;IACD,SAAgB,OAAO,CAAC,YAAwB,EAAE,QAAoB;QACrE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAiD,EAAE,EAAE,CACtG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAChC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAM1B,EAAE,EAAE;YACJ,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,KAAK,CAAA;YACzC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,MAAM,CAAA;QAC5C,CAAC,CACD,CACD,CAAA;QACD,OAAO,YAAY,CAAA;IACpB,CAAC;IAhBe,kBAAO,UAgBtB,CAAA;AACF,CAAC,EAvDgB,UAAU,KAAV,UAAU,QAuD1B"}
|