feat: initial commit with accounts manager project structure
- TypeScript项目基础架构 - API路由和账户管理服务 - 数据库模式和迁移 - 基础配置文件和文档 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
40
src/lib/apiResponse.ts
Normal file
40
src/lib/apiResponse.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { ApiResponse, BusinessCode } from '../types/api';
|
||||
|
||||
export function createSuccessResponse<T>(data: T, message = 'Success'): ApiResponse<T> {
|
||||
return {
|
||||
code: BusinessCode.Success,
|
||||
message,
|
||||
data,
|
||||
};
|
||||
}
|
||||
|
||||
export function createErrorResponse(
|
||||
code: BusinessCode,
|
||||
message: string
|
||||
): ApiResponse<null> {
|
||||
return {
|
||||
code,
|
||||
message,
|
||||
data: null,
|
||||
};
|
||||
}
|
||||
|
||||
export function createNoResourceResponse(message = 'No resource found'): ApiResponse<null> {
|
||||
return createErrorResponse(BusinessCode.NoResource, message);
|
||||
}
|
||||
|
||||
export function createInvalidParamsResponse(message = 'Invalid parameters'): ApiResponse<null> {
|
||||
return createErrorResponse(BusinessCode.InvalidParams, message);
|
||||
}
|
||||
|
||||
export function createResourceConflictResponse(message = 'Resource conflict'): ApiResponse<null> {
|
||||
return createErrorResponse(BusinessCode.ResourceConflict, message);
|
||||
}
|
||||
|
||||
export function createPermissionDeniedResponse(message = 'Permission denied'): ApiResponse<null> {
|
||||
return createErrorResponse(BusinessCode.PermissionDenied, message);
|
||||
}
|
||||
|
||||
export function createBusinessErrorResponse(message = 'Business error'): ApiResponse<null> {
|
||||
return createErrorResponse(BusinessCode.BusinessError, message);
|
||||
}
|
||||
Reference in New Issue
Block a user