@kajidog/connpass-api-client 0.3.0 → 0.4.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/README.md +24 -27
- package/dist/application/ConnpassClient.d.ts +4 -4
- package/dist/application/ConnpassClient.d.ts.map +1 -1
- package/dist/application/ConnpassClient.js +7 -7
- package/dist/application/ConnpassClient.js.map +1 -1
- package/dist/application/services/EventService.d.ts +3 -3
- package/dist/application/services/EventService.d.ts.map +1 -1
- package/dist/application/services/EventService.js +3 -2
- package/dist/application/services/EventService.js.map +1 -1
- package/dist/application/services/GroupService.d.ts +3 -3
- package/dist/application/services/GroupService.d.ts.map +1 -1
- package/dist/application/services/GroupService.js +2 -1
- package/dist/application/services/GroupService.js.map +1 -1
- package/dist/application/services/UserService.d.ts +3 -3
- package/dist/application/services/UserService.d.ts.map +1 -1
- package/dist/application/services/UserService.js +9 -5
- package/dist/application/services/UserService.js.map +1 -1
- package/dist/application/services/index.d.ts +3 -3
- package/dist/domain/entities/index.d.ts +4 -4
- package/dist/domain/errors/ConnpassError.d.ts +3 -3
- package/dist/domain/errors/ConnpassError.d.ts.map +1 -1
- package/dist/domain/errors/ConnpassError.js +7 -7
- package/dist/domain/errors/ConnpassError.js.map +1 -1
- package/dist/domain/errors/index.d.ts +1 -1
- package/dist/domain/repositories/IEventRepository.d.ts +1 -1
- package/dist/domain/repositories/IEventRepository.d.ts.map +1 -1
- package/dist/domain/repositories/IGroupRepository.d.ts +1 -1
- package/dist/domain/repositories/IUserRepository.d.ts +1 -1
- package/dist/domain/repositories/IUserRepository.d.ts.map +1 -1
- package/dist/domain/repositories/index.d.ts +3 -3
- package/dist/domain/utils/validators.d.ts +8 -8
- package/dist/domain/utils/validators.d.ts.map +1 -1
- package/dist/domain/utils/validators.js +39 -37
- package/dist/domain/utils/validators.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/cache/PresentationCache.d.ts +1 -1
- package/dist/infrastructure/cache/PresentationCache.d.ts.map +1 -1
- package/dist/infrastructure/cache/PresentationCache.js +6 -4
- package/dist/infrastructure/cache/PresentationCache.js.map +1 -1
- package/dist/infrastructure/http/HttpClient.d.ts +3 -2
- package/dist/infrastructure/http/HttpClient.d.ts.map +1 -1
- package/dist/infrastructure/http/HttpClient.js +16 -17
- package/dist/infrastructure/http/HttpClient.js.map +1 -1
- package/dist/infrastructure/repositories/EventRepository.d.ts +5 -4
- package/dist/infrastructure/repositories/EventRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/EventRepository.js +25 -36
- package/dist/infrastructure/repositories/EventRepository.js.map +1 -1
- package/dist/infrastructure/repositories/GroupRepository.d.ts +4 -3
- package/dist/infrastructure/repositories/GroupRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/GroupRepository.js +15 -3
- package/dist/infrastructure/repositories/GroupRepository.js.map +1 -1
- package/dist/infrastructure/repositories/UserRepository.d.ts +6 -3
- package/dist/infrastructure/repositories/UserRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/UserRepository.js +43 -9
- package/dist/infrastructure/repositories/UserRepository.js.map +1 -1
- package/dist/infrastructure/repositories/apiTypes.d.ts +140 -0
- package/dist/infrastructure/repositories/apiTypes.d.ts.map +1 -0
- package/dist/infrastructure/repositories/apiTypes.js +119 -0
- package/dist/infrastructure/repositories/apiTypes.js.map +1 -0
- package/dist/infrastructure/repositories/index.d.ts +3 -3
- package/dist/prefectures.d.ts +14 -0
- package/dist/prefectures.d.ts.map +1 -0
- package/dist/prefectures.js +102 -0
- package/dist/prefectures.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,75 +2,77 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Validators = void 0;
|
|
4
4
|
const errors_1 = require("../../domain/errors");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
if (params.count !== undefined &&
|
|
8
|
-
|
|
5
|
+
exports.Validators = {
|
|
6
|
+
validateEventSearchParams(params) {
|
|
7
|
+
if (params.count !== undefined &&
|
|
8
|
+
(params.count < 1 || params.count > 100)) {
|
|
9
|
+
throw new errors_1.ConnpassValidationError("Count must be between 1 and 100");
|
|
9
10
|
}
|
|
10
11
|
if (params.start !== undefined && params.start < 1) {
|
|
11
|
-
throw new errors_1.ConnpassValidationError(
|
|
12
|
+
throw new errors_1.ConnpassValidationError("Start must be greater than 0");
|
|
12
13
|
}
|
|
13
14
|
if (params.order !== undefined && ![1, 2, 3].includes(params.order)) {
|
|
14
|
-
throw new errors_1.ConnpassValidationError(
|
|
15
|
+
throw new errors_1.ConnpassValidationError("Order must be 1 (updated_at desc), 2 (started_at asc), or 3 (started_at desc)");
|
|
15
16
|
}
|
|
16
|
-
if (params.eventId
|
|
17
|
-
throw new errors_1.ConnpassValidationError(
|
|
17
|
+
if (params.eventId?.some((id) => id <= 0)) {
|
|
18
|
+
throw new errors_1.ConnpassValidationError("All event IDs must be positive numbers");
|
|
18
19
|
}
|
|
19
|
-
if (params.groupId
|
|
20
|
-
throw new errors_1.ConnpassValidationError(
|
|
20
|
+
if (params.groupId?.some((id) => id <= 0)) {
|
|
21
|
+
throw new errors_1.ConnpassValidationError("All group IDs must be positive numbers");
|
|
21
22
|
}
|
|
22
23
|
if (params.ymdFrom && !/^\d{4}-\d{2}-\d{2}$/.test(params.ymdFrom)) {
|
|
23
|
-
throw new errors_1.ConnpassValidationError(
|
|
24
|
+
throw new errors_1.ConnpassValidationError("ymdFrom must be in YYYY-MM-DD format");
|
|
24
25
|
}
|
|
25
26
|
if (params.ymdTo && !/^\d{4}-\d{2}-\d{2}$/.test(params.ymdTo)) {
|
|
26
|
-
throw new errors_1.ConnpassValidationError(
|
|
27
|
+
throw new errors_1.ConnpassValidationError("ymdTo must be in YYYY-MM-DD format");
|
|
27
28
|
}
|
|
28
29
|
if (params.ymd) {
|
|
29
30
|
for (const d of params.ymd) {
|
|
30
31
|
if (!/^\d{8}$/.test(d)) {
|
|
31
|
-
throw new errors_1.ConnpassValidationError(
|
|
32
|
+
throw new errors_1.ConnpassValidationError("ymd must be an array of dates in YYYYMMDD format");
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (params.count !== undefined &&
|
|
38
|
-
|
|
36
|
+
},
|
|
37
|
+
validateGroupSearchParams(params) {
|
|
38
|
+
if (params.count !== undefined &&
|
|
39
|
+
(params.count < 1 || params.count > 100)) {
|
|
40
|
+
throw new errors_1.ConnpassValidationError("Count must be between 1 and 100");
|
|
39
41
|
}
|
|
40
42
|
if (params.start !== undefined && params.start < 1) {
|
|
41
|
-
throw new errors_1.ConnpassValidationError(
|
|
43
|
+
throw new errors_1.ConnpassValidationError("Start must be greater than 0");
|
|
42
44
|
}
|
|
43
45
|
if (params.order !== undefined && ![1, 2, 3].includes(params.order)) {
|
|
44
|
-
throw new errors_1.ConnpassValidationError(
|
|
46
|
+
throw new errors_1.ConnpassValidationError("Order must be 1 (updated_at desc), 2 (started_at asc), or 3 (started_at desc)");
|
|
45
47
|
}
|
|
46
|
-
if (params.groupId
|
|
47
|
-
throw new errors_1.ConnpassValidationError(
|
|
48
|
+
if (params.groupId?.some((id) => id <= 0)) {
|
|
49
|
+
throw new errors_1.ConnpassValidationError("All group IDs must be positive numbers");
|
|
48
50
|
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (params.count !== undefined &&
|
|
52
|
-
|
|
51
|
+
},
|
|
52
|
+
validateUserSearchParams(params) {
|
|
53
|
+
if (params.count !== undefined &&
|
|
54
|
+
(params.count < 1 || params.count > 100)) {
|
|
55
|
+
throw new errors_1.ConnpassValidationError("Count must be between 1 and 100");
|
|
53
56
|
}
|
|
54
57
|
if (params.start !== undefined && params.start < 1) {
|
|
55
|
-
throw new errors_1.ConnpassValidationError(
|
|
58
|
+
throw new errors_1.ConnpassValidationError("Start must be greater than 0");
|
|
56
59
|
}
|
|
57
60
|
if (params.order !== undefined && ![1, 2, 3].includes(params.order)) {
|
|
58
|
-
throw new errors_1.ConnpassValidationError(
|
|
61
|
+
throw new errors_1.ConnpassValidationError("Order must be 1 (updated_at desc), 2 (started_at asc), or 3 (started_at desc)");
|
|
59
62
|
}
|
|
60
|
-
if (params.userId
|
|
61
|
-
throw new errors_1.ConnpassValidationError(
|
|
63
|
+
if (params.userId?.some((id) => id <= 0)) {
|
|
64
|
+
throw new errors_1.ConnpassValidationError("All user IDs must be positive numbers");
|
|
62
65
|
}
|
|
63
|
-
}
|
|
64
|
-
|
|
66
|
+
},
|
|
67
|
+
validatePositiveInteger(value, fieldName) {
|
|
65
68
|
if (!Number.isInteger(value) || value <= 0) {
|
|
66
69
|
throw new errors_1.ConnpassValidationError(`${fieldName} must be a positive integer`);
|
|
67
70
|
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (typeof value !==
|
|
71
|
+
},
|
|
72
|
+
validateNickname(value, fieldName = "nickname") {
|
|
73
|
+
if (typeof value !== "string" || value.trim().length === 0) {
|
|
71
74
|
throw new errors_1.ConnpassValidationError(`${fieldName} must be a non-empty string`);
|
|
72
75
|
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.Validators = Validators;
|
|
76
|
+
},
|
|
77
|
+
};
|
|
76
78
|
//# sourceMappingURL=validators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/domain/utils/validators.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/domain/utils/validators.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export { ConnpassClient, ConnpassClientConfig } from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
|
|
1
|
+
export { ConnpassClient, ConnpassClientConfig, } from "./application/ConnpassClient";
|
|
2
|
+
export * from "./domain/entities";
|
|
3
|
+
export * from "./domain/errors";
|
|
4
|
+
export * from "./prefectures";
|
|
5
|
+
import { ConnpassClient } from "./application/ConnpassClient";
|
|
5
6
|
export default ConnpassClient;
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,eAAe,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -19,6 +19,7 @@ var ConnpassClient_1 = require("./application/ConnpassClient");
|
|
|
19
19
|
Object.defineProperty(exports, "ConnpassClient", { enumerable: true, get: function () { return ConnpassClient_1.ConnpassClient; } });
|
|
20
20
|
__exportStar(require("./domain/entities"), exports);
|
|
21
21
|
__exportStar(require("./domain/errors"), exports);
|
|
22
|
+
__exportStar(require("./prefectures"), exports);
|
|
22
23
|
const ConnpassClient_2 = require("./application/ConnpassClient");
|
|
23
24
|
exports.default = ConnpassClient_2.ConnpassClient;
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+DAGsC;AAFpC,gHAAA,cAAc,OAAA;AAGhB,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAE9B,iEAA8D;AAC9D,kBAAe,+BAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationCache.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cache/PresentationCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAO9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,OAAO,EAAE,wBAAwB;IAMvC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAoBhE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"PresentationCache.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cache/PresentationCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAO9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,OAAO,EAAE,wBAAwB;IAMvC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAoBhE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YASd,YAAY;YAkCZ,OAAO;CAmBtB"}
|
|
@@ -51,7 +51,7 @@ class PresentationCache {
|
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
try {
|
|
54
|
-
const raw = await fs_1.promises.readFile(this.filePath,
|
|
54
|
+
const raw = await fs_1.promises.readFile(this.filePath, "utf-8");
|
|
55
55
|
const parsed = JSON.parse(raw);
|
|
56
56
|
const now = Date.now();
|
|
57
57
|
for (const [key, entry] of Object.entries(parsed)) {
|
|
@@ -65,8 +65,10 @@ class PresentationCache {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
catch (error) {
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
const code = error instanceof Error && "code" in error ? error.code : undefined;
|
|
69
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
70
|
+
if (code !== "ENOENT") {
|
|
71
|
+
console.warn("[api-client] Failed to load presentation cache:", message);
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
finally {
|
|
@@ -84,7 +86,7 @@ class PresentationCache {
|
|
|
84
86
|
for (const [eventId, entry] of this.cache.entries()) {
|
|
85
87
|
serializable[String(eventId)] = entry;
|
|
86
88
|
}
|
|
87
|
-
await fs_1.promises.writeFile(this.filePath, JSON.stringify(serializable, null, 2),
|
|
89
|
+
await fs_1.promises.writeFile(this.filePath, JSON.stringify(serializable, null, 2), "utf-8");
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
92
|
exports.PresentationCache = PresentationCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationCache.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/PresentationCache.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAoC;AACpC,gDAAwB;AAcxB,MAAa,iBAAiB;IAO5B,YAAY,OAAiC;QANrC,UAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;QACtC,aAAQ,GAAG,KAAK,CAAC;QAMvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACtD,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,IAA2B;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"PresentationCache.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/PresentationCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { AxiosResponse } from
|
|
1
|
+
import { AxiosResponse } from "axios";
|
|
2
|
+
import type { QueryParams } from "../repositories/apiTypes";
|
|
2
3
|
export interface HttpClientConfig {
|
|
3
4
|
baseURL: string;
|
|
4
5
|
apiKey: string;
|
|
@@ -18,6 +19,6 @@ export declare class HttpClient {
|
|
|
18
19
|
private setupInterceptors;
|
|
19
20
|
private applyRateLimit;
|
|
20
21
|
private scheduleRequest;
|
|
21
|
-
get<T>(url: string, params?:
|
|
22
|
+
get<T>(url: string, params?: QueryParams): Promise<AxiosResponse<T>>;
|
|
22
23
|
}
|
|
23
24
|
//# sourceMappingURL=HttpClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/http/HttpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,aAAa,EAAc,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/http/HttpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,aAAa,EAAc,MAAM,OAAO,CAAC;AAQxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,iBAAiB,CAAa;gBAE1B,MAAM,EAAE,gBAAgB;IAoBpC,OAAO,CAAC,iBAAiB;YAuCX,cAAc;IAY5B,OAAO,CAAC,eAAe;IA+BjB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAG3E"}
|
|
@@ -18,37 +18,37 @@ class HttpClient {
|
|
|
18
18
|
baseURL: config.baseURL,
|
|
19
19
|
timeout: config.timeout ?? 30000,
|
|
20
20
|
headers: {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
"X-API-Key": config.apiKey,
|
|
22
|
+
"Content-Type": "application/json",
|
|
23
|
+
"User-Agent": config.userAgent,
|
|
24
|
+
},
|
|
25
|
+
paramsSerializer: (params) => {
|
|
26
|
+
return (0, qs_1.stringify)(params, { arrayFormat: "repeat" });
|
|
24
27
|
},
|
|
25
|
-
paramsSerializer: params => {
|
|
26
|
-
return (0, qs_1.stringify)(params, { arrayFormat: 'repeat' });
|
|
27
|
-
}
|
|
28
28
|
});
|
|
29
29
|
this.setupInterceptors();
|
|
30
30
|
}
|
|
31
31
|
setupInterceptors() {
|
|
32
32
|
this.client.interceptors.response.use((response) => response, (error) => {
|
|
33
|
-
if (error.code ===
|
|
34
|
-
throw new errors_1.ConnpassTimeoutError(
|
|
33
|
+
if (error.code === "ECONNABORTED" || error.code === "ETIMEDOUT") {
|
|
34
|
+
throw new errors_1.ConnpassTimeoutError("Request timeout");
|
|
35
35
|
}
|
|
36
36
|
if (error.response) {
|
|
37
37
|
const status = error.response.status;
|
|
38
38
|
const data = error.response.data;
|
|
39
39
|
switch (status) {
|
|
40
40
|
case 429:
|
|
41
|
-
throw new errors_1.ConnpassRateLimitError(
|
|
41
|
+
throw new errors_1.ConnpassRateLimitError("Rate limit exceeded");
|
|
42
42
|
case 400:
|
|
43
|
-
throw new errors_1.ConnpassApiError(
|
|
43
|
+
throw new errors_1.ConnpassApiError("Bad Request", status, data);
|
|
44
44
|
case 401:
|
|
45
|
-
throw new errors_1.ConnpassApiError(
|
|
45
|
+
throw new errors_1.ConnpassApiError("Unauthorized - Invalid API key", status, data);
|
|
46
46
|
case 403:
|
|
47
|
-
throw new errors_1.ConnpassApiError(
|
|
47
|
+
throw new errors_1.ConnpassApiError("Forbidden", status, data);
|
|
48
48
|
case 404:
|
|
49
|
-
throw new errors_1.ConnpassApiError(
|
|
49
|
+
throw new errors_1.ConnpassApiError("Not Found", status, data);
|
|
50
50
|
case 500:
|
|
51
|
-
throw new errors_1.ConnpassApiError(
|
|
51
|
+
throw new errors_1.ConnpassApiError("Internal Server Error", status, data);
|
|
52
52
|
default:
|
|
53
53
|
throw new errors_1.ConnpassApiError(`HTTP ${status}`, status, data);
|
|
54
54
|
}
|
|
@@ -61,7 +61,7 @@ class HttpClient {
|
|
|
61
61
|
const scheduledStart = Math.max(now, this.nextAvailableTime);
|
|
62
62
|
const waitTime = scheduledStart - now;
|
|
63
63
|
if (waitTime > 0) {
|
|
64
|
-
await new Promise(resolve => setTimeout(resolve, waitTime));
|
|
64
|
+
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
|
65
65
|
}
|
|
66
66
|
this.lastRequestTime = Date.now();
|
|
67
67
|
}
|
|
@@ -70,8 +70,7 @@ class HttpClient {
|
|
|
70
70
|
return fn();
|
|
71
71
|
}
|
|
72
72
|
// Chain: wait for previous request -> apply rate limit -> execute request
|
|
73
|
-
const requestPromise = this.rateLimiterTail
|
|
74
|
-
.then(async () => {
|
|
73
|
+
const requestPromise = this.rateLimiterTail.then(async () => {
|
|
75
74
|
// Wait until we can start the next request
|
|
76
75
|
await this.applyRateLimit();
|
|
77
76
|
// Execute the request
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../../src/infrastructure/http/HttpClient.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAwE;AACxE,2BAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../../src/infrastructure/http/HttpClient.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAwE;AACxE,2BAA+B;AAC/B,gDAK6B;AAY7B,MAAa,UAAU;IAQrB,YAAY,MAAwB;QAN5B,oBAAe,GAAW,CAAC,CAAC;QAG5B,oBAAe,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;QACnD,sBAAiB,GAAW,CAAC,CAAC;QAGpC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC;QAExD,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,MAAM,CAAC,SAAS;aAC/B;YACD,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC3B,OAAO,IAAA,cAAS,EAAC,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;YACtD,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACnC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAAiB,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChE,MAAM,IAAI,6BAAoB,CAAC,iBAAiB,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAEjC,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,GAAG;wBACN,MAAM,IAAI,+BAAsB,CAAC,qBAAqB,CAAC,CAAC;oBAC1D,KAAK,GAAG;wBACN,MAAM,IAAI,yBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC1D,KAAK,GAAG;wBACN,MAAM,IAAI,yBAAgB,CACxB,gCAAgC,EAChC,MAAM,EACN,IAAI,CACL,CAAC;oBACJ,KAAK,GAAG;wBACN,MAAM,IAAI,yBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACxD,KAAK,GAAG;wBACN,MAAM,IAAI,yBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACxD,KAAK,GAAG;wBACN,MAAM,IAAI,yBAAgB,CAAC,uBAAuB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACpE;wBACE,MAAM,IAAI,yBAAgB,CAAC,QAAQ,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,MAAM,IAAI,sBAAa,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,cAAc,GAAG,GAAG,CAAC;QAEtC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;IAEO,eAAe,CAAI,EAAoB;QAC7C,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QAED,0EAA0E;QAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAC1D,2CAA2C;YAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,sBAAsB;YACtB,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAE1B,qDAAqD;YACrD,gDAAgD;YAChD,sCAAsC;YACtC,4DAA4D;YAC5D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;YAE1D,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,IAAI,CACxC,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,MAAoB;QAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;CACF;AAjHD,gCAiHC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { EventSearchParams, EventsResponse, PresentationsResponse } from "../../domain/entities";
|
|
2
|
+
import { IEventRepository } from "../../domain/repositories";
|
|
3
|
+
import { PresentationCache } from "../cache/PresentationCache";
|
|
4
|
+
import { HttpClient } from "../http/HttpClient";
|
|
5
5
|
export declare class EventRepository implements IEventRepository {
|
|
6
6
|
private httpClient;
|
|
7
7
|
private presentationCache?;
|
|
@@ -10,5 +10,6 @@ export declare class EventRepository implements IEventRepository {
|
|
|
10
10
|
getEventPresentations(eventId: number): Promise<PresentationsResponse>;
|
|
11
11
|
private buildEventQueryParams;
|
|
12
12
|
private mapEventsResponse;
|
|
13
|
+
private mapPresentationsResponse;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=EventRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/EventRepository.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"EventRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/EventRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAUhD,qBAAa,eAAgB,YAAW,gBAAgB;IAEpD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,iBAAiB,CAAC;gBADlB,UAAU,EAAE,UAAU,EACtB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA;IAGzC,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAUhE,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAe5E,OAAO,CAAC,qBAAqB;IA4C7B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,wBAAwB;CAiBjC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EventRepository = void 0;
|
|
4
4
|
const validators_1 = require("../../domain/utils/validators");
|
|
5
|
+
const apiTypes_1 = require("./apiTypes");
|
|
5
6
|
class EventRepository {
|
|
6
7
|
constructor(httpClient, presentationCache) {
|
|
7
8
|
this.httpClient = httpClient;
|
|
@@ -10,17 +11,17 @@ class EventRepository {
|
|
|
10
11
|
async searchEvents(params) {
|
|
11
12
|
validators_1.Validators.validateEventSearchParams(params);
|
|
12
13
|
const queryParams = this.buildEventQueryParams(params);
|
|
13
|
-
const response = await this.httpClient.get(
|
|
14
|
+
const response = await this.httpClient.get("/events/", queryParams);
|
|
14
15
|
return this.mapEventsResponse(response.data);
|
|
15
16
|
}
|
|
16
17
|
async getEventPresentations(eventId) {
|
|
17
|
-
validators_1.Validators.validatePositiveInteger(eventId,
|
|
18
|
+
validators_1.Validators.validatePositiveInteger(eventId, "eventId");
|
|
18
19
|
const cached = await this.presentationCache?.get(eventId);
|
|
19
20
|
if (cached) {
|
|
20
21
|
return cached;
|
|
21
22
|
}
|
|
22
23
|
const response = await this.httpClient.get(`/events/${eventId}/presentations/`);
|
|
23
|
-
const data = response.data;
|
|
24
|
+
const data = this.mapPresentationsResponse(response.data);
|
|
24
25
|
await this.presentationCache?.set(eventId, data);
|
|
25
26
|
return data;
|
|
26
27
|
}
|
|
@@ -33,7 +34,7 @@ class EventRepository {
|
|
|
33
34
|
if (params.keywordOr)
|
|
34
35
|
queryParams.keyword_or = params.keywordOr;
|
|
35
36
|
if (params.ymd)
|
|
36
|
-
queryParams.ymd = params.ymd.join(
|
|
37
|
+
queryParams.ymd = params.ymd.join(",");
|
|
37
38
|
// For v2 compatibility: expand ymdFrom..ymdTo into comma-separated ymd list, while still passing v1 params
|
|
38
39
|
if (params.ymdFrom)
|
|
39
40
|
queryParams.ymd_from = params.ymdFrom;
|
|
@@ -51,14 +52,14 @@ class EventRepository {
|
|
|
51
52
|
let guard = 0;
|
|
52
53
|
while (cur <= end && guard < 366) {
|
|
53
54
|
const y = cur.getFullYear();
|
|
54
|
-
const m = String(cur.getMonth() + 1).padStart(2,
|
|
55
|
-
const d = String(cur.getDate()).padStart(2,
|
|
55
|
+
const m = String(cur.getMonth() + 1).padStart(2, "0");
|
|
56
|
+
const d = String(cur.getDate()).padStart(2, "0");
|
|
56
57
|
list.push(`${y}${m}${d}`);
|
|
57
58
|
cur.setDate(cur.getDate() + 1);
|
|
58
59
|
guard += 1;
|
|
59
60
|
}
|
|
60
61
|
if (list.length) {
|
|
61
|
-
queryParams.ymd = list.join(
|
|
62
|
+
queryParams.ymd = list.join(",");
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
}
|
|
@@ -69,7 +70,7 @@ class EventRepository {
|
|
|
69
70
|
if (params.groupId)
|
|
70
71
|
queryParams.group_id = params.groupId;
|
|
71
72
|
if (params.prefecture)
|
|
72
|
-
queryParams.prefecture = params.prefecture;
|
|
73
|
+
queryParams.prefecture = params.prefecture.join(",");
|
|
73
74
|
if (params.count)
|
|
74
75
|
queryParams.count = params.count;
|
|
75
76
|
if (params.order)
|
|
@@ -79,39 +80,27 @@ class EventRepository {
|
|
|
79
80
|
return queryParams;
|
|
80
81
|
}
|
|
81
82
|
mapEventsResponse(data) {
|
|
82
|
-
// Accept both v1-like snake_case and v2-like camelCase
|
|
83
83
|
const eventsArray = data.events ?? data.event ?? [];
|
|
84
|
-
const events = eventsArray.map(
|
|
85
|
-
|
|
86
|
-
title: e.title,
|
|
87
|
-
catchPhrase: e.catch ?? e.catchPhrase ?? '',
|
|
88
|
-
description: e.description ?? '',
|
|
89
|
-
url: e.url ?? e.event_url,
|
|
90
|
-
imageUrl: e.image_url ?? e.imageUrl ?? undefined,
|
|
91
|
-
hashTag: e.hash_tag ?? e.hashTag ?? '',
|
|
92
|
-
startedAt: e.started_at ?? e.startedAt ?? '',
|
|
93
|
-
endedAt: e.ended_at ?? e.endedAt ?? '',
|
|
94
|
-
limit: e.limit ?? undefined,
|
|
95
|
-
participantCount: e.accepted ?? e.participantCount ?? 0,
|
|
96
|
-
waitingCount: e.waiting ?? e.waitingCount ?? 0,
|
|
97
|
-
ownerNickname: e.owner_nickname ?? e.ownerNickname ?? '',
|
|
98
|
-
ownerDisplayName: e.owner_display_name ?? e.ownerDisplayName ?? '',
|
|
99
|
-
place: e.place ?? undefined,
|
|
100
|
-
address: e.address ?? undefined,
|
|
101
|
-
lat: e.lat ?? undefined,
|
|
102
|
-
lon: e.lon ?? undefined,
|
|
103
|
-
groupId: (e.group?.id ?? e.series?.id) ?? undefined,
|
|
104
|
-
groupTitle: (e.group?.title ?? e.series?.title) ?? undefined,
|
|
105
|
-
groupUrl: (e.group?.url ?? e.series?.url) ?? undefined,
|
|
106
|
-
updatedAt: e.updated_at ?? e.updatedAt ?? '',
|
|
107
|
-
}));
|
|
84
|
+
const events = eventsArray.map(apiTypes_1.mapApiEvent);
|
|
85
|
+
const meta = (0, apiTypes_1.getResponseMeta)(data, events.length, "events");
|
|
108
86
|
return {
|
|
109
|
-
eventsReturned:
|
|
110
|
-
eventsAvailable:
|
|
111
|
-
eventsStart:
|
|
87
|
+
eventsReturned: meta.eventsReturned,
|
|
88
|
+
eventsAvailable: meta.eventsAvailable,
|
|
89
|
+
eventsStart: meta.eventsStart,
|
|
112
90
|
events,
|
|
113
91
|
};
|
|
114
92
|
}
|
|
93
|
+
mapPresentationsResponse(data) {
|
|
94
|
+
const presentationsArray = data.presentations ?? [];
|
|
95
|
+
return {
|
|
96
|
+
presentationsReturned: data.results?.returned ??
|
|
97
|
+
data.results_returned ??
|
|
98
|
+
data.resultsReturned ??
|
|
99
|
+
data.returned ??
|
|
100
|
+
presentationsArray.length,
|
|
101
|
+
presentations: presentationsArray.map((presentation, index) => (0, apiTypes_1.mapApiPresentation)(presentation, index)),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
115
104
|
}
|
|
116
105
|
exports.EventRepository = EventRepository;
|
|
117
106
|
//# sourceMappingURL=EventRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/EventRepository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"EventRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/EventRepository.ts"],"names":[],"mappings":";;;AAOA,8DAA2D;AAG3D,yCAOoB;AAEpB,MAAa,eAAe;IAC1B,YACU,UAAsB,EACtB,iBAAqC;QADrC,eAAU,GAAV,UAAU,CAAY;QACtB,sBAAiB,GAAjB,iBAAiB,CAAoB;IAC5C,CAAC;IAEJ,KAAK,CAAC,YAAY,CAAC,MAAyB;QAC1C,uBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACxC,UAAU,EACV,WAAW,CACZ,CAAC;QACF,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAAe;QACzC,uBAAU,CAAC,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACxC,WAAW,OAAO,iBAAiB,CACpC,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,qBAAqB,CAAC,MAAyB;QACrD,MAAM,WAAW,GAAgB,EAAE,CAAC;QAEpC,IAAI,MAAM,CAAC,OAAO;YAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACzD,IAAI,MAAM,CAAC,SAAS;YAAE,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;QAChE,IAAI,MAAM,CAAC,GAAG;YAAE,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,2GAA2G;QAC3G,IAAI,MAAM,CAAC,OAAO;YAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC1D,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QACpD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1D,MAAM,IAAI,GAAa,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,8CAA8C;gBAC9C,yCAAyC;gBACzC,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,OAAO,GAAG,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;oBACjC,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;oBAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACtD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC1B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC/B,KAAK,IAAI,CAAC,CAAC;gBACb,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ;YAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5D,IAAI,MAAM,CAAC,aAAa;YAAE,WAAW,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;QAC5E,IAAI,MAAM,CAAC,OAAO;YAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC1D,IAAI,MAAM,CAAC,UAAU;YAAE,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAEnD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,iBAAiB,CAAC,IAAuB;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,MAAM,GAAY,WAAW,CAAC,GAAG,CAAC,sBAAW,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAA,0BAAe,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE5D,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM;SACP,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAC9B,IAA8B;QAE9B,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QAEpD,OAAO;YACL,qBAAqB,EACnB,IAAI,CAAC,OAAO,EAAE,QAAQ;gBACtB,IAAI,CAAC,gBAAgB;gBACrB,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,QAAQ;gBACb,kBAAkB,CAAC,MAAM;YAC3B,aAAa,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAC5D,IAAA,6BAAkB,EAAC,YAAY,EAAE,KAAK,CAAC,CACxC;SACF,CAAC;IACJ,CAAC;CACF;AAzGD,0CAyGC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { HttpClient } from
|
|
1
|
+
import { GroupSearchParams, GroupsResponse } from "../../domain/entities";
|
|
2
|
+
import { IGroupRepository } from "../../domain/repositories";
|
|
3
|
+
import { HttpClient } from "../http/HttpClient";
|
|
4
4
|
export declare class GroupRepository implements IGroupRepository {
|
|
5
5
|
private httpClient;
|
|
6
6
|
constructor(httpClient: HttpClient);
|
|
7
7
|
searchGroups(params: GroupSearchParams): Promise<GroupsResponse>;
|
|
8
8
|
private buildGroupQueryParams;
|
|
9
|
+
private mapGroupsResponse;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=GroupRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/GroupRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"GroupRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/GroupRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQhD,qBAAa,eAAgB,YAAW,gBAAgB;IAC1C,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEpC,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAUtE,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,iBAAiB;CAY1B"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GroupRepository = void 0;
|
|
4
4
|
const validators_1 = require("../../domain/utils/validators");
|
|
5
|
+
const apiTypes_1 = require("./apiTypes");
|
|
5
6
|
class GroupRepository {
|
|
6
7
|
constructor(httpClient) {
|
|
7
8
|
this.httpClient = httpClient;
|
|
@@ -9,13 +10,13 @@ class GroupRepository {
|
|
|
9
10
|
async searchGroups(params) {
|
|
10
11
|
validators_1.Validators.validateGroupSearchParams(params);
|
|
11
12
|
const queryParams = this.buildGroupQueryParams(params);
|
|
12
|
-
const response = await this.httpClient.get(
|
|
13
|
-
return response.data;
|
|
13
|
+
const response = await this.httpClient.get("/groups/", queryParams);
|
|
14
|
+
return this.mapGroupsResponse(response.data);
|
|
14
15
|
}
|
|
15
16
|
buildGroupQueryParams(params) {
|
|
16
17
|
const queryParams = {};
|
|
17
18
|
if (params.groupId)
|
|
18
|
-
queryParams.group_id = params.groupId.join(
|
|
19
|
+
queryParams.group_id = params.groupId.join(",");
|
|
19
20
|
if (params.keyword)
|
|
20
21
|
queryParams.keyword = params.keyword;
|
|
21
22
|
if (params.countryCode)
|
|
@@ -30,6 +31,17 @@ class GroupRepository {
|
|
|
30
31
|
queryParams.start = params.start;
|
|
31
32
|
return queryParams;
|
|
32
33
|
}
|
|
34
|
+
mapGroupsResponse(data) {
|
|
35
|
+
const groupsArray = data.groups ?? data.group ?? [];
|
|
36
|
+
const groups = groupsArray.map(apiTypes_1.mapApiGroup);
|
|
37
|
+
const meta = (0, apiTypes_1.getResponseMeta)(data, groups.length, "groups");
|
|
38
|
+
return {
|
|
39
|
+
groupsReturned: meta.groupsReturned,
|
|
40
|
+
groupsAvailable: meta.groupsAvailable,
|
|
41
|
+
groupsStart: meta.groupsStart,
|
|
42
|
+
groups,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
33
45
|
}
|
|
34
46
|
exports.GroupRepository = GroupRepository;
|
|
35
47
|
//# sourceMappingURL=GroupRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/GroupRepository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"GroupRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/GroupRepository.ts"],"names":[],"mappings":";;;AAEA,8DAA2D;AAE3D,yCAKoB;AAEpB,MAAa,eAAe;IAC1B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C,KAAK,CAAC,YAAY,CAAC,MAAyB;QAC1C,uBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACxC,UAAU,EACV,WAAW,CACZ,CAAC;QACF,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEO,qBAAqB,CAAC,MAAyB;QACrD,MAAM,WAAW,GAAgB,EAAE,CAAC;QAEpC,IAAI,MAAM,CAAC,OAAO;YAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACzD,IAAI,MAAM,CAAC,WAAW;YAAE,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QACtE,IAAI,MAAM,CAAC,UAAU;YAAE,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAClE,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAEnD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,iBAAiB,CAAC,IAAuB;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,sBAAW,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAA,0BAAe,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE5D,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM;SACP,CAAC;IACJ,CAAC;CACF;AAvCD,0CAuCC"}
|