From a6200605f8c94806580d406b849c2bbe8802b389 Mon Sep 17 00:00:00 2001 From: Rafi Arrafif Date: Wed, 25 Feb 2026 12:00:00 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20docs:=20add=20schema=20documenta?= =?UTF-8?q?tion=20to=20OAuth=20provider=20routes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../getOauthProviders.controller.ts | 4 +- src/modules/auth/index.ts | 3 +- .../auth/schemas/getOauthProviders.schema.ts | 56 +++++++++++++++++++ 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 src/modules/auth/schemas/getOauthProviders.schema.ts 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;