v1
This commit is contained in:
57
server/src/api/v1/key/index.ts
Normal file
57
server/src/api/v1/key/index.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
import express, { type Router, type Request, type Response } from 'express'
|
||||
import { ApiKeyModel } from '../../../models/apikey.model.ts'
|
||||
|
||||
const router = express.Router()
|
||||
|
||||
|
||||
router.get('/', async (_req: Request, res: Response) => {
|
||||
try {
|
||||
const doc = await ApiKeyModel.findOne({})
|
||||
|
||||
const apiKey = doc?.apiKey || ''
|
||||
|
||||
res.json({ apiKey })
|
||||
} catch (error) {
|
||||
console.error('Error fetching API key:', error)
|
||||
res.status(500).json({ error: 'Failed to fetch API key' })
|
||||
}
|
||||
})
|
||||
|
||||
router.post('/', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { apiKey } = req.body as { apiKey?: string }
|
||||
if (!apiKey || !apiKey.trim()) {
|
||||
return res.status(400).json({ error: 'Invalid API key' })
|
||||
}
|
||||
|
||||
await ApiKeyModel.updateOne(
|
||||
{},
|
||||
{ $set: { apiKey: apiKey } },
|
||||
{ upsert: true }
|
||||
)
|
||||
|
||||
res.json({ success: true })
|
||||
} catch (error) {
|
||||
console.error('Error saving API key:', error)
|
||||
res.status(500).json({ error: 'Failed to save API key' })
|
||||
}
|
||||
})
|
||||
|
||||
router.delete('/', async (_req: Request, res: Response) => {
|
||||
try {
|
||||
const result = await ApiKeyModel.deleteOne({})
|
||||
|
||||
if (result.deletedCount === 0) {
|
||||
console.log('No API key found to delete.')
|
||||
return res.status(204).end()
|
||||
}
|
||||
|
||||
console.log('API key document deleted.')
|
||||
res.json({ success: true, message: 'API key deleted' })
|
||||
} catch (error) {
|
||||
console.error('Error deleting API key:', error)
|
||||
res.status(500).json({ error: 'Failed to delete API key' })
|
||||
}
|
||||
})
|
||||
|
||||
export default router as Router
|
||||
Reference in New Issue
Block a user