SurfSense/surfsense_web/lib/apis/auth-api.service.ts

36 lines
955 B
TypeScript
Raw Normal View History

2025-11-14 00:23:21 +02:00
import {
2025-11-14 00:42:19 +02:00
loginRequest,
LoginRequest,
loginResponse,
registerRequest,
RegisterRequest,
registerResponse,
2025-11-14 00:23:21 +02:00
} from "@/contracts/types/auth.types";
import { baseApiService } from "./base-api.service";
export class AuthApiService {
2025-11-14 00:42:19 +02:00
login = async (request: LoginRequest) => {
// Validate the request
const parsedRequest = loginRequest.safeParse(request);
2025-11-14 00:23:21 +02:00
2025-11-14 00:42:19 +02:00
if (!parsedRequest.success) {
throw new Error(`Invalid request: ${parsedRequest.error.message}`);
}
2025-11-14 00:23:21 +02:00
2025-11-14 00:42:19 +02:00
return baseApiService.post(`/auth/jwt/login`, parsedRequest.data, loginResponse, {
contentType: "application/x-www-form-urlencoded",
});
};
2025-11-14 00:23:21 +02:00
2025-11-14 00:42:19 +02:00
register = async (request: RegisterRequest) => {
// Validate the request
const parsedRequest = registerRequest.safeParse(request);
2025-11-14 00:23:21 +02:00
2025-11-14 00:42:19 +02:00
if (!parsedRequest.success) {
throw new Error(`Invalid request: ${parsedRequest.error.message}`);
}
2025-11-14 00:23:21 +02:00
2025-11-14 00:42:19 +02:00
return baseApiService.post(`/auth/register`, parsedRequest.data, registerResponse);
};
2025-11-14 00:23:21 +02:00
}