From bf1c3278a2910944a86145dbf3577b4c9a333f90 Mon Sep 17 00:00:00 2001 From: henridb <henridb@stud.ntnu.no> Date: Thu, 18 Apr 2024 09:21:10 +0200 Subject: [PATCH] feat: Add authentication service --- src/api/core/OpenAPI.ts | 2 +- src/api/index.ts | 7 +++ src/api/models/AuthenticationResponse.ts | 8 ++++ src/api/models/ExceptionResponse.ts | 9 ++++ src/api/models/LoginRequest.ts | 9 ++++ src/api/models/SignUpRequest.ts | 14 ++++++ src/api/services/AuthenticationService.ts | 55 +++++++++++++++++++++++ 7 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 src/api/models/AuthenticationResponse.ts create mode 100644 src/api/models/ExceptionResponse.ts create mode 100644 src/api/models/LoginRequest.ts create mode 100644 src/api/models/SignUpRequest.ts create mode 100644 src/api/services/AuthenticationService.ts diff --git a/src/api/core/OpenAPI.ts b/src/api/core/OpenAPI.ts index bae5eb7..213c15d 100644 --- a/src/api/core/OpenAPI.ts +++ b/src/api/core/OpenAPI.ts @@ -21,7 +21,7 @@ export type OpenAPIConfig = { export const OpenAPI: OpenAPIConfig = { BASE: 'http://localhost:8080', - VERSION: '0', + VERSION: '3.0', WITH_CREDENTIALS: false, CREDENTIALS: 'include', TOKEN: undefined, diff --git a/src/api/index.ts b/src/api/index.ts index 7bfbd7a..2a974f1 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -6,3 +6,10 @@ export { ApiError } from './core/ApiError'; export { CancelablePromise, CancelError } from './core/CancelablePromise'; export { OpenAPI } from './core/OpenAPI'; export type { OpenAPIConfig } from './core/OpenAPI'; + +export type { AuthenticationResponse } from './models/AuthenticationResponse'; +export type { ExceptionResponse } from './models/ExceptionResponse'; +export type { LoginRequest } from './models/LoginRequest'; +export type { SignUpRequest } from './models/SignUpRequest'; + +export { AuthenticationService } from './services/AuthenticationService'; diff --git a/src/api/models/AuthenticationResponse.ts b/src/api/models/AuthenticationResponse.ts new file mode 100644 index 0000000..e977322 --- /dev/null +++ b/src/api/models/AuthenticationResponse.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type AuthenticationResponse = { + token?: string; +}; + diff --git a/src/api/models/ExceptionResponse.ts b/src/api/models/ExceptionResponse.ts new file mode 100644 index 0000000..12c0a78 --- /dev/null +++ b/src/api/models/ExceptionResponse.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type ExceptionResponse = { + status?: number; + message?: string; +}; + diff --git a/src/api/models/LoginRequest.ts b/src/api/models/LoginRequest.ts new file mode 100644 index 0000000..9c5def4 --- /dev/null +++ b/src/api/models/LoginRequest.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type LoginRequest = { + email?: string; + password?: string; +}; + diff --git a/src/api/models/SignUpRequest.ts b/src/api/models/SignUpRequest.ts new file mode 100644 index 0000000..28a2e78 --- /dev/null +++ b/src/api/models/SignUpRequest.ts @@ -0,0 +1,14 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type SignUpRequest = { + firstName?: string; + lastName?: string; + email?: string; + password?: string; + changeWilling?: string; + experience?: string; + challenges?: Array<string>; +}; + diff --git a/src/api/services/AuthenticationService.ts b/src/api/services/AuthenticationService.ts new file mode 100644 index 0000000..eae8fd5 --- /dev/null +++ b/src/api/services/AuthenticationService.ts @@ -0,0 +1,55 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { AuthenticationResponse } from '../models/AuthenticationResponse'; +import type { LoginRequest } from '../models/LoginRequest'; +import type { SignUpRequest } from '../models/SignUpRequest'; +import type { CancelablePromise } from '../core/CancelablePromise'; +import { OpenAPI } from '../core/OpenAPI'; +import { request as __request } from '../core/request'; +export class AuthenticationService { + /** + * User Signup + * Sign up a new user + * @returns AuthenticationResponse Successfully signed up + * @throws ApiError + */ + public static signup({ + requestBody, + }: { + requestBody: SignUpRequest, + }): CancelablePromise<AuthenticationResponse> { + return __request(OpenAPI, { + method: 'POST', + url: '/api/auth/signup', + body: requestBody, + mediaType: 'application/json', + errors: { + 409: `Email already exists`, + }, + }); + } + /** + * User Login + * Log in with an existing user + * @returns AuthenticationResponse Successfully logged in + * @throws ApiError + */ + public static login({ + requestBody, + }: { + requestBody: LoginRequest, + }): CancelablePromise<AuthenticationResponse> { + return __request(OpenAPI, { + method: 'POST', + url: '/api/auth/login', + body: requestBody, + mediaType: 'application/json', + errors: { + 401: `Invalid credentials`, + 404: `User not found`, + }, + }); + } +} -- GitLab