diff --git a/src/modules/auth/controllers/getOauthProviders.controller.ts b/src/modules/auth/controllers/getOauthProviders.controller.ts index 579ae1c..0caf730 100644 --- a/src/modules/auth/controllers/getOauthProviders.controller.ts +++ b/src/modules/auth/controllers/getOauthProviders.controller.ts @@ -9,8 +9,8 @@ export const getOauthProvidersController = (ctx: Context) => { return returnReadResponse( ctx.set, 200, - "Getting all oauth available list", - oauthProviderServices + "Successfully retrieved the list of oauth providers", + oauthProviderServices, ); } catch (error) { return mainErrorHandler(ctx.set, error); diff --git a/src/modules/auth/index.ts b/src/modules/auth/index.ts index 85786c1..55b4263 100644 --- a/src/modules/auth/index.ts +++ b/src/modules/auth/index.ts @@ -8,10 +8,11 @@ import { getCallbackProviderUrlController } from "./controllers/getCallbackProvi import { tokenValidationController } from "./controllers/tokenValidation.controller"; import { logoutController } from "./controllers/logout.controller"; import { tokenValidationSchema } from "./schemas/tokenValidation.schema"; +import { getOauthProvidersSchema } from "./schemas/getOauthProviders.schema"; export const authModule = new Elysia({ prefix: "/auth", tags: ["Authentication"] }) .post("/token/validate", tokenValidationController, tokenValidationSchema) - .get("/providers", getOauthProvidersController) + .get("/providers", getOauthProvidersController, getOauthProvidersSchema) .get("/providers/:name/callback", getCallbackProviderUrlController) .get("/github", githubRequestController) .get("/github/callback", githubCallbackController) diff --git a/src/modules/auth/schemas/getOauthProviders.schema.ts b/src/modules/auth/schemas/getOauthProviders.schema.ts new file mode 100644 index 0000000..1ec20eb --- /dev/null +++ b/src/modules/auth/schemas/getOauthProviders.schema.ts @@ -0,0 +1,56 @@ +import { success } from "zod"; +import { AppRouteSchema } from "../../../helpers/types/AppRouteSchema"; + +export const getOauthProvidersSchema = { + detail: { + summary: "Get all available oauth providers", + description: + "This endpoint returns a list of all available and active oauth providers that can be used for authentication.", + responses: { + 200: { + description: "Successfully retrieved the list of oauth providers", + content: { + "application/json": { + schema: { + type: "object", + properties: { + success: { + type: "boolean", + example: true, + }, + status: { + type: "number", + example: 200, + }, + message: { + type: "string", + example: "Successfully retrieved the list of oauth providers", + }, + data: { + type: "array", + items: { + type: "object", + properties: { + name: { + type: "string", + example: "google", + }, + icon: { + type: "string", + example: "logos:google-icon", + }, + req_endpoint: { + type: "string", + example: "auth/google", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, +} satisfies AppRouteSchema;