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