Extend for Human Readable

This commit is contained in:
mr
2026-04-21 14:30:45 +02:00
parent 50a5e90f33
commit d57ee0b5e7
11 changed files with 140 additions and 7 deletions

View File

@@ -196,6 +196,23 @@ type Claims struct {
Session SessionClaims `json:"session"`
}
func GetExtend(obj utils.DBObject, extends map[string][]tools.DataType) utils.DBObject {
base := obj.Serialize(obj)
for k, v := range extends {
if base[k+"_id"] == nil || base[k+"_id"] == "" {
continue
}
for _, vv := range v {
if d, _, err := models.Model(vv.EnumIndex()).GetAccessor(&tools.APIRequest{
Admin: true,
}).LoadOne(fmt.Sprintf("%v", base[k+"_id"])); d != nil && err == nil {
base[k] = d.Serialize(d)
break
}
}
}
return obj.Deserialize(base, obj)
}
func ExtractTokenInfo(request http.Request) (string, string, []string) {
reqToken := request.Header.Get("Authorization")
splitToken := strings.Split(reqToken, "Bearer ")
@@ -419,7 +436,7 @@ func (r *Request) LoadAll(isDraft bool, offset int64, limit int64) (data LibData
* @param c ...*tools.HTTPCaller
* @return data LibData
*/
func (r *Request) LoadOne(id string) (data LibData) {
func (r *Request) LoadOne(id string, extend ...string) (data LibData) {
defer func() { // recover the panic
if r := recover(); r != nil {
tools.UncatchedError = append(tools.UncatchedError, errors.New("Panic recovered in LoadOne : "+fmt.Sprintf("%v", r)+" - "+string(debug.Stack())))
@@ -437,7 +454,7 @@ func (r *Request) LoadOne(id string) (data LibData) {
data = LibData{Data: d, Code: code, Err: err.Error()}
return
}
data = LibData{Data: d, Code: code}
data = LibData{Data: GetExtend(d, d.Extend(extend...)), Code: code}
return
}