MCPcopy
hub / github.com/pocketbase/pocketbase / recordDataFromRequest

Function recordDataFromRequest

apis/record_crud.go:631–688  ·  view source on GitHub ↗

-------------------------------------------------------------------

(e *core.RequestEvent, record *core.Record)

Source from the content-addressed store, hash-verified

629// -------------------------------------------------------------------
630
631func recordDataFromRequest(e *core.RequestEvent, record *core.Record) (map[string]any, error) {
632 info, err := e.RequestInfo()
633 if err != nil {
634 return nil, err
635 }
636
637 // resolve regular fields
638 result := record.ReplaceModifiers(info.Body)
639
640 // resolve uploaded files
641 uploadedFiles, err := extractUploadedFiles(e, record.Collection(), "")
642 if err != nil {
643 return nil, err
644 }
645 if len(uploadedFiles) > 0 {
646 for k, files := range uploadedFiles {
647 uploaded := make([]any, 0, len(files))
648
649 // if not remove/prepend/append -> merge with the submitted
650 // info.Body values to prevent accidental old files deletion
651 if info.Body[k] != nil &&
652 !strings.HasPrefix(k, "+") &&
653 !strings.HasSuffix(k, "+") &&
654 !strings.HasSuffix(k, "-") {
655 existing := list.ToUniqueStringSlice(info.Body[k])
656 for _, name := range existing {
657 uploaded = append(uploaded, name)
658 }
659 }
660
661 for _, file := range files {
662 uploaded = append(uploaded, file)
663 }
664
665 result[k] = uploaded
666 }
667
668 result = record.ReplaceModifiers(result)
669 }
670
671 isAuth := record.Collection().IsAuth()
672
673 // unset hidden fields for non-superusers
674 if !info.HasSuperuserAuth() {
675 for _, f := range record.Collection().Fields {
676 if f.GetHidden() {
677 // exception for the auth collection "password" field
678 if isAuth && f.GetName() == core.FieldNamePassword {
679 continue
680 }
681
682 delete(result, f.GetName())
683 }
684 }
685 }
686
687 return result, nil
688}

Callers 2

recordCreateFunction · 0.85
recordUpdateFunction · 0.85

Calls 9

ToUniqueStringSliceFunction · 0.92
extractUploadedFilesFunction · 0.85
RequestInfoMethod · 0.80
ReplaceModifiersMethod · 0.80
CollectionMethod · 0.80
IsAuthMethod · 0.80
GetHiddenMethod · 0.65
GetNameMethod · 0.65
HasSuperuserAuthMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…