feat: continue work

Signed-off-by: Avior <github@avior.me>
This commit is contained in:
2023-06-28 01:15:56 +02:00
parent d76f412b82
commit 9530be5c43
16 changed files with 148 additions and 86 deletions

View File

@ -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)
}
}

View File

@ -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})
}
}

View File

@ -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()
}

View File

@ -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()
}

View 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()
}

View 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"'
})
}