rest

package
v1.41.0 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2026 License: MIT Imports: 24 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