Extend for Human Readable
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user