rest

package
v1.36.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 24, 2026 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultPermissions = map[string]Permissions{
	"bundle": Permissions{
		"create": masks(Admin, WriteBundle),
		"delete": masks(Admin, WriteBundle),
		"patch":  masks(Admin, ReadBundle|WriteBundle),
		"update": masks(Admin, ReadBundle|WriteBundle),
		"get":    masks(Admin, ReadBundle),
		"list":   masks(Admin, Bundle),
	},

	"campaign": Permissions{
		"create": masks(Admin, WriteCampaign),
		"delete": masks(Admin, WriteCampaign),
		"patch":  masks(Admin, ReadCampaign|WriteCampaign),
		"update": masks(Admin, ReadCampaign|WriteCampaign),
		"get":    masks(Admin, ReadCampaign),
		"list":   masks(Admin, Campaign),
	},

	"cart": Permissions{
		"create": masks(Admin, Published),
		"delete": masks(Admin),
		"patch":  masks(Admin, Published),
		"update": masks(Admin, Published),
		"get":    masks(Admin),
		"list":   masks(Admin),
	},

	"collection": Permissions{
		"create": masks(Admin, WriteCollection),
		"delete": masks(Admin, WriteCollection),
		"patch":  masks(Admin, ReadCollection|WriteCollection),
		"update": masks(Admin, ReadCollection|WriteCollection),
		"get":    masks(Admin, ReadCollection),
		"list":   masks(Admin, Collection),
	},

	"coupon": Permissions{
		"create": masks(Admin, WriteCoupon),
		"delete": masks(Admin, WriteCoupon),
		"patch":  masks(Admin, ReadCoupon|WriteCoupon),
		"update": masks(Admin, ReadCoupon|WriteCoupon),
		"get":    masks(Admin, ReadCoupon),
		"list":   masks(Admin, Coupon),
	},

	"form": Permissions{
		"create": masks(Admin, WriteForm),
		"delete": masks(Admin, WriteForm),
		"patch":  masks(Admin, ReadForm|WriteForm),
		"update": masks(Admin, ReadForm|WriteForm),
		"get":    masks(Admin, ReadForm),
		"list":   masks(Admin, Form),
	},

	"order": Permissions{
		"create": masks(Admin, WriteOrder),
		"delete": masks(Admin, WriteOrder),
		"patch":  masks(Admin, ReadOrder|WriteOrder),
		"update": masks(Admin, ReadOrder|WriteOrder),
		"get":    masks(Admin, ReadOrder),
		"list":   masks(Admin, Order),
	},

	"organization": Permissions{
		"create": masks(Admin, WriteOrganization),
		"delete": masks(Admin, WriteOrganization),
		"patch":  masks(Admin, ReadOrganization|WriteOrganization),
		"update": masks(Admin, ReadOrganization|WriteOrganization),
		"get":    masks(Admin, ReadOrganization),
		"list":   masks(Admin, Organization),
	},

	"payment": Permissions{
		"create": masks(Admin, WritePayment),
		"delete": masks(Admin, WritePayment),
		"patch":  masks(Admin, ReadPayment|WritePayment),
		"update": masks(Admin, ReadPayment|WritePayment),
		"get":    masks(Admin, ReadPayment),
		"list":   masks(Admin, Payment),
	},

	"plan": Permissions{
		"create": masks(Admin, WritePlan),
		"delete": masks(Admin, WritePlan),
		"patch":  masks(Admin, ReadPlan|WritePlan),
		"update": masks(Admin, ReadPlan|WritePlan),
		"get":    masks(Admin, ReadPlan),
		"list":   masks(Admin, Plan),
	},

	"product": Permissions{
		"create": masks(Admin, WriteProduct),
		"delete": masks(Admin, WriteProduct),
		"patch":  masks(Admin, ReadProduct|WriteProduct),
		"update": masks(Admin, ReadProduct|WriteProduct),
		"get":    masks(Admin, ReadProduct),
		"list":   masks(Admin, Product),
	},

	"referral": Permissions{
		"create": masks(Admin, WriteReferral|Published),
		"delete": masks(Admin, WriteReferral),
		"patch":  masks(Admin, ReadReferral|WriteReferral|Published),
		"update": masks(Admin, ReadReferral|WriteReferral|Published),
		"get":    masks(Admin, ReadReferral),
		"list":   masks(Admin, Referral),
	},

	"referralprogram": Permissions{
		"create": masks(Admin, WriteReferrer),
		"delete": masks(Admin, WriteReferrer),
		"patch":  masks(Admin, ReadReferrer|WriteReferrer),
		"update": masks(Admin, ReadReferrer|WriteReferrer),
		"get":    masks(Admin, ReadReferrer),
		"list":   masks(Admin, Referrer),
	},

	"referrer": Permissions{
		"create": masks(Admin, WriteReferrer),
		"delete": masks(Admin, WriteReferrer),
		"patch":  masks(Admin, ReadReferrer|WriteReferrer),
		"update": masks(Admin, ReadReferrer|WriteReferrer),
		"get":    masks(Admin, ReadReferrer),
		"list":   masks(Admin, Referrer),
	},

	"return": Permissions{
		"create": masks(Admin, WriteReturn),
		"delete": masks(Admin, WriteReturn),
		"patch":  masks(Admin, ReadReturn|WriteReturn),
		"update": masks(Admin, ReadReturn|WriteReturn),
		"get":    masks(Admin, ReadReturn),
		"list":   masks(Admin, Return),
	},

	"store": Permissions{
		"create": masks(Admin, WriteStore),
		"delete": masks(Admin, WriteStore),
		"patch":  masks(Admin, ReadStore|WriteStore),
		"update": masks(Admin, ReadStore|WriteStore),
		"get":    masks(Admin, ReadStore),
		"list":   masks(Admin, Store),
	},

	"subscriber": Permissions{
		"create": masks(Admin, WriteSubscriber),
		"delete": masks(Admin, WriteSubscriber),
		"get":    masks(Admin, ReadSubscriber),
		"list":   masks(Admin, Subscriber),
		"patch":  masks(Admin, ReadSubscriber|WriteSubscriber),
		"update": masks(Admin, ReadSubscriber|WriteSubscriber),
	},

	"user": Permissions{
		"create": masks(Admin, WriteUser),
		"delete": masks(Admin, WriteUser),
		"patch":  masks(Admin, ReadUser|WriteUser),
		"update": masks(Admin, ReadUser|WriteUser),
		"get":    masks(Admin, ReadUser),
		"list":   masks(Admin, User),
	},

	"variant": Permissions{
		"create": masks(Admin, WriteVariant),
		"delete": masks(Admin, WriteVariant),
		"patch":  masks(Admin, ReadVariant|WriteVariant),
		"update": masks(Admin, ReadVariant|WriteVariant),
		"get":    masks(Admin, ReadVariant),
		"list":   masks(Admin, Variant),
	},
}
View Source
var Namespaced = middleware.Namespace()

Functions

func ListRoutes

func ListRoutes() gin.HandlerFunc

Types

type Facets

type Facets struct {
	StringFacets []StringFacet `json:"string"`
	RangeFacets  []RangeFacet  `json:"range"`
}

type Opts

type Opts struct {
	DefaultNamespace bool
	DefaultSortField string
}

type Pagination

type Pagination struct {
	Page    string                 `json:"page,omitempty"`
	Display string                 `json:"display,omitempty"`
	Count   int                    `json:"count"`
	Models  interface{}            `json:"models"`
	Facets  [][]search.FacetResult `json:"facets"`
}

type Permissions

type Permissions map[string][]bit.Mask

type RangeFacet

type RangeFacet struct {
	Name  string `json:"name"`
	Value struct {
		Start float64 `json:"start"`
		End   float64 `json:"end"`
	} `json:"value"`
}

type Rest

type Rest struct {
	DefaultNamespace bool
	DefaultSortField string
	Kind             string
	ParamId          string
	Prefix           string
	Permissions      Permissions
	Get              gin.HandlerFunc
	List             gin.HandlerFunc
	Create           gin.HandlerFunc
	Update           gin.HandlerFunc
	Patch            gin.HandlerFunc
	Delete           gin.HandlerFunc
	MethodOverride   gin.HandlerFunc
	// contains filtered or unexported fields
}

func New

func New(entityOrPrefix interface{}, args ...interface{}) *Rest

func (Rest) CheckPermissions

func (r Rest) CheckPermissions(c *gin.Context, method string) bool

func (Rest) DELETE

func (r Rest) DELETE(url string, handlers ...gin.HandlerFunc)

func (Rest) Fail

func (r Rest) Fail(c *gin.Context, status int, message interface{}, err error)

func (Rest) GET

func (r Rest) GET(url string, handlers ...gin.HandlerFunc)

func (Rest) HEAD

func (r Rest) HEAD(url string, handlers ...gin.HandlerFunc)

func (Rest) Handle

func (r Rest) Handle(method, url string, handlers []gin.HandlerFunc)

func (*Rest) Init

func (r *Rest) Init(prefix string)

func (*Rest) InitModel

func (r *Rest) InitModel(entity mixin.Kind)
func (r Rest) LINK(url string, handlers ...gin.HandlerFunc)

func (Rest) OPTIONS

func (r Rest) OPTIONS(url string, handlers ...gin.HandlerFunc)

func (Rest) PATCH

func (r Rest) PATCH(url string, handlers ...gin.HandlerFunc)

func (Rest) POST

func (r Rest) POST(url string, handlers ...gin.HandlerFunc)

func (Rest) PUT

func (r Rest) PUT(url string, handlers ...gin.HandlerFunc)

func (Rest) Render

func (r Rest) Render(c *gin.Context, status int, data interface{})

func (Rest) Route

func (r Rest) Route(router router.Router, mw ...gin.HandlerFunc)
func (r Rest) UNLINK(url string, handlers ...gin.HandlerFunc)

func (Rest) Use

func (r Rest) Use(handlers ...gin.HandlerFunc)

type StringFacet

type StringFacet struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

These 3 facet structs are used for deserialization

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL