Skip to content
Snippets Groups Projects
Commit 18f98d06 authored by Anton Sattarov's avatar Anton Sattarov :cucumber: Committed by Pavel Antonov
Browse files

Добавлена функция получения метаданных из запроса к actions

parent ba6ead1a
No related branches found
No related tags found
No related merge requests found
package extension
import (
"strings"
"git.perx.ru/perxis/perxis-go/pkg/references"
pb "git.perx.ru/perxis/perxis-go/proto/extensions"
"github.com/mitchellh/mapstructure"
......@@ -116,7 +118,7 @@ func ActionToMap(action *Action) map[string]interface{} {
if action == nil {
return nil
}
res := make(map[string]interface{})
if err := mapstructure.Decode(action, &res); err != nil {
return nil
......@@ -274,3 +276,28 @@ func ActionToPB(a *Action) *pb.Action {
Order: a.Order,
}
}
func (r *ActionRequest) NewSubRequest() *ActionRequest {
md := map[string]string{
"request_extension": r.Extension,
"request_action": r.Action,
"request_space_id": r.SpaceID,
"request_env_id": r.EnvID,
"request_collection_id": r.CollectionID,
"request_item_id": r.ItemID,
"request_item_ids": strings.Join(r.ItemIDs, ","),
"request_fields": strings.Join(r.Fields, ","),
"request_refs": references.ReferenceListToString(r.Refs),
"request_params": r.Params.String(),
}
for k, v := range r.Metadata {
if _, exist := md[k]; !exist {
md[k] = v
}
}
return &ActionRequest{
Metadata: md,
}
}
package references
import (
"strings"
"git.perx.ru/perxis/perxis-go/pkg/items"
pb "git.perx.ru/perxis/perxis-go/proto/references"
"go.mongodb.org/mongo-driver/bson"
......@@ -82,6 +84,22 @@ func ReferenceListToPB(refs []*Reference) []*pb.Reference {
return list
}
func ReferenceListToString(refs []*Reference) string {
var res strings.Builder
for _, ref := range refs {
res.WriteString(ref.String())
}
return res.String()
}
func ReferenceListToStrings(refs []*Reference) (res []string) {
for _, ref := range refs {
res = append(res, ref.String())
}
return
}
func (r *Reference) String() string {
if r == nil {
return ""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment