@clinchdate/api-client 1.0.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 +711 -0
- package/dist/client.d.ts +30 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +196 -0
- package/dist/client.js.map +1 -0
- package/dist/config/environments.d.ts +24 -0
- package/dist/config/environments.d.ts.map +1 -0
- package/dist/config/environments.js +24 -0
- package/dist/config/environments.js.map +1 -0
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +44 -0
- package/dist/config.js.map +1 -0
- package/dist/hooks/useAuth.d.ts +13 -0
- package/dist/hooks/useAuth.d.ts.map +1 -0
- package/dist/hooks/useAuth.js +66 -0
- package/dist/hooks/useAuth.js.map +1 -0
- package/dist/hooks/useCall.d.ts +55 -0
- package/dist/hooks/useCall.d.ts.map +1 -0
- package/dist/hooks/useCall.js +148 -0
- package/dist/hooks/useCall.js.map +1 -0
- package/dist/hooks/useChat.d.ts +13 -0
- package/dist/hooks/useChat.d.ts.map +1 -0
- package/dist/hooks/useChat.js +76 -0
- package/dist/hooks/useChat.js.map +1 -0
- package/dist/hooks/useMatch.d.ts +15 -0
- package/dist/hooks/useMatch.d.ts.map +1 -0
- package/dist/hooks/useMatch.js +72 -0
- package/dist/hooks/useMatch.js.map +1 -0
- package/dist/hooks/useUser.d.ts +22 -0
- package/dist/hooks/useUser.d.ts.map +1 -0
- package/dist/hooks/useUser.js +170 -0
- package/dist/hooks/useUser.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors/auth.interceptor.d.ts +14 -0
- package/dist/interceptors/auth.interceptor.d.ts.map +1 -0
- package/dist/interceptors/auth.interceptor.js +61 -0
- package/dist/interceptors/auth.interceptor.js.map +1 -0
- package/dist/interceptors/error.interceptor.d.ts +12 -0
- package/dist/interceptors/error.interceptor.d.ts.map +1 -0
- package/dist/interceptors/error.interceptor.js +50 -0
- package/dist/interceptors/error.interceptor.js.map +1 -0
- package/dist/interceptors/response.interceptor.d.ts +2 -0
- package/dist/interceptors/response.interceptor.d.ts.map +1 -0
- package/dist/interceptors/response.interceptor.js +2 -0
- package/dist/interceptors/response.interceptor.js.map +1 -0
- package/dist/services/auth.service.d.ts +12 -0
- package/dist/services/auth.service.d.ts.map +1 -0
- package/dist/services/auth.service.js +37 -0
- package/dist/services/auth.service.js.map +1 -0
- package/dist/services/base.service.d.ts +10 -0
- package/dist/services/base.service.d.ts.map +1 -0
- package/dist/services/base.service.js +22 -0
- package/dist/services/base.service.js.map +1 -0
- package/dist/services/call.service.d.ts +80 -0
- package/dist/services/call.service.d.ts.map +1 -0
- package/dist/services/call.service.js +57 -0
- package/dist/services/call.service.js.map +1 -0
- package/dist/services/chat.service.d.ts +16 -0
- package/dist/services/chat.service.d.ts.map +1 -0
- package/dist/services/chat.service.js +33 -0
- package/dist/services/chat.service.js.map +1 -0
- package/dist/services/index.d.ts +23 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +23 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/match.service.d.ts +14 -0
- package/dist/services/match.service.d.ts.map +1 -0
- package/dist/services/match.service.js +23 -0
- package/dist/services/match.service.js.map +1 -0
- package/dist/services/notification.service.d.ts +16 -0
- package/dist/services/notification.service.d.ts.map +1 -0
- package/dist/services/notification.service.js +31 -0
- package/dist/services/notification.service.js.map +1 -0
- package/dist/services/payment.service.d.ts +15 -0
- package/dist/services/payment.service.d.ts.map +1 -0
- package/dist/services/payment.service.js +32 -0
- package/dist/services/payment.service.js.map +1 -0
- package/dist/services/user.service.d.ts +16 -0
- package/dist/services/user.service.d.ts.map +1 -0
- package/dist/services/user.service.js +34 -0
- package/dist/services/user.service.js.map +1 -0
- package/dist/types/auth.types.d.ts +49 -0
- package/dist/types/auth.types.d.ts.map +1 -0
- package/dist/types/auth.types.js +2 -0
- package/dist/types/auth.types.js.map +1 -0
- package/dist/types/chat.types.d.ts +35 -0
- package/dist/types/chat.types.d.ts.map +1 -0
- package/dist/types/chat.types.js +2 -0
- package/dist/types/chat.types.js.map +1 -0
- package/dist/types/common.types.d.ts +39 -0
- package/dist/types/common.types.d.ts.map +1 -0
- package/dist/types/common.types.js +25 -0
- package/dist/types/common.types.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/match.types.d.ts +40 -0
- package/dist/types/match.types.d.ts.map +1 -0
- package/dist/types/match.types.js +2 -0
- package/dist/types/match.types.js.map +1 -0
- package/dist/types/notification.types.d.ts +26 -0
- package/dist/types/notification.types.d.ts.map +1 -0
- package/dist/types/notification.types.js +2 -0
- package/dist/types/notification.types.js.map +1 -0
- package/dist/types/payment.types.d.ts +47 -0
- package/dist/types/payment.types.d.ts.map +1 -0
- package/dist/types/payment.types.js +2 -0
- package/dist/types/payment.types.js.map +1 -0
- package/dist/types/user.types.d.ts +50 -0
- package/dist/types/user.types.d.ts.map +1 -0
- package/dist/types/user.types.js +2 -0
- package/dist/types/user.types.js.map +1 -0
- package/package.json +120 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export class AuthInterceptor {
|
|
2
|
+
static accessToken = null;
|
|
3
|
+
static isRefreshing = false;
|
|
4
|
+
static refreshSubscribers = [];
|
|
5
|
+
static install(axiosInstance) {
|
|
6
|
+
axiosInstance.interceptors.request.use((config) => {
|
|
7
|
+
if (AuthInterceptor.accessToken) {
|
|
8
|
+
config.headers.Authorization = `Bearer ${AuthInterceptor.accessToken}`;
|
|
9
|
+
}
|
|
10
|
+
return config;
|
|
11
|
+
}, (error) => Promise.reject(error));
|
|
12
|
+
axiosInstance.interceptors.response.use((response) => response, async (error) => {
|
|
13
|
+
const originalRequest = error.config;
|
|
14
|
+
if (error.response?.status === 401 && !originalRequest._retry) {
|
|
15
|
+
originalRequest._retry = true;
|
|
16
|
+
if (!AuthInterceptor.isRefreshing) {
|
|
17
|
+
AuthInterceptor.isRefreshing = true;
|
|
18
|
+
try {
|
|
19
|
+
const newToken = await AuthInterceptor.refreshAccessToken();
|
|
20
|
+
AuthInterceptor.accessToken = newToken;
|
|
21
|
+
AuthInterceptor.isRefreshing = false;
|
|
22
|
+
AuthInterceptor.onRefreshed(newToken);
|
|
23
|
+
}
|
|
24
|
+
catch (refreshError) {
|
|
25
|
+
AuthInterceptor.isRefreshing = false;
|
|
26
|
+
AuthInterceptor.accessToken = null;
|
|
27
|
+
return Promise.reject(refreshError);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return new Promise((resolve) => {
|
|
31
|
+
AuthInterceptor.addRefreshSubscriber((token) => {
|
|
32
|
+
originalRequest.headers.Authorization = `Bearer ${token}`;
|
|
33
|
+
resolve(axiosInstance(originalRequest));
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return Promise.reject(error);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
static setTokens(accessToken, refreshToken) {
|
|
41
|
+
AuthInterceptor.accessToken = accessToken;
|
|
42
|
+
void refreshToken;
|
|
43
|
+
}
|
|
44
|
+
static clearTokens() {
|
|
45
|
+
AuthInterceptor.accessToken = null;
|
|
46
|
+
}
|
|
47
|
+
static getAccessToken() {
|
|
48
|
+
return AuthInterceptor.accessToken;
|
|
49
|
+
}
|
|
50
|
+
static addRefreshSubscriber(callback) {
|
|
51
|
+
AuthInterceptor.refreshSubscribers.push(callback);
|
|
52
|
+
}
|
|
53
|
+
static onRefreshed(token) {
|
|
54
|
+
AuthInterceptor.refreshSubscribers.forEach((callback) => callback(token));
|
|
55
|
+
AuthInterceptor.refreshSubscribers = [];
|
|
56
|
+
}
|
|
57
|
+
static async refreshAccessToken() {
|
|
58
|
+
throw new Error('Token refresh not implemented — override refreshAccessToken()');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=auth.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/auth.interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ApiError {
|
|
2
|
+
statusCode: number;
|
|
3
|
+
code: string;
|
|
4
|
+
message: string;
|
|
5
|
+
originalError?: unknown;
|
|
6
|
+
}
|
|
7
|
+
export declare class ErrorHandler {
|
|
8
|
+
static handle(error: unknown): ApiError;
|
|
9
|
+
private static isAxiosError;
|
|
10
|
+
private static defaultCodeForStatus;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=error.interceptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptors/error.interceptor.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IAEvB,UAAU,EAAE,MAAM,CAAC;IAEnB,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,CAAC;IAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAeD,qBAAa,YAAY;IAKvB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;IAwCvC,OAAO,CAAC,MAAM,CAAC,YAAY;IAQ3B,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAepC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export class ErrorHandler {
|
|
2
|
+
static handle(error) {
|
|
3
|
+
if (ErrorHandler.isAxiosError(error)) {
|
|
4
|
+
const status = error.response?.status ?? 0;
|
|
5
|
+
const body = error.response?.data;
|
|
6
|
+
const code = body?.error?.code ??
|
|
7
|
+
ErrorHandler.defaultCodeForStatus(status);
|
|
8
|
+
const message = body?.error?.message ??
|
|
9
|
+
body?.message ??
|
|
10
|
+
error.message ??
|
|
11
|
+
'An unexpected error occurred';
|
|
12
|
+
return { statusCode: status, code, message, originalError: error };
|
|
13
|
+
}
|
|
14
|
+
if (error instanceof Error) {
|
|
15
|
+
return {
|
|
16
|
+
statusCode: 0,
|
|
17
|
+
code: 'NETWORK_ERROR',
|
|
18
|
+
message: error.message || 'Network error — please check your connection',
|
|
19
|
+
originalError: error,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
statusCode: 0,
|
|
24
|
+
code: 'UNKNOWN_ERROR',
|
|
25
|
+
message: 'An unknown error occurred',
|
|
26
|
+
originalError: error,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
static isAxiosError(error) {
|
|
30
|
+
return (typeof error === 'object' &&
|
|
31
|
+
error !== null &&
|
|
32
|
+
error.isAxiosError === true);
|
|
33
|
+
}
|
|
34
|
+
static defaultCodeForStatus(status) {
|
|
35
|
+
const map = {
|
|
36
|
+
400: 'BAD_REQUEST',
|
|
37
|
+
401: 'UNAUTHORIZED',
|
|
38
|
+
403: 'FORBIDDEN',
|
|
39
|
+
404: 'NOT_FOUND',
|
|
40
|
+
409: 'CONFLICT',
|
|
41
|
+
422: 'VALIDATION_ERROR',
|
|
42
|
+
429: 'RATE_LIMIT',
|
|
43
|
+
500: 'INTERNAL_SERVER_ERROR',
|
|
44
|
+
502: 'BAD_GATEWAY',
|
|
45
|
+
503: 'SERVICE_UNAVAILABLE',
|
|
46
|
+
};
|
|
47
|
+
return map[status] ?? `HTTP_${status}`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=error.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/error.interceptor.ts"],"names":[],"mappings":"AA4BA,MAAM,OAAO,YAAY;IAKvB,MAAM,CAAC,MAAM,CAAC,KAAc;QAE1B,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAmC,CAAC;YAEjE,MAAM,IAAI,GACR,IAAI,EAAE,KAAK,EAAE,IAAI;gBACjB,YAAY,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAE5C,MAAM,OAAO,GACX,IAAI,EAAE,KAAK,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,KAAK,CAAC,OAAO;gBACb,8BAA8B,CAAC;YAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACrE,CAAC;QAGD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO;gBACL,UAAU,EAAE,CAAC;gBACb,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,8CAA8C;gBACxE,aAAa,EAAE,KAAK;aACrB,CAAC;QACJ,CAAC;QAGD,OAAO;YACL,UAAU,EAAE,CAAC;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,2BAA2B;YACpC,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAIO,MAAM,CAAC,YAAY,CAAC,KAAc;QACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACb,KAAoB,CAAC,YAAY,KAAK,IAAI,CAC5C,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,MAAc;QAChD,MAAM,GAAG,GAA2B;YAClC,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,kBAAkB;YACvB,GAAG,EAAE,YAAY;YACjB,GAAG,EAAE,uBAAuB;YAC5B,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,qBAAqB;SAC3B,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,MAAM,EAAE,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptors/response.interceptor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/response.interceptor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseService } from './base.service';
|
|
2
|
+
import { LoginRequest, RegisterRequest, AuthResponse, RefreshTokenRequest } from '../types/auth.types';
|
|
3
|
+
export declare class AuthService extends BaseService {
|
|
4
|
+
login(credentials: LoginRequest): Promise<AuthResponse>;
|
|
5
|
+
register(data: RegisterRequest): Promise<AuthResponse>;
|
|
6
|
+
refreshToken(request: RefreshTokenRequest): Promise<AuthResponse>;
|
|
7
|
+
logout(): Promise<void>;
|
|
8
|
+
verifyEmail(token: string): Promise<void>;
|
|
9
|
+
requestPasswordReset(email: string): Promise<void>;
|
|
10
|
+
resetPassword(token: string, newPassword: string): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=auth.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,WAAY,SAAQ,WAAW;IACpC,KAAK,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IASvD,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IAStD,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IASjE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BaseService } from './base.service';
|
|
2
|
+
import { AuthInterceptor } from '../interceptors/auth.interceptor';
|
|
3
|
+
export class AuthService extends BaseService {
|
|
4
|
+
async login(credentials) {
|
|
5
|
+
const response = await this.post('/auth/login', credentials);
|
|
6
|
+
AuthInterceptor.setTokens(response.tokens.accessToken, response.tokens.refreshToken);
|
|
7
|
+
return response;
|
|
8
|
+
}
|
|
9
|
+
async register(data) {
|
|
10
|
+
const response = await this.post('/auth/register', data);
|
|
11
|
+
AuthInterceptor.setTokens(response.tokens.accessToken, response.tokens.refreshToken);
|
|
12
|
+
return response;
|
|
13
|
+
}
|
|
14
|
+
async refreshToken(request) {
|
|
15
|
+
const response = await this.post('/auth/refresh', request);
|
|
16
|
+
AuthInterceptor.setTokens(response.tokens.accessToken, response.tokens.refreshToken);
|
|
17
|
+
return response;
|
|
18
|
+
}
|
|
19
|
+
async logout() {
|
|
20
|
+
try {
|
|
21
|
+
await this.post('/auth/logout', {});
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
AuthInterceptor.clearTokens();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async verifyEmail(token) {
|
|
28
|
+
await this.post('/auth/verify-email', { token });
|
|
29
|
+
}
|
|
30
|
+
async requestPasswordReset(email) {
|
|
31
|
+
await this.post('/auth/forgot-password', { email });
|
|
32
|
+
}
|
|
33
|
+
async resetPassword(token, newPassword) {
|
|
34
|
+
await this.post('/auth/reset-password', { token, newPassword });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=auth.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAQnE,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,KAAK,CAAC,KAAK,CAAC,WAAyB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAe,aAAa,EAAE,WAAW,CAAC,CAAC;QAC3E,eAAe,CAAC,SAAS,CACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,EAC3B,QAAQ,CAAC,MAAM,CAAC,YAAY,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAqB;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAe,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACvE,eAAe,CAAC,SAAS,CACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,EAC3B,QAAQ,CAAC,MAAM,CAAC,YAAY,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAe,eAAe,EAAE,OAAO,CAAC,CAAC;QACzE,eAAe,CAAC,SAAS,CACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,EAC3B,QAAQ,CAAC,MAAM,CAAC,YAAY,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAa;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,WAAmB;QACpD,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AxiosRequestConfig } from 'axios';
|
|
2
|
+
export declare class BaseService {
|
|
3
|
+
protected get<T>(endpoint: string, config?: AxiosRequestConfig): Promise<T>;
|
|
4
|
+
protected post<T>(endpoint: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
5
|
+
protected put<T>(endpoint: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
6
|
+
protected patch<T>(endpoint: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
7
|
+
protected delete<T>(endpoint: string, config?: AxiosRequestConfig): Promise<T>;
|
|
8
|
+
protected upload<T>(endpoint: string, formData: FormData, onProgress?: (percent: number) => void): Promise<T>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=base.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.service.d.ts","sourceRoot":"","sources":["../../src/services/base.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAc3C,qBAAa,WAAW;cACN,GAAG,CAAC,CAAC,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,IAAI,CAAC,CAAC,EACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,GAAG,CAAC,CAAC,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,KAAK,CAAC,CAAC,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,MAAM,CAAC,CAAC,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,MAAM,CAAC,CAAC,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,CAAC,CAAC;CAGd"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { httpClient } from '../client';
|
|
2
|
+
export class BaseService {
|
|
3
|
+
async get(endpoint, config) {
|
|
4
|
+
return httpClient.get(endpoint, config);
|
|
5
|
+
}
|
|
6
|
+
async post(endpoint, data, config) {
|
|
7
|
+
return httpClient.post(endpoint, data, config);
|
|
8
|
+
}
|
|
9
|
+
async put(endpoint, data, config) {
|
|
10
|
+
return httpClient.put(endpoint, data, config);
|
|
11
|
+
}
|
|
12
|
+
async patch(endpoint, data, config) {
|
|
13
|
+
return httpClient.patch(endpoint, data, config);
|
|
14
|
+
}
|
|
15
|
+
async delete(endpoint, config) {
|
|
16
|
+
return httpClient.delete(endpoint, config);
|
|
17
|
+
}
|
|
18
|
+
async upload(endpoint, formData, onProgress) {
|
|
19
|
+
return httpClient.upload(endpoint, formData, onProgress);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=base.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.service.js","sourceRoot":"","sources":["../../src/services/base.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAavC,MAAM,OAAO,WAAW;IACZ,KAAK,CAAC,GAAG,CACjB,QAAgB,EAChB,MAA2B;QAE3B,OAAO,UAAU,CAAC,GAAG,CAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAES,KAAK,CAAC,IAAI,CAClB,QAAgB,EAChB,IAAc,EACd,MAA2B;QAE3B,OAAO,UAAU,CAAC,IAAI,CAAI,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAES,KAAK,CAAC,GAAG,CACjB,QAAgB,EAChB,IAAc,EACd,MAA2B;QAE3B,OAAO,UAAU,CAAC,GAAG,CAAI,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAES,KAAK,CAAC,KAAK,CACnB,QAAgB,EAChB,IAAc,EACd,MAA2B;QAE3B,OAAO,UAAU,CAAC,KAAK,CAAI,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAES,KAAK,CAAC,MAAM,CACpB,QAAgB,EAChB,MAA2B;QAE3B,OAAO,UAAU,CAAC,MAAM,CAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAES,KAAK,CAAC,MAAM,CACpB,QAAgB,EAChB,QAAkB,EAClB,UAAsC;QAEtC,OAAO,UAAU,CAAC,MAAM,CAAI,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export declare class CallService {
|
|
2
|
+
createVideoRoom(roomName: string, maxParticipants?: number, type?: 'peer' | 'group'): Promise<{
|
|
3
|
+
roomSid: string;
|
|
4
|
+
roomName: string;
|
|
5
|
+
callType: string;
|
|
6
|
+
maxParticipants: number;
|
|
7
|
+
}>;
|
|
8
|
+
getVideoToken(roomName: string): Promise<{
|
|
9
|
+
token: string;
|
|
10
|
+
roomName: string;
|
|
11
|
+
userId: string;
|
|
12
|
+
userName: string;
|
|
13
|
+
}>;
|
|
14
|
+
joinVideoCall(roomName: string): Promise<{
|
|
15
|
+
token: string;
|
|
16
|
+
roomName: string;
|
|
17
|
+
}>;
|
|
18
|
+
getVideoRoomStatus(roomSid: string): Promise<{
|
|
19
|
+
roomSid: string;
|
|
20
|
+
roomName: string;
|
|
21
|
+
status: string;
|
|
22
|
+
participants: number;
|
|
23
|
+
maxParticipants: number;
|
|
24
|
+
duration: number;
|
|
25
|
+
}>;
|
|
26
|
+
endVideoCall(roomSid: string): Promise<{
|
|
27
|
+
success: boolean;
|
|
28
|
+
message: string;
|
|
29
|
+
}>;
|
|
30
|
+
listActiveVideoRooms(): Promise<any[]>;
|
|
31
|
+
muteAudio(roomSid: string): Promise<{
|
|
32
|
+
success: boolean;
|
|
33
|
+
message: string;
|
|
34
|
+
}>;
|
|
35
|
+
unmuteAudio(roomSid: string): Promise<{
|
|
36
|
+
success: boolean;
|
|
37
|
+
message: string;
|
|
38
|
+
}>;
|
|
39
|
+
initiateAudioCall(recipientId: string): Promise<{
|
|
40
|
+
callId: string;
|
|
41
|
+
status: string;
|
|
42
|
+
}>;
|
|
43
|
+
acceptAudioCall(callId: string): Promise<{
|
|
44
|
+
callId: string;
|
|
45
|
+
token: string;
|
|
46
|
+
status: string;
|
|
47
|
+
}>;
|
|
48
|
+
rejectAudioCall(callId: string): Promise<{
|
|
49
|
+
success: boolean;
|
|
50
|
+
message: string;
|
|
51
|
+
}>;
|
|
52
|
+
endAudioCall(callId: string): Promise<{
|
|
53
|
+
callId: string;
|
|
54
|
+
duration: number;
|
|
55
|
+
status: string;
|
|
56
|
+
}>;
|
|
57
|
+
getAudioToken(): Promise<{
|
|
58
|
+
token: string;
|
|
59
|
+
}>;
|
|
60
|
+
getCallHistory(limit?: number): Promise<Array<{
|
|
61
|
+
callId: string;
|
|
62
|
+
type: string;
|
|
63
|
+
status: string;
|
|
64
|
+
duration: number | null;
|
|
65
|
+
otherUserId: string;
|
|
66
|
+
startedAt: string;
|
|
67
|
+
endedAt: string | null;
|
|
68
|
+
}>>;
|
|
69
|
+
getRecordings(roomSid: string): Promise<any[]>;
|
|
70
|
+
deleteRecording(recordingId: string): Promise<{
|
|
71
|
+
success: boolean;
|
|
72
|
+
message: string;
|
|
73
|
+
}>;
|
|
74
|
+
reportCallQuality(callId: string, quality: 'good' | 'fair' | 'poor', issue?: string): Promise<{
|
|
75
|
+
success: boolean;
|
|
76
|
+
message: string;
|
|
77
|
+
}>;
|
|
78
|
+
}
|
|
79
|
+
export declare const callService: CallService;
|
|
80
|
+
//# sourceMappingURL=call.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call.service.d.ts","sourceRoot":"","sources":["../../src/services/call.service.ts"],"names":[],"mappings":"AAKA,qBAAa,WAAW;IAKhB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,eAAe,GAAE,MAAU,EAC3B,IAAI,GAAE,MAAM,GAAG,OAAgB,GAC9B,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAItF,aAAa,CACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3E,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAK7E,kBAAkB,CACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5H,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI7E,oBAAoB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAItC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1E,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ5E,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAInF,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3F,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3F,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3C,cAAc,CAClB,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAQtJ,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAI9C,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIpF,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACjC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAGlD;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { httpClient } from '../client';
|
|
2
|
+
export class CallService {
|
|
3
|
+
async createVideoRoom(roomName, maxParticipants = 2, type = 'peer') {
|
|
4
|
+
return httpClient.post('/calls/video/create-room', { roomName, maxParticipants, type });
|
|
5
|
+
}
|
|
6
|
+
async getVideoToken(roomName) {
|
|
7
|
+
return httpClient.post('/calls/video/get-token', { roomName });
|
|
8
|
+
}
|
|
9
|
+
async joinVideoCall(roomName) {
|
|
10
|
+
const tokenData = await this.getVideoToken(roomName);
|
|
11
|
+
return { token: tokenData.token, roomName: tokenData.roomName };
|
|
12
|
+
}
|
|
13
|
+
async getVideoRoomStatus(roomSid) {
|
|
14
|
+
return httpClient.get(`/calls/video/rooms/${roomSid}`);
|
|
15
|
+
}
|
|
16
|
+
async endVideoCall(roomSid) {
|
|
17
|
+
return httpClient.post('/calls/video/end-room', { roomSid });
|
|
18
|
+
}
|
|
19
|
+
async listActiveVideoRooms() {
|
|
20
|
+
return httpClient.get('/calls/video/active-rooms');
|
|
21
|
+
}
|
|
22
|
+
async muteAudio(roomSid) {
|
|
23
|
+
return httpClient.post(`/calls/video/${roomSid}/mute`, {});
|
|
24
|
+
}
|
|
25
|
+
async unmuteAudio(roomSid) {
|
|
26
|
+
return httpClient.post(`/calls/video/${roomSid}/unmute`, {});
|
|
27
|
+
}
|
|
28
|
+
async initiateAudioCall(recipientId) {
|
|
29
|
+
return httpClient.post('/calls/audio/initiate', { recipientId });
|
|
30
|
+
}
|
|
31
|
+
async acceptAudioCall(callId) {
|
|
32
|
+
return httpClient.post('/calls/audio/accept', { callId });
|
|
33
|
+
}
|
|
34
|
+
async rejectAudioCall(callId) {
|
|
35
|
+
return httpClient.post('/calls/audio/reject', { callId });
|
|
36
|
+
}
|
|
37
|
+
async endAudioCall(callId) {
|
|
38
|
+
return httpClient.post('/calls/audio/end', { callId });
|
|
39
|
+
}
|
|
40
|
+
async getAudioToken() {
|
|
41
|
+
return httpClient.get('/calls/audio/token');
|
|
42
|
+
}
|
|
43
|
+
async getCallHistory(limit = 20) {
|
|
44
|
+
return httpClient.get(`/calls/audio/call-history?limit=${limit}`);
|
|
45
|
+
}
|
|
46
|
+
async getRecordings(roomSid) {
|
|
47
|
+
return httpClient.get(`/calls/recordings/${roomSid}`);
|
|
48
|
+
}
|
|
49
|
+
async deleteRecording(recordingId) {
|
|
50
|
+
return httpClient.delete(`/calls/recordings/${recordingId}`);
|
|
51
|
+
}
|
|
52
|
+
async reportCallQuality(callId, quality, issue) {
|
|
53
|
+
return httpClient.post('/calls/report-quality', { callId, quality, issue });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export const callService = new CallService();
|
|
57
|
+
//# sourceMappingURL=call.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call.service.js","sourceRoot":"","sources":["../../src/services/call.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseService } from './base.service';
|
|
2
|
+
import { Message, Conversation, SendMessageRequest } from '../types/chat.types';
|
|
3
|
+
export declare class ChatService extends BaseService {
|
|
4
|
+
sendMessage(request: SendMessageRequest): Promise<Message>;
|
|
5
|
+
getMessages(matchId: string, limit?: number): Promise<Message[]>;
|
|
6
|
+
getConversations(): Promise<Conversation[]>;
|
|
7
|
+
markAsRead(messageId: string): Promise<void>;
|
|
8
|
+
markConversationAsRead(matchId: string): Promise<void>;
|
|
9
|
+
deleteMessage(messageId: string): Promise<void>;
|
|
10
|
+
getUnreadCount(): Promise<{
|
|
11
|
+
count: number;
|
|
12
|
+
}>;
|
|
13
|
+
searchMessages(matchId: string, query: string): Promise<Message[]>;
|
|
14
|
+
}
|
|
15
|
+
export declare const chatService: ChatService;
|
|
16
|
+
//# sourceMappingURL=chat.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../src/services/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,OAAO,EACP,YAAY,EACZ,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,WAAY,SAAQ,WAAW;IACpC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAMpE,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAI3C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,cAAc,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5C,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAKzE;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BaseService } from './base.service';
|
|
2
|
+
export class ChatService extends BaseService {
|
|
3
|
+
async sendMessage(request) {
|
|
4
|
+
return this.post('/chat/messages', request);
|
|
5
|
+
}
|
|
6
|
+
async getMessages(matchId, limit = 50) {
|
|
7
|
+
return this.get(`/chat/matches/${matchId}/messages`, {
|
|
8
|
+
params: { limit },
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
async getConversations() {
|
|
12
|
+
return this.get('/chat/conversations');
|
|
13
|
+
}
|
|
14
|
+
async markAsRead(messageId) {
|
|
15
|
+
await this.put(`/chat/messages/${messageId}/read`, {});
|
|
16
|
+
}
|
|
17
|
+
async markConversationAsRead(matchId) {
|
|
18
|
+
await this.put(`/chat/matches/${matchId}/read`, {});
|
|
19
|
+
}
|
|
20
|
+
async deleteMessage(messageId) {
|
|
21
|
+
await this.delete(`/chat/messages/${messageId}`);
|
|
22
|
+
}
|
|
23
|
+
async getUnreadCount() {
|
|
24
|
+
return this.get('/chat/unread-count');
|
|
25
|
+
}
|
|
26
|
+
async searchMessages(matchId, query) {
|
|
27
|
+
return this.get(`/chat/matches/${matchId}/search`, {
|
|
28
|
+
params: { q: query },
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export const chatService = new ChatService();
|
|
33
|
+
//# sourceMappingURL=chat.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../src/services/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAU,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,QAAgB,EAAE;QACnD,OAAO,IAAI,CAAC,GAAG,CAAY,iBAAiB,OAAO,WAAW,EAAE;YAC9D,MAAM,EAAE,EAAE,KAAK,EAAE;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,GAAG,CAAiB,qBAAqB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,SAAS,OAAO,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAC1C,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,OAAO,OAAO,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,GAAG,CAAoB,oBAAoB,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,KAAa;QACjD,OAAO,IAAI,CAAC,GAAG,CAAY,iBAAiB,OAAO,SAAS,EAAE;YAC5D,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE;SACrB,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AuthService } from './auth.service';
|
|
2
|
+
import { UserService } from './user.service';
|
|
3
|
+
import { MatchService } from './match.service';
|
|
4
|
+
import { ChatService } from './chat.service';
|
|
5
|
+
import { NotificationService } from './notification.service';
|
|
6
|
+
import { PaymentService } from './payment.service';
|
|
7
|
+
import { CallService } from './call.service';
|
|
8
|
+
export { AuthService } from './auth.service';
|
|
9
|
+
export { UserService } from './user.service';
|
|
10
|
+
export { MatchService } from './match.service';
|
|
11
|
+
export { ChatService } from './chat.service';
|
|
12
|
+
export { NotificationService } from './notification.service';
|
|
13
|
+
export { PaymentService } from './payment.service';
|
|
14
|
+
export { CallService } from './call.service';
|
|
15
|
+
export { BaseService } from './base.service';
|
|
16
|
+
export declare const authService: AuthService;
|
|
17
|
+
export declare const userService: UserService;
|
|
18
|
+
export declare const matchService: MatchService;
|
|
19
|
+
export declare const chatService: ChatService;
|
|
20
|
+
export declare const notificationService: NotificationService;
|
|
21
|
+
export declare const paymentService: PaymentService;
|
|
22
|
+
export declare const callService: CallService;
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,eAAO,MAAM,WAAW,aAAoB,CAAC;AAC7C,eAAO,MAAM,WAAW,aAAoB,CAAC;AAC7C,eAAO,MAAM,YAAY,cAAqB,CAAC;AAC/C,eAAO,MAAM,WAAW,aAAoB,CAAC;AAC7C,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAC7D,eAAO,MAAM,cAAc,gBAAuB,CAAC;AACnD,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AuthService } from './auth.service';
|
|
2
|
+
import { UserService } from './user.service';
|
|
3
|
+
import { MatchService } from './match.service';
|
|
4
|
+
import { ChatService } from './chat.service';
|
|
5
|
+
import { NotificationService } from './notification.service';
|
|
6
|
+
import { PaymentService } from './payment.service';
|
|
7
|
+
import { CallService } from './call.service';
|
|
8
|
+
export { AuthService } from './auth.service';
|
|
9
|
+
export { UserService } from './user.service';
|
|
10
|
+
export { MatchService } from './match.service';
|
|
11
|
+
export { ChatService } from './chat.service';
|
|
12
|
+
export { NotificationService } from './notification.service';
|
|
13
|
+
export { PaymentService } from './payment.service';
|
|
14
|
+
export { CallService } from './call.service';
|
|
15
|
+
export { BaseService } from './base.service';
|
|
16
|
+
export const authService = new AuthService();
|
|
17
|
+
export const userService = new UserService();
|
|
18
|
+
export const matchService = new MatchService();
|
|
19
|
+
export const chatService = new ChatService();
|
|
20
|
+
export const notificationService = new NotificationService();
|
|
21
|
+
export const paymentService = new PaymentService();
|
|
22
|
+
export const callService = new CallService();
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseService } from './base.service';
|
|
2
|
+
import { Match, GetMatchesResponse, SwipeRequest } from '../types/match.types';
|
|
3
|
+
export declare class MatchService extends BaseService {
|
|
4
|
+
swipe(request: SwipeRequest): Promise<{
|
|
5
|
+
isMatch: boolean;
|
|
6
|
+
}>;
|
|
7
|
+
getMatches(): Promise<GetMatchesResponse>;
|
|
8
|
+
getActiveMatches(): Promise<Match[]>;
|
|
9
|
+
getMatch(matchId: string): Promise<Match>;
|
|
10
|
+
unmatch(matchId: string): Promise<void>;
|
|
11
|
+
reportUser(userId: string, reason: string): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export declare const matchService: MatchService;
|
|
14
|
+
//# sourceMappingURL=match.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match.service.d.ts","sourceRoot":"","sources":["../../src/services/match.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,YAAa,SAAQ,WAAW;IACrC,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAI3D,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIzC,gBAAgB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAIpC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIzC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseService } from './base.service';
|
|
2
|
+
export class MatchService extends BaseService {
|
|
3
|
+
async swipe(request) {
|
|
4
|
+
return this.post('/matches/swipe', request);
|
|
5
|
+
}
|
|
6
|
+
async getMatches() {
|
|
7
|
+
return this.get('/matches');
|
|
8
|
+
}
|
|
9
|
+
async getActiveMatches() {
|
|
10
|
+
return this.get('/matches/active');
|
|
11
|
+
}
|
|
12
|
+
async getMatch(matchId) {
|
|
13
|
+
return this.get(`/matches/${matchId}`);
|
|
14
|
+
}
|
|
15
|
+
async unmatch(matchId) {
|
|
16
|
+
await this.delete(`/matches/${matchId}`);
|
|
17
|
+
}
|
|
18
|
+
async reportUser(userId, reason) {
|
|
19
|
+
await this.post(`/users/${userId}/report`, { reason });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export const matchService = new MatchService();
|
|
23
|
+
//# sourceMappingURL=match.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match.service.js","sourceRoot":"","sources":["../../src/services/match.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,KAAK,CAAC,KAAK,CAAC,OAAqB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAuB,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,GAAG,CAAqB,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,GAAG,CAAU,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAQ,YAAY,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,MAAc;QAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseService } from './base.service';
|
|
2
|
+
import { Notification, NotificationPreferences } from '../types/notification.types';
|
|
3
|
+
export declare class NotificationService extends BaseService {
|
|
4
|
+
getNotifications(limit?: number): Promise<Notification[]>;
|
|
5
|
+
markAsRead(notificationId: string): Promise<void>;
|
|
6
|
+
markAllAsRead(): Promise<void>;
|
|
7
|
+
deleteNotification(notificationId: string): Promise<void>;
|
|
8
|
+
deleteAllNotifications(): Promise<void>;
|
|
9
|
+
getPreferences(): Promise<NotificationPreferences>;
|
|
10
|
+
updatePreferences(preferences: Partial<NotificationPreferences>): Promise<NotificationPreferences>;
|
|
11
|
+
getUnreadCount(): Promise<{
|
|
12
|
+
count: number;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
export declare const notificationService: NotificationService;
|
|
16
|
+
//# sourceMappingURL=notification.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.service.d.ts","sourceRoot":"","sources":["../../src/services/notification.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAoB,SAAQ,WAAW;IAC5C,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAM7D,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC,cAAc,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAIlD,iBAAiB,CACrB,WAAW,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC5C,OAAO,CAAC,uBAAuB,CAAC;IAO7B,cAAc,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAGnD;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
|