@ -1,25 +0,0 @@
|
||||
import type { APIRoute } from 'astro'
|
||||
import crypto from 'node:crypto'
|
||||
import { validateAuth } from '../../../../../libs/validateAuth'
|
||||
import DaoFactory from '../../../../../models/DaoFactory'
|
||||
|
||||
export const post: APIRoute = async ({ params, request }) => {
|
||||
validateAuth(request, {
|
||||
name: 'keys.create',
|
||||
cookie: true,
|
||||
api: false
|
||||
})
|
||||
const userId = params.userId as string
|
||||
|
||||
const dao = await DaoFactory.get('apiKey').create({
|
||||
user: userId,
|
||||
key: crypto.randomUUID(),
|
||||
permissions: [
|
||||
'admin.user.list'
|
||||
]
|
||||
})
|
||||
return {
|
||||
status: 201,
|
||||
body: JSON.stringify(dao)
|
||||
}
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
import type { APIRoute } from 'astro'
|
||||
import { validateAuth } from '../../../libs/validateAuth'
|
||||
|
||||
export const get: APIRoute = async ({ params, request }) => {
|
||||
const requestInvalid = await validateAuth(request, {
|
||||
name: 'user.list',
|
||||
api: false,
|
||||
cookie: true
|
||||
})
|
||||
if (requestInvalid) {
|
||||
return requestInvalid
|
||||
}
|
||||
return {
|
||||
status: 200,
|
||||
body: JSON.stringify({iam: true})
|
||||
}
|
||||
}
|
@ -1,10 +1,8 @@
|
||||
import { objectOmit } from '@dzeio/object-util'
|
||||
import type { APIRoute } from 'astro'
|
||||
import { buildRFC7807 } from '../../../../../../../libs/RFCs/RFC7807'
|
||||
import DaoFactory from '../../../../../../../models/DaoFactory'
|
||||
import { buildRFC7807 } from '../../../../../../../../libs/RFCs/RFC7807'
|
||||
import DaoFactory from '../../../../../../../../models/DaoFactory'
|
||||
|
||||
export const get: APIRoute = async ({ params, request }) => {
|
||||
const userId = params.userId as string
|
||||
export const get: APIRoute = async ({ params, locals }) => {
|
||||
const configId = params.configId as string
|
||||
const fileName = params.fileName as string
|
||||
|
||||
@ -19,8 +17,8 @@ export const get: APIRoute = async ({ params, request }) => {
|
||||
|
||||
const file = dao.files.find((it) => it.name === fileName)
|
||||
|
||||
return {
|
||||
status: 200,
|
||||
body: file?.data
|
||||
}
|
||||
return locals.responseBuilder
|
||||
.status(200)
|
||||
.body(file?.data)
|
||||
.build()
|
||||
}
|
@ -1,9 +1,10 @@
|
||||
import { objectOmit } from '@dzeio/object-util'
|
||||
import type { APIRoute } from 'astro'
|
||||
import { buildRFC7807 } from '../../../../../libs/RFCs/RFC7807'
|
||||
import DaoFactory from '../../../../../models/DaoFactory'
|
||||
import { buildRFC7807 } from '../../../../../../libs/RFCs/RFC7807'
|
||||
import StatusCode from '../../../../../../libs/StatusCode'
|
||||
import DaoFactory from '../../../../../../models/DaoFactory'
|
||||
|
||||
export const post: APIRoute = async ({ params, request }) => {
|
||||
export const post: APIRoute = async ({ params, request, locals }) => {
|
||||
const userId = params.userId as string
|
||||
|
||||
const body = request.body
|
||||
@ -37,8 +38,8 @@ export const post: APIRoute = async ({ params, request }) => {
|
||||
data: buffer
|
||||
}]
|
||||
})
|
||||
return {
|
||||
status: 201,
|
||||
body: JSON.stringify(objectOmit(dao ?? {}, 'files'))
|
||||
}
|
||||
return locals.responseBuilder
|
||||
.status(StatusCode.CREATED)
|
||||
.body(objectOmit(dao ?? {}, 'files'))
|
||||
.build()
|
||||
}
|
20
src/pages/api/v1/users/[userId]/keys/index.ts
Normal file
20
src/pages/api/v1/users/[userId]/keys/index.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import type { APIRoute } from 'astro'
|
||||
import crypto from 'node:crypto'
|
||||
import StatusCode from '../../../../../../libs/StatusCode'
|
||||
import DaoFactory from '../../../../../../models/DaoFactory'
|
||||
|
||||
export const post: APIRoute = async ({ params, locals }) => {
|
||||
const userId = params.userId as string
|
||||
|
||||
const dao = await DaoFactory.get('apiKey').create({
|
||||
user: userId,
|
||||
key: crypto.randomUUID(),
|
||||
permissions: [
|
||||
'admin.user.list'
|
||||
]
|
||||
})
|
||||
return locals.responseBuilder
|
||||
.status(StatusCode.CREATED)
|
||||
.body(dao)
|
||||
.build()
|
||||
}
|
17
src/pages/api/v1/users/index.ts
Normal file
17
src/pages/api/v1/users/index.ts
Normal file
@ -0,0 +1,17 @@
|
||||
import type { APIRoute } from 'astro'
|
||||
import { buildRFC7807 } from '../../../../libs/RFCs/RFC7807'
|
||||
import StatusCode from '../../../../libs/StatusCode'
|
||||
|
||||
export const get: APIRoute = async ({ locals }) => {
|
||||
return locals.responseBuilder
|
||||
.status(200)
|
||||
.body({iam: true})
|
||||
.build()
|
||||
}
|
||||
|
||||
export const options: APIRoute = async () => {
|
||||
return buildRFC7807({
|
||||
status: StatusCode.METHOD_NOT_ALLOWED,
|
||||
details: 'Allowed methods: "GET"'
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user