robotfs/entity/response.go
2025-06-04 15:17:14 +08:00

56 lines
1.5 KiB
Go

package entity
type Message string
const (
ErrDownloadFile Message = "download file failed"
ErrUploadFile Message = "upload file failed"
ErrDeleteFile Message = "delete file failed"
ErrRenameFile Message = "rename file failed"
ErrCopyFile Message = "copy file failed"
ErrInfoFile Message = "info file failed"
)
const (
ErrMkDir Message = "make directory failed"
ErrListDir Message = "list directory failed"
ErrDeleteDir Message = "delete directory failed"
ErrRenameDir Message = "rename directory failed"
ErrCopyDir Message = "copy directory failed"
)
const (
Success Message = "success"
)
type Status int
const (
CodeSuccess Status = 0 // success code
CodeBadRequest Status = 60004 // bad request code
CodeInternalServer Status = 60005 // internal server code
)
type Response[T any] struct {
Status Status `json:"status"` // Status code
Message Message `json:"message"` // Response message for i18n
Data T `json:"data,omitempty"` // Response data
Extra map[string]interface{} `json:"extra,omitempty"` // Extra information for error details
}
func NewSuccess[T any](data T) *Response[T] {
return &Response[T]{
Status: CodeSuccess,
Message: Success,
Data: data,
}
}
func NewError[T any](status Status, message Message, extra map[string]interface{}) *Response[T] {
return &Response[T]{
Status: status,
Message: message,
Extra: extra,
}
}