update admin login api to return admin data

This commit is contained in:
ItsMalma
2025-11-27 11:36:25 +07:00
parent b68a604da1
commit 23b2174f72
2 changed files with 24 additions and 2 deletions

View File

@@ -35,7 +35,10 @@ import {
adminUpdateRequestSchema, adminUpdateRequestSchema,
adminVerifyRequestSchema, adminVerifyRequestSchema,
} from "@/modules/admin/admin.schemas"; } from "@/modules/admin/admin.schemas";
import type { AdminResponse } from "@/modules/admin/admin.types"; import type {
AdminLoginResponse,
AdminResponse,
} from "@/modules/admin/admin.types";
import * as dateFns from "date-fns"; import * as dateFns from "date-fns";
import { Router, type Request, type Response } from "express"; import { Router, type Request, type Response } from "express";
import { ulid } from "ulid"; import { ulid } from "ulid";
@@ -153,13 +156,14 @@ export class AdminController extends Controller {
return res.status(200).json({ return res.status(200).json({
data: { data: {
admin: this.mapper.mapEntityToResponse(admin),
access_token: access.token, access_token: access.token,
access_token_expires_at: access.expiresAt, access_token_expires_at: access.expiresAt,
refresh_token: refresh.token, refresh_token: refresh.token,
refresh_token_expires_at: refresh.expiresAt, refresh_token_expires_at: refresh.expiresAt,
}, },
errors: null, errors: null,
} satisfies SingleResponse); } satisfies SingleResponse<AdminLoginResponse>);
} }
async list(req: Request, res: Response) { async list(req: Request, res: Response) {
@@ -232,6 +236,15 @@ export class AdminController extends Controller {
} satisfies SingleResponse<AdminResponse>); } satisfies SingleResponse<AdminResponse>);
} }
async viewMe(_req: Request, res: Response) {
const req = _req as Request & AdminRequestPlugin;
return res.status(200).json({
data: this.mapper.mapEntityToResponse(req.admin),
errors: null,
} satisfies SingleResponse<AdminResponse>);
}
async update(req: Request, res: Response) { async update(req: Request, res: Response) {
const parseParamsResult = adminParamsSchema.safeParse(req.params); const parseParamsResult = adminParamsSchema.safeParse(req.params);
if (!parseParamsResult.success) { if (!parseParamsResult.success) {
@@ -585,6 +598,7 @@ export class AdminController extends Controller {
); );
router.post("/login", createOrmContextMiddleware, this.login.bind(this)); router.post("/login", createOrmContextMiddleware, this.login.bind(this));
router.get("/", createOrmContextMiddleware, this.list.bind(this)); router.get("/", createOrmContextMiddleware, this.list.bind(this));
router.get("/@me", createOrmContextMiddleware, this.viewMe.bind(this));
router.get("/:id", createOrmContextMiddleware, this.view.bind(this)); router.get("/:id", createOrmContextMiddleware, this.view.bind(this));
router.put( router.put(
"/:id", "/:id",

View File

@@ -31,3 +31,11 @@ export type AdminResponse = {
created_at: Date; created_at: Date;
updated_at: Date; updated_at: Date;
}; };
export type AdminLoginResponse = {
admin: AdminResponse;
access_token: string;
access_token_expires_at: Date;
refresh_token: string;
refresh_token_expires_at: Date;
};