Codeai / backend /controllers /apiKeyController.js
zhlajiex's picture
feat: integrate sk-cdx API keys and Qwen3-Coder-480B engine
a705c01
const ApiKey = require('../models/ApiKey');
const asyncHandler = require('../utils/asyncHandler');
const ErrorResponse = require('../utils/errorResponse');
// @desc Generate a new API Key
// @route POST /api/users/keys
// @access Private
exports.createKey = asyncHandler(async (req, res, next) => {
const { name } = req.body;
const key = ApiKey.generateKey();
const apiKey = await ApiKey.create({
key,
userId: req.user.id,
name: name || 'Default Key'
});
res.status(201).json({
success: true,
data: apiKey
});
});
// @desc Get all API Keys for a user
// @route GET /api/users/keys
// @access Private
exports.getKeys = asyncHandler(async (req, res, next) => {
const keys = await ApiKey.find({ userId: req.user.id });
res.status(200).json({
success: true,
data: keys
});
});
// @desc Delete an API Key
// @route DELETE /api/users/keys/:id
// @access Private
exports.deleteKey = asyncHandler(async (req, res, next) => {
const key = await ApiKey.findById(req.params.id);
if (!key) {
return next(new ErrorResponse('Key not found', 404));
}
// Make sure user owns the key
if (key.userId.toString() !== req.user.id) {
return next(new ErrorResponse('Not authorized to delete this key', 401));
}
await key.deleteOne();
res.status(200).json({
success: true,
data: {}
});
});