MCPcopy Index your code
hub / github.com/53AI/53AIHub / tryDecodeID

Function tryDecodeID

api/middleware/request_decoder.go:199–236  ·  view source on GitHub ↗

tryDecodeID 尝试解码ID值

(value interface{})

Source from the content-addressed store, hash-verified

197
198// tryDecodeID 尝试解码ID值
199func tryDecodeID(value interface{}) interface{} {
200 switch v := value.(type) {
201 case string:
202 // 尝试解码字符串ID
203 if decoded, err := hashids.TryParseID(v); err == nil {
204 return decoded
205 }
206 case []interface{}:
207 // 处理ID数组
208 var decodedIDs []int64
209 allDecoded := true
210
211 for _, item := range v {
212 if strItem, ok := item.(string); ok {
213 if decoded, err := hashids.TryParseID(strItem); err == nil {
214 decodedIDs = append(decodedIDs, decoded)
215 } else {
216 allDecoded = false
217 break
218 }
219 } else {
220 allDecoded = false
221 break
222 }
223 }
224
225 if allDecoded && len(decodedIDs) > 0 {
226 // 转换为interface{}切片
227 result := make([]interface{}, len(decodedIDs))
228 for i, id := range decodedIDs {
229 result[i] = id
230 }
231 return result
232 }
233 }
234
235 return nil
236}
237
238// DecodeIDsInStruct 手动解码结构体中的ID字段(用于特殊情况)
239func DecodeIDsInStruct(data interface{}) interface{} {

Callers 1

decodeMapIDsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected