Files
tyapi-server/internal/application/api/dto/query_whitelist_dto.go
2026-06-19 10:49:13 +08:00

87 lines
2.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dto
import (
"time"
"tyapi-server/internal/domains/api/entities"
)
type QueryWhitelistEntryRequest struct {
UserID string `json:"user_id" validate:"required"`
Name string `json:"name" validate:"required,min=1,max=100"`
IDCard string `json:"id_card" validate:"required"`
APICodes []string `json:"api_codes" validate:"required,min=1,dive,required"`
Remark string `json:"remark" validate:"max=500"`
}
type QueryWhitelistEntryUpdateRequest struct {
Name string `json:"name" validate:"omitempty,min=1,max=100"`
IDCard string `json:"id_card" validate:"omitempty"`
APICodes []string `json:"api_codes" validate:"omitempty,min=1,dive,required"`
Remark string `json:"remark" validate:"max=500"`
}
type QueryWhitelistStatusRequest struct {
Status string `json:"status" validate:"required,oneof=enabled disabled"`
}
type QueryWhitelistEntryResponse struct {
ID string `json:"id"`
UserID string `json:"user_id"`
IsGlobal bool `json:"is_global"`
Name string `json:"name"`
IDCardMasked string `json:"id_card_masked"`
APICodes []string `json:"api_codes"`
Status string `json:"status"`
Remark string `json:"remark"`
OperationIP string `json:"operation_ip,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type QueryWhitelistListResponse struct {
Items []QueryWhitelistEntryResponse `json:"items"`
Total int64 `json:"total"`
Page int `json:"page"`
Size int `json:"page_size"`
}
type QueryWhitelistImportLegacyResponse struct {
Imported int `json:"imported"`
Skipped int `json:"skipped"`
Total int `json:"total"`
}
// QueryWhitelistPublicEncryptedRequest 公开接口外层请求data 为 AES 密文)
type QueryWhitelistPublicEncryptedRequest struct {
Data string `json:"data" binding:"required"`
}
// QueryWhitelistPublicPayload 公开接口解密后的业务参数(不含 key/access_id身份由请求头 + 解密成功证明)
type QueryWhitelistPublicPayload struct {
Name string `json:"name"`
IDCard string `json:"id_card"`
APICodes []string `json:"api_codes"`
Remark string `json:"remark"`
}
func NewQueryWhitelistEntryResponse(entry *entities.QueryWhitelistEntry) QueryWhitelistEntryResponse {
apiCodes := []string(entry.APICodes)
if apiCodes == nil {
apiCodes = []string{}
}
return QueryWhitelistEntryResponse{
ID: entry.ID,
UserID: entry.UserID,
IsGlobal: entry.IsGlobal(),
Name: entry.Name,
IDCardMasked: entry.IDCardMasked,
APICodes: apiCodes,
Status: entry.Status,
Remark: entry.Remark,
OperationIP: entry.OperationIP,
CreatedAt: entry.CreatedAt,
UpdatedAt: entry.UpdatedAt,
}
}