Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
3062 lines
63 KiB
Go
3062 lines
63 KiB
Go
package request
|
|
|
|
// This file is auto-generated.
|
|
//
|
|
// Changes to this file may cause incorrect behavior and will be lost if
|
|
// the code is regenerated.
|
|
//
|
|
// Definitions file that controls how this file is generated:
|
|
//
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/cortezaproject/corteza/server/compose/types"
|
|
"github.com/cortezaproject/corteza/server/pkg/payload"
|
|
"github.com/go-chi/chi/v5"
|
|
"io"
|
|
"mime/multipart"
|
|
"net/http"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// dummy vars to prevent
|
|
// unused imports complain
|
|
var (
|
|
_ = chi.URLParam
|
|
_ = multipart.ErrMessageTooLarge
|
|
_ = payload.ParseUint64s
|
|
_ = strings.ToLower
|
|
_ = io.EOF
|
|
_ = fmt.Errorf
|
|
_ = json.NewEncoder
|
|
)
|
|
|
|
type (
|
|
// Internal API interface
|
|
RecordReport struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Metrics GET parameter
|
|
//
|
|
// Metrics (eg: 'SUM(money), MAX(calls)')
|
|
Metrics string
|
|
|
|
// Dimensions GET parameter
|
|
//
|
|
// Dimensions (eg: 'DATE(foo), status')
|
|
Dimensions string
|
|
|
|
// Filter GET parameter
|
|
//
|
|
// Filter (eg: 'DATE(foo) > 2010')
|
|
Filter string
|
|
}
|
|
|
|
RecordList struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Summaries GET parameter
|
|
//
|
|
// Record summaries
|
|
Summaries string
|
|
|
|
// Query GET parameter
|
|
//
|
|
// Record filtering query
|
|
Query string
|
|
|
|
// Meta GET parameter
|
|
//
|
|
// Record meta data
|
|
Meta map[string]any
|
|
|
|
// Deleted GET parameter
|
|
//
|
|
// Exclude (0, default), include (1) or return only (2) deleted records
|
|
Deleted uint
|
|
|
|
// Limit GET parameter
|
|
//
|
|
// Limit
|
|
Limit uint
|
|
|
|
// IncTotal GET parameter
|
|
//
|
|
// Include total records counter
|
|
IncTotal bool
|
|
|
|
// IncPageNavigation GET parameter
|
|
//
|
|
// Include page navigation
|
|
IncPageNavigation bool
|
|
|
|
// PageCursor GET parameter
|
|
//
|
|
// Page cursor
|
|
PageCursor string
|
|
|
|
// Sort GET parameter
|
|
//
|
|
// Sort items
|
|
Sort string
|
|
}
|
|
|
|
RecordImportInit struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Upload POST parameter
|
|
//
|
|
// File import
|
|
Upload *multipart.FileHeader
|
|
}
|
|
|
|
RecordImportRun struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// SessionID PATH parameter
|
|
//
|
|
// Import session
|
|
SessionID uint64 `json:",string"`
|
|
|
|
// Fields POST parameter
|
|
//
|
|
// Fields defined by import file
|
|
Fields json.RawMessage
|
|
|
|
// OnError POST parameter
|
|
//
|
|
// What happens if record fails to import
|
|
OnError string
|
|
|
|
// MultiValueDelimiter POST parameter
|
|
//
|
|
// Imported namespace multiValueDelimiter
|
|
MultiValueDelimiter string
|
|
}
|
|
|
|
RecordImportProgress struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// SessionID PATH parameter
|
|
//
|
|
// Import session
|
|
SessionID uint64 `json:",string"`
|
|
}
|
|
|
|
RecordExportInit struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Filename POST parameter
|
|
//
|
|
// Filename to use
|
|
Filename string
|
|
|
|
// Ext POST parameter
|
|
//
|
|
// Export format
|
|
Ext string
|
|
|
|
// Filter POST parameter
|
|
//
|
|
// Filtering condition
|
|
Filter string
|
|
|
|
// Fields POST parameter
|
|
//
|
|
// Fields to export
|
|
Fields []string
|
|
|
|
// Timezone POST parameter
|
|
//
|
|
// Convert times to this timezone
|
|
Timezone string
|
|
|
|
// MultiValueDelimiter POST parameter
|
|
//
|
|
// Multi value delimiter for CSV exports
|
|
MultiValueDelimiter string
|
|
|
|
// WrapMultiValue POST parameter
|
|
//
|
|
// Wrap multi value fields in brackets
|
|
WrapMultiValue string
|
|
|
|
// ResolveRefs POST parameter
|
|
//
|
|
//
|
|
ResolveRefs bool
|
|
|
|
// IncludeRefID POST parameter
|
|
//
|
|
//
|
|
IncludeRefID bool
|
|
}
|
|
|
|
RecordExportPull struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// SessionID PATH parameter
|
|
//
|
|
// Export session ID
|
|
SessionID uint64 `json:",string"`
|
|
|
|
// Filename PATH parameter
|
|
//
|
|
// Filename to use
|
|
Filename string
|
|
|
|
// Ext PATH parameter
|
|
//
|
|
// Export format
|
|
Ext string
|
|
}
|
|
|
|
RecordExport struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Filename PATH parameter
|
|
//
|
|
// Filename to use
|
|
Filename string
|
|
|
|
// Ext PATH parameter
|
|
//
|
|
// Export format
|
|
Ext string
|
|
|
|
// Filter GET parameter
|
|
//
|
|
// Filtering condition
|
|
Filter string
|
|
|
|
// Fields GET parameter
|
|
//
|
|
// Fields to export
|
|
Fields []string
|
|
|
|
// Timezone GET parameter
|
|
//
|
|
// Convert times to this timezone
|
|
Timezone string
|
|
|
|
// MultiValueDelimiter GET parameter
|
|
//
|
|
// Multi value delimiter for CSV exports
|
|
MultiValueDelimiter string
|
|
|
|
// WrapMultiValue GET parameter
|
|
//
|
|
// Wrap multi value fields in brachets
|
|
WrapMultiValue string
|
|
|
|
// ResolveRefs GET parameter
|
|
//
|
|
//
|
|
ResolveRefs bool
|
|
|
|
// IncludeRefID GET parameter
|
|
//
|
|
//
|
|
IncludeRefID bool
|
|
}
|
|
|
|
RecordExec struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Procedure PATH parameter
|
|
//
|
|
// Name of procedure to execute
|
|
Procedure string
|
|
|
|
// Args POST parameter
|
|
//
|
|
// Procedure arguments
|
|
Args []ProcedureArg
|
|
}
|
|
|
|
RecordCreate struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Values POST parameter
|
|
//
|
|
// Record values
|
|
Values types.RecordValueSet
|
|
|
|
// OwnedBy POST parameter
|
|
//
|
|
// Record Owner
|
|
OwnedBy uint64 `json:",string"`
|
|
|
|
// Records POST parameter
|
|
//
|
|
// Records
|
|
Records types.RecordBulkSet
|
|
|
|
// Meta POST parameter
|
|
//
|
|
// Record meta-data
|
|
Meta map[string]any
|
|
}
|
|
|
|
RecordRead struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// RecordID PATH parameter
|
|
//
|
|
// Record ID
|
|
RecordID uint64 `json:",string"`
|
|
}
|
|
|
|
RecordUpdate struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// RecordID PATH parameter
|
|
//
|
|
// Record ID
|
|
RecordID uint64 `json:",string"`
|
|
|
|
// Values POST parameter
|
|
//
|
|
// Record values
|
|
Values types.RecordValueSet
|
|
|
|
// OwnedBy POST parameter
|
|
//
|
|
// Record Owner
|
|
OwnedBy uint64 `json:",string"`
|
|
|
|
// Meta POST parameter
|
|
//
|
|
// Record meta-data
|
|
Meta map[string]any
|
|
|
|
// Records POST parameter
|
|
//
|
|
// Records
|
|
Records types.RecordBulkSet
|
|
|
|
// UpdatedAt POST parameter
|
|
//
|
|
// Last update (or creation) date
|
|
UpdatedAt *time.Time
|
|
}
|
|
|
|
RecordPatch struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Values POST parameter
|
|
//
|
|
// Fields to update and their values
|
|
Values types.RecordValueSet
|
|
|
|
// Query POST parameter
|
|
//
|
|
// Search query for records to operate on
|
|
Query string
|
|
}
|
|
|
|
RecordBulkDelete struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Truncate POST parameter
|
|
//
|
|
// Remove ALL records of a specified module (pending implementation)
|
|
Truncate bool
|
|
|
|
// Query POST parameter
|
|
//
|
|
// Search query for records to operate on
|
|
Query string
|
|
}
|
|
|
|
RecordDelete struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// RecordID PATH parameter
|
|
//
|
|
// Record ID
|
|
RecordID uint64 `json:",string"`
|
|
}
|
|
|
|
RecordUndelete struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// RecordID PATH parameter
|
|
//
|
|
// Record ID
|
|
RecordID uint64 `json:",string"`
|
|
}
|
|
|
|
RecordBulkUndelete struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Query POST parameter
|
|
//
|
|
// Search query for records to operate on
|
|
Query string
|
|
}
|
|
|
|
RecordUpload struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// RecordID POST parameter
|
|
//
|
|
// Record ID
|
|
RecordID uint64 `json:",string"`
|
|
|
|
// FieldName POST parameter
|
|
//
|
|
// Field name
|
|
FieldName string
|
|
|
|
// Upload POST parameter
|
|
//
|
|
// File to upload
|
|
Upload *multipart.FileHeader
|
|
}
|
|
|
|
RecordTriggerScript struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// RecordID PATH parameter
|
|
//
|
|
// ID
|
|
RecordID uint64 `json:",string"`
|
|
|
|
// Script POST parameter
|
|
//
|
|
// Script to execute
|
|
Script string
|
|
|
|
// Values POST parameter
|
|
//
|
|
// Record values
|
|
Values types.RecordValueSet
|
|
}
|
|
|
|
RecordTriggerScriptOnList struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// Script POST parameter
|
|
//
|
|
// Script to execute
|
|
Script string
|
|
|
|
// Args POST parameter
|
|
//
|
|
// Arguments to pass to the script
|
|
Args map[string]interface{}
|
|
}
|
|
|
|
RecordRevisions struct {
|
|
// NamespaceID PATH parameter
|
|
//
|
|
// Namespace ID
|
|
NamespaceID uint64 `json:",string"`
|
|
|
|
// ModuleID PATH parameter
|
|
//
|
|
// Module ID
|
|
ModuleID uint64 `json:",string"`
|
|
|
|
// RecordID PATH parameter
|
|
//
|
|
// ID
|
|
RecordID uint64 `json:",string"`
|
|
|
|
// Sort GET parameter
|
|
//
|
|
// Sort order
|
|
Sort string
|
|
}
|
|
)
|
|
|
|
// NewRecordReport request
|
|
func NewRecordReport() *RecordReport {
|
|
return &RecordReport{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordReport) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"metrics": r.Metrics,
|
|
"dimensions": r.Dimensions,
|
|
"filter": r.Filter,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordReport) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordReport) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordReport) GetMetrics() string {
|
|
return r.Metrics
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordReport) GetDimensions() string {
|
|
return r.Dimensions
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordReport) GetFilter() string {
|
|
return r.Filter
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordReport) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
// GET params
|
|
tmp := req.URL.Query()
|
|
|
|
if val, ok := tmp["metrics"]; ok && len(val) > 0 {
|
|
r.Metrics, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["dimensions"]; ok && len(val) > 0 {
|
|
r.Dimensions, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["filter"]; ok && len(val) > 0 {
|
|
r.Filter, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordList request
|
|
func NewRecordList() *RecordList {
|
|
return &RecordList{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"summaries": r.Summaries,
|
|
"query": r.Query,
|
|
"meta": r.Meta,
|
|
"deleted": r.Deleted,
|
|
"limit": r.Limit,
|
|
"incTotal": r.IncTotal,
|
|
"incPageNavigation": r.IncPageNavigation,
|
|
"pageCursor": r.PageCursor,
|
|
"sort": r.Sort,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetSummaries() string {
|
|
return r.Summaries
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetQuery() string {
|
|
return r.Query
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetMeta() map[string]any {
|
|
return r.Meta
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetDeleted() uint {
|
|
return r.Deleted
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetLimit() uint {
|
|
return r.Limit
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetIncTotal() bool {
|
|
return r.IncTotal
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetIncPageNavigation() bool {
|
|
return r.IncPageNavigation
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetPageCursor() string {
|
|
return r.PageCursor
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordList) GetSort() string {
|
|
return r.Sort
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordList) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
// GET params
|
|
tmp := req.URL.Query()
|
|
|
|
if val, ok := tmp["summaries"]; ok && len(val) > 0 {
|
|
r.Summaries, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["query"]; ok && len(val) > 0 {
|
|
r.Query, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["meta[]"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := tmp["meta"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["deleted"]; ok && len(val) > 0 {
|
|
r.Deleted, err = payload.ParseUint(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["limit"]; ok && len(val) > 0 {
|
|
r.Limit, err = payload.ParseUint(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["incTotal"]; ok && len(val) > 0 {
|
|
r.IncTotal, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["incPageNavigation"]; ok && len(val) > 0 {
|
|
r.IncPageNavigation, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["pageCursor"]; ok && len(val) > 0 {
|
|
r.PageCursor, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["sort"]; ok && len(val) > 0 {
|
|
r.Sort, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordImportInit request
|
|
func NewRecordImportInit() *RecordImportInit {
|
|
return &RecordImportInit{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportInit) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"upload": r.Upload,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportInit) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportInit) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportInit) GetUpload() *multipart.FileHeader {
|
|
return r.Upload
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordImportInit) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
// Ignoring upload as its handled in the POST params section
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if _, r.Upload, err = req.FormFile("upload"); err != nil {
|
|
return fmt.Errorf("error processing uploaded file: %w", err)
|
|
}
|
|
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordImportRun request
|
|
func NewRecordImportRun() *RecordImportRun {
|
|
return &RecordImportRun{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportRun) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"sessionID": r.SessionID,
|
|
"fields": r.Fields,
|
|
"onError": r.OnError,
|
|
"multiValueDelimiter": r.MultiValueDelimiter,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportRun) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportRun) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportRun) GetSessionID() uint64 {
|
|
return r.SessionID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportRun) GetFields() json.RawMessage {
|
|
return r.Fields
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportRun) GetOnError() string {
|
|
return r.OnError
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportRun) GetMultiValueDelimiter() string {
|
|
return r.MultiValueDelimiter
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordImportRun) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["fields"]; ok && len(val) > 0 {
|
|
r.Fields, err = json.RawMessage(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["onError"]; ok && len(val) > 0 {
|
|
r.OnError, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["multiValueDelimiter"]; ok && len(val) > 0 {
|
|
r.MultiValueDelimiter, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["fields"]; ok && len(val) > 0 {
|
|
r.Fields, err = json.RawMessage(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["onError"]; ok && len(val) > 0 {
|
|
r.OnError, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["multiValueDelimiter"]; ok && len(val) > 0 {
|
|
r.MultiValueDelimiter, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "sessionID")
|
|
r.SessionID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordImportProgress request
|
|
func NewRecordImportProgress() *RecordImportProgress {
|
|
return &RecordImportProgress{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportProgress) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"sessionID": r.SessionID,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportProgress) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportProgress) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordImportProgress) GetSessionID() uint64 {
|
|
return r.SessionID
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordImportProgress) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "sessionID")
|
|
r.SessionID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordExportInit request
|
|
func NewRecordExportInit() *RecordExportInit {
|
|
return &RecordExportInit{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"filename": r.Filename,
|
|
"ext": r.Ext,
|
|
"filter": r.Filter,
|
|
"fields": r.Fields,
|
|
"timezone": r.Timezone,
|
|
"multiValueDelimiter": r.MultiValueDelimiter,
|
|
"wrapMultiValue": r.WrapMultiValue,
|
|
"resolveRefs": r.ResolveRefs,
|
|
"includeRefID": r.IncludeRefID,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetFilename() string {
|
|
return r.Filename
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetExt() string {
|
|
return r.Ext
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetFilter() string {
|
|
return r.Filter
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetFields() []string {
|
|
return r.Fields
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetTimezone() string {
|
|
return r.Timezone
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetMultiValueDelimiter() string {
|
|
return r.MultiValueDelimiter
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetWrapMultiValue() string {
|
|
return r.WrapMultiValue
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetResolveRefs() bool {
|
|
return r.ResolveRefs
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportInit) GetIncludeRefID() bool {
|
|
return r.IncludeRefID
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordExportInit) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["filename"]; ok && len(val) > 0 {
|
|
r.Filename, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["ext"]; ok && len(val) > 0 {
|
|
r.Ext, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["filter"]; ok && len(val) > 0 {
|
|
r.Filter, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["timezone"]; ok && len(val) > 0 {
|
|
r.Timezone, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["multiValueDelimiter"]; ok && len(val) > 0 {
|
|
r.MultiValueDelimiter, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["wrapMultiValue"]; ok && len(val) > 0 {
|
|
r.WrapMultiValue, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["resolveRefs"]; ok && len(val) > 0 {
|
|
r.ResolveRefs, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["includeRefID"]; ok && len(val) > 0 {
|
|
r.IncludeRefID, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["filename"]; ok && len(val) > 0 {
|
|
r.Filename, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["ext"]; ok && len(val) > 0 {
|
|
r.Ext, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["filter"]; ok && len(val) > 0 {
|
|
r.Filter, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
//if val, ok := req.Form["fields[]"]; ok && len(val) > 0 {
|
|
// r.Fields, err = val, nil
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
//}
|
|
|
|
if val, ok := req.Form["timezone"]; ok && len(val) > 0 {
|
|
r.Timezone, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["multiValueDelimiter"]; ok && len(val) > 0 {
|
|
r.MultiValueDelimiter, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["wrapMultiValue"]; ok && len(val) > 0 {
|
|
r.WrapMultiValue, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["resolveRefs"]; ok && len(val) > 0 {
|
|
r.ResolveRefs, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["includeRefID"]; ok && len(val) > 0 {
|
|
r.IncludeRefID, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordExportPull request
|
|
func NewRecordExportPull() *RecordExportPull {
|
|
return &RecordExportPull{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportPull) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"sessionID": r.SessionID,
|
|
"filename": r.Filename,
|
|
"ext": r.Ext,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportPull) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportPull) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportPull) GetSessionID() uint64 {
|
|
return r.SessionID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportPull) GetFilename() string {
|
|
return r.Filename
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExportPull) GetExt() string {
|
|
return r.Ext
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordExportPull) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "sessionID")
|
|
r.SessionID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "filename")
|
|
r.Filename, err = val, nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "ext")
|
|
r.Ext, err = val, nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordExport request
|
|
func NewRecordExport() *RecordExport {
|
|
return &RecordExport{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"filename": r.Filename,
|
|
"ext": r.Ext,
|
|
"filter": r.Filter,
|
|
"fields": r.Fields,
|
|
"timezone": r.Timezone,
|
|
"multiValueDelimiter": r.MultiValueDelimiter,
|
|
"wrapMultiValue": r.WrapMultiValue,
|
|
"resolveRefs": r.ResolveRefs,
|
|
"includeRefID": r.IncludeRefID,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetFilename() string {
|
|
return r.Filename
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetExt() string {
|
|
return r.Ext
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetFilter() string {
|
|
return r.Filter
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetFields() []string {
|
|
return r.Fields
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetTimezone() string {
|
|
return r.Timezone
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetMultiValueDelimiter() string {
|
|
return r.MultiValueDelimiter
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetWrapMultiValue() string {
|
|
return r.WrapMultiValue
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetResolveRefs() bool {
|
|
return r.ResolveRefs
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExport) GetIncludeRefID() bool {
|
|
return r.IncludeRefID
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordExport) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
// GET params
|
|
tmp := req.URL.Query()
|
|
|
|
if val, ok := tmp["filter"]; ok && len(val) > 0 {
|
|
r.Filter, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["fields[]"]; ok {
|
|
r.Fields, err = val, nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := tmp["fields"]; ok {
|
|
r.Fields, err = val, nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["timezone"]; ok && len(val) > 0 {
|
|
r.Timezone, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["multiValueDelimiter"]; ok && len(val) > 0 {
|
|
r.MultiValueDelimiter, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["wrapMultiValue"]; ok && len(val) > 0 {
|
|
r.WrapMultiValue, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["resolveRefs"]; ok && len(val) > 0 {
|
|
r.ResolveRefs, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["includeRefID"]; ok && len(val) > 0 {
|
|
r.IncludeRefID, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "filename")
|
|
r.Filename, err = val, nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "ext")
|
|
r.Ext, err = val, nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordExec request
|
|
func NewRecordExec() *RecordExec {
|
|
return &RecordExec{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExec) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"procedure": r.Procedure,
|
|
"args": r.Args,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExec) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExec) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExec) GetProcedure() string {
|
|
return r.Procedure
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordExec) GetArgs() []ProcedureArg {
|
|
return r.Args
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordExec) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
//if val, ok := req.Form["args[]"]; ok && len(val) > 0 {
|
|
// r.Args, err = []ProcedureArg(val), nil
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
//}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "procedure")
|
|
r.Procedure, err = val, nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordCreate request
|
|
func NewRecordCreate() *RecordCreate {
|
|
return &RecordCreate{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordCreate) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"values": r.Values,
|
|
"ownedBy": r.OwnedBy,
|
|
"records": r.Records,
|
|
"meta": r.Meta,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordCreate) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordCreate) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordCreate) GetValues() types.RecordValueSet {
|
|
return r.Values
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordCreate) GetOwnedBy() uint64 {
|
|
return r.OwnedBy
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordCreate) GetRecords() types.RecordBulkSet {
|
|
return r.Records
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordCreate) GetMeta() map[string]any {
|
|
return r.Meta
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordCreate) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["ownedBy"]; ok && len(val) > 0 {
|
|
r.OwnedBy, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["meta[]"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["meta"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
//if val, ok := req.Form["values[]"]; ok && len(val) > 0 {
|
|
// r.Values, err = types.RecordValueSet(val), nil
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
//}
|
|
|
|
if val, ok := req.Form["ownedBy"]; ok && len(val) > 0 {
|
|
r.OwnedBy, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
//if val, ok := req.Form["records[]"]; ok && len(val) > 0 {
|
|
// r.Records, err = types.RecordBulkSet(val), nil
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
//}
|
|
|
|
if val, ok := req.Form["meta[]"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["meta"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordRead request
|
|
func NewRecordRead() *RecordRead {
|
|
return &RecordRead{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordRead) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"recordID": r.RecordID,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordRead) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordRead) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordRead) GetRecordID() uint64 {
|
|
return r.RecordID
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordRead) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "recordID")
|
|
r.RecordID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordUpdate request
|
|
func NewRecordUpdate() *RecordUpdate {
|
|
return &RecordUpdate{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpdate) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"recordID": r.RecordID,
|
|
"values": r.Values,
|
|
"ownedBy": r.OwnedBy,
|
|
"meta": r.Meta,
|
|
"records": r.Records,
|
|
"updatedAt": r.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpdate) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpdate) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpdate) GetRecordID() uint64 {
|
|
return r.RecordID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpdate) GetValues() types.RecordValueSet {
|
|
return r.Values
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpdate) GetOwnedBy() uint64 {
|
|
return r.OwnedBy
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpdate) GetMeta() map[string]any {
|
|
return r.Meta
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpdate) GetRecords() types.RecordBulkSet {
|
|
return r.Records
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpdate) GetUpdatedAt() *time.Time {
|
|
return r.UpdatedAt
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordUpdate) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["ownedBy"]; ok && len(val) > 0 {
|
|
r.OwnedBy, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["meta[]"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["meta"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["updatedAt"]; ok && len(val) > 0 {
|
|
r.UpdatedAt, err = payload.ParseISODatePtrWithErr(val[0])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
//if val, ok := req.Form["values[]"]; ok && len(val) > 0 {
|
|
// r.Values, err = types.RecordValueSet(val), nil
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
//}
|
|
|
|
if val, ok := req.Form["ownedBy"]; ok && len(val) > 0 {
|
|
r.OwnedBy, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["meta[]"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["meta"]; ok {
|
|
r.Meta, err = payload.ParseMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
//if val, ok := req.Form["records[]"]; ok && len(val) > 0 {
|
|
// r.Records, err = types.RecordBulkSet(val), nil
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
//}
|
|
|
|
if val, ok := req.Form["updatedAt"]; ok && len(val) > 0 {
|
|
r.UpdatedAt, err = payload.ParseISODatePtrWithErr(val[0])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "recordID")
|
|
r.RecordID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordPatch request
|
|
func NewRecordPatch() *RecordPatch {
|
|
return &RecordPatch{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordPatch) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"values": r.Values,
|
|
"query": r.Query,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordPatch) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordPatch) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordPatch) GetValues() types.RecordValueSet {
|
|
return r.Values
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordPatch) GetQuery() string {
|
|
return r.Query
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordPatch) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["query"]; ok && len(val) > 0 {
|
|
r.Query, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
//if val, ok := req.Form["values[]"]; ok && len(val) > 0 {
|
|
// r.Values, err = types.RecordValueSet(val), nil
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
//}
|
|
|
|
if val, ok := req.Form["query"]; ok && len(val) > 0 {
|
|
r.Query, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordBulkDelete request
|
|
func NewRecordBulkDelete() *RecordBulkDelete {
|
|
return &RecordBulkDelete{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordBulkDelete) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"truncate": r.Truncate,
|
|
"query": r.Query,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordBulkDelete) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordBulkDelete) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordBulkDelete) GetTruncate() bool {
|
|
return r.Truncate
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordBulkDelete) GetQuery() string {
|
|
return r.Query
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordBulkDelete) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["truncate"]; ok && len(val) > 0 {
|
|
r.Truncate, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["query"]; ok && len(val) > 0 {
|
|
r.Query, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["truncate"]; ok && len(val) > 0 {
|
|
r.Truncate, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["query"]; ok && len(val) > 0 {
|
|
r.Query, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordDelete request
|
|
func NewRecordDelete() *RecordDelete {
|
|
return &RecordDelete{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordDelete) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"recordID": r.RecordID,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordDelete) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordDelete) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordDelete) GetRecordID() uint64 {
|
|
return r.RecordID
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordDelete) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "recordID")
|
|
r.RecordID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordUndelete request
|
|
func NewRecordUndelete() *RecordUndelete {
|
|
return &RecordUndelete{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUndelete) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"recordID": r.RecordID,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUndelete) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUndelete) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUndelete) GetRecordID() uint64 {
|
|
return r.RecordID
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordUndelete) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "recordID")
|
|
r.RecordID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordBulkUndelete request
|
|
func NewRecordBulkUndelete() *RecordBulkUndelete {
|
|
return &RecordBulkUndelete{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordBulkUndelete) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"query": r.Query,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordBulkUndelete) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordBulkUndelete) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordBulkUndelete) GetQuery() string {
|
|
return r.Query
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordBulkUndelete) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["query"]; ok && len(val) > 0 {
|
|
r.Query, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["query"]; ok && len(val) > 0 {
|
|
r.Query, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordUpload request
|
|
func NewRecordUpload() *RecordUpload {
|
|
return &RecordUpload{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpload) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"recordID": r.RecordID,
|
|
"fieldName": r.FieldName,
|
|
"upload": r.Upload,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpload) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpload) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpload) GetRecordID() uint64 {
|
|
return r.RecordID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpload) GetFieldName() string {
|
|
return r.FieldName
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordUpload) GetUpload() *multipart.FileHeader {
|
|
return r.Upload
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordUpload) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["recordID"]; ok && len(val) > 0 {
|
|
r.RecordID, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["fieldName"]; ok && len(val) > 0 {
|
|
r.FieldName, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
// Ignoring upload as its handled in the POST params section
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["recordID"]; ok && len(val) > 0 {
|
|
r.RecordID, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["fieldName"]; ok && len(val) > 0 {
|
|
r.FieldName, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if _, r.Upload, err = req.FormFile("upload"); err != nil {
|
|
return fmt.Errorf("error processing uploaded file: %w", err)
|
|
}
|
|
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordTriggerScript request
|
|
func NewRecordTriggerScript() *RecordTriggerScript {
|
|
return &RecordTriggerScript{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScript) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"recordID": r.RecordID,
|
|
"script": r.Script,
|
|
"values": r.Values,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScript) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScript) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScript) GetRecordID() uint64 {
|
|
return r.RecordID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScript) GetScript() string {
|
|
return r.Script
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScript) GetValues() types.RecordValueSet {
|
|
return r.Values
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordTriggerScript) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["script"]; ok && len(val) > 0 {
|
|
r.Script, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["script"]; ok && len(val) > 0 {
|
|
r.Script, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
//if val, ok := req.Form["values[]"]; ok && len(val) > 0 {
|
|
// r.Values, err = types.RecordValueSet(val), nil
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
//}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "recordID")
|
|
r.RecordID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordTriggerScriptOnList request
|
|
func NewRecordTriggerScriptOnList() *RecordTriggerScriptOnList {
|
|
return &RecordTriggerScriptOnList{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScriptOnList) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"script": r.Script,
|
|
"args": r.Args,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScriptOnList) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScriptOnList) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScriptOnList) GetScript() string {
|
|
return r.Script
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordTriggerScriptOnList) GetArgs() map[string]interface{} {
|
|
return r.Args
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordTriggerScriptOnList) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["script"]; ok && len(val) > 0 {
|
|
r.Script, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["args[]"]; ok {
|
|
r.Args, err = parseMapStringInterface(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["args"]; ok {
|
|
r.Args, err = parseMapStringInterface(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["script"]; ok && len(val) > 0 {
|
|
r.Script, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["args[]"]; ok {
|
|
r.Args, err = parseMapStringInterface(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["args"]; ok {
|
|
r.Args, err = parseMapStringInterface(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewRecordRevisions request
|
|
func NewRecordRevisions() *RecordRevisions {
|
|
return &RecordRevisions{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordRevisions) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"namespaceID": r.NamespaceID,
|
|
"moduleID": r.ModuleID,
|
|
"recordID": r.RecordID,
|
|
"sort": r.Sort,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordRevisions) GetNamespaceID() uint64 {
|
|
return r.NamespaceID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordRevisions) GetModuleID() uint64 {
|
|
return r.ModuleID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordRevisions) GetRecordID() uint64 {
|
|
return r.RecordID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r RecordRevisions) GetSort() string {
|
|
return r.Sort
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *RecordRevisions) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
// GET params
|
|
tmp := req.URL.Query()
|
|
|
|
if val, ok := tmp["sort"]; ok && len(val) > 0 {
|
|
r.Sort, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "namespaceID")
|
|
r.NamespaceID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "moduleID")
|
|
r.ModuleID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
val = chi.URLParam(req, "recordID")
|
|
r.RecordID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|