redhare-demo/app/api/user/route.js

49 lines
1007 B
JavaScript

import joi from 'joi'
import { usersRepo } from 'helpers'
import { apiHandler } from 'helpers/api'
import { setJson } from '@/helpers/api'
const getUsers = apiHandler(
async req => {
const searchParams = req.nextUrl.searchParams
const page = +searchParams.get('page') || 1
const page_size = +searchParams.get('page_size') || 5
const result = await usersRepo.getAll({
page,
page_size,
})
return setJson({
data: result,
})
},
{
isJwt: true,
identity: 'admin',
}
)
const uploadInfo = apiHandler(
async req => {
const userId = req.headers.get('userId')
const body = await req.json()
const result = await usersRepo.update(userId, body)
return setJson({
data: result,
})
},
{
isJwt: true,
schema: joi.object({
name: joi.string(),
address: joi.object(),
mobile: joi.string(),
}),
}
)
export const GET = getUsers
export const PATCH = uploadInfo
export const dynamic = 'force-dynamic'