56 lines
1.5 KiB
Go
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,
|
|
}
|
|
}
|