Documentation
¶
Index ¶
- func CreateHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
- func DeleteHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
- func ListHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
- type FilterOptions
- type Model
- type MySQLRepository
- func (repo MySQLRepository) Create(ctx context.Context, model Model) (int64, error)
- func (repo MySQLRepository) DeleteAllByObject(ctx context.Context, objectType string, objectId string) error
- func (repo MySQLRepository) DeleteAllBySubject(ctx context.Context, subjectType string, subjectId string) error
- func (repo MySQLRepository) DeleteById(ctx context.Context, id int64) error
- func (repo MySQLRepository) GetAllMatchingObjectAndRelation(ctx context.Context, objectType string, objectId string, relation string) ([]Model, error)
- func (repo MySQLRepository) GetAllMatchingObjectAndRelationBySubjectType(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo MySQLRepository) GetAllMatchingObjectRelationAndSubject(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo MySQLRepository) List(ctx context.Context, filterOptions *FilterOptions, ...) ([]Model, error)
- type PostgresRepository
- func (repo PostgresRepository) Create(ctx context.Context, model Model) (int64, error)
- func (repo PostgresRepository) DeleteAllByObject(ctx context.Context, objectType string, objectId string) error
- func (repo PostgresRepository) DeleteAllBySubject(ctx context.Context, subjectType string, subjectId string) error
- func (repo PostgresRepository) DeleteById(ctx context.Context, id int64) error
- func (repo PostgresRepository) GetAllMatchingObjectAndRelation(ctx context.Context, objectType string, objectId string, relation string) ([]Model, error)
- func (repo PostgresRepository) GetAllMatchingObjectAndRelationBySubjectType(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo PostgresRepository) GetAllMatchingObjectRelationAndSubject(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo PostgresRepository) List(ctx context.Context, filterOptions *FilterOptions, ...) ([]Model, error)
- type SQLiteRepository
- func (repo SQLiteRepository) Create(ctx context.Context, model Model) (int64, error)
- func (repo SQLiteRepository) DeleteAllByObject(ctx context.Context, objectType string, objectId string) error
- func (repo SQLiteRepository) DeleteAllBySubject(ctx context.Context, subjectType string, subjectId string) error
- func (repo SQLiteRepository) DeleteById(ctx context.Context, id int64) error
- func (repo SQLiteRepository) GetAllMatchingObjectAndRelation(ctx context.Context, objectType string, objectId string, relation string) ([]Model, error)
- func (repo SQLiteRepository) GetAllMatchingObjectAndRelationBySubjectType(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo SQLiteRepository) GetAllMatchingObjectRelationAndSubject(ctx context.Context, objectType string, objectId string, relation string, ...) ([]Model, error)
- func (repo SQLiteRepository) List(ctx context.Context, filterOptions *FilterOptions, ...) ([]Model, error)
- type SortOptions
- type SubjectSpec
- type Warrant
- func (warrant Warrant) GetCreatedAt() time.Time
- func (warrant Warrant) GetDeletedAt() *time.Time
- func (warrant Warrant) GetID() int64
- func (warrant Warrant) GetObjectId() string
- func (warrant Warrant) GetObjectType() string
- func (warrant Warrant) GetPolicy() string
- func (warrant Warrant) GetPolicyHash() string
- func (warrant Warrant) GetRelation() string
- func (warrant Warrant) GetSubjectId() string
- func (warrant Warrant) GetSubjectRelation() string
- func (warrant Warrant) GetSubjectType() string
- func (warrant Warrant) GetUpdatedAt() time.Time
- func (warrant Warrant) String() string
- func (warrant Warrant) ToWarrantSpec() *WarrantSpec
- type WarrantListParamParser
- type WarrantRepository
- type WarrantService
- func (svc WarrantService) Create(ctx context.Context, warrantSpec WarrantSpec) (*WarrantSpec, error)
- func (svc WarrantService) Delete(ctx context.Context, warrantSpec WarrantSpec) error
- func (svc WarrantService) DeleteRelatedWarrants(ctx context.Context, objectType string, objectId string) error
- func (svc WarrantService) List(ctx context.Context, filterOptions *FilterOptions, ...) ([]*WarrantSpec, error)
- func (svc WarrantService) Routes() ([]service.Route, error)
- type WarrantSpec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateHandler ¶ added in v0.11.0
func CreateHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
func DeleteHandler ¶ added in v0.11.0
func DeleteHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
func ListHandler ¶ added in v0.11.0
func ListHandler(svc WarrantService, w http.ResponseWriter, r *http.Request) error
Types ¶
type FilterOptions ¶
type FilterOptions struct {
ObjectType string
ObjectId string
Relation string
Subject *SubjectSpec
ObjectIds []string
SubjectIds []string
}
FilterOptions type for the filter options available on the warrant table
type Model ¶ added in v0.8.0
type Model interface {
GetID() int64
GetObjectType() string
GetObjectId() string
GetRelation() string
GetSubjectType() string
GetSubjectId() string
GetSubjectRelation() string
GetPolicy() string
GetPolicyHash() string
GetCreatedAt() time.Time
GetUpdatedAt() time.Time
GetDeletedAt() *time.Time
ToWarrantSpec() *WarrantSpec
String() string
}
type MySQLRepository ¶
type MySQLRepository struct {
database.SQLRepository
}
func NewMySQLRepository ¶
func NewMySQLRepository(db *database.MySQL) MySQLRepository
func (MySQLRepository) DeleteAllByObject ¶
func (MySQLRepository) DeleteAllBySubject ¶
func (MySQLRepository) DeleteById ¶
func (repo MySQLRepository) DeleteById(ctx context.Context, id int64) error
func (MySQLRepository) GetAllMatchingObjectAndRelation ¶
func (MySQLRepository) GetAllMatchingObjectAndRelationBySubjectType ¶ added in v0.16.1
func (MySQLRepository) GetAllMatchingObjectRelationAndSubject ¶ added in v0.18.0
func (MySQLRepository) List ¶
func (repo MySQLRepository) List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]Model, error)
type PostgresRepository ¶ added in v0.4.0
type PostgresRepository struct {
database.SQLRepository
}
func NewPostgresRepository ¶ added in v0.4.0
func NewPostgresRepository(db *database.Postgres) PostgresRepository
func (PostgresRepository) DeleteAllByObject ¶ added in v0.4.0
func (PostgresRepository) DeleteAllBySubject ¶ added in v0.4.0
func (PostgresRepository) DeleteById ¶ added in v0.4.0
func (repo PostgresRepository) DeleteById(ctx context.Context, id int64) error
func (PostgresRepository) GetAllMatchingObjectAndRelation ¶ added in v0.4.0
func (PostgresRepository) GetAllMatchingObjectAndRelationBySubjectType ¶ added in v0.16.1
func (PostgresRepository) GetAllMatchingObjectRelationAndSubject ¶ added in v0.18.0
func (PostgresRepository) List ¶ added in v0.4.0
func (repo PostgresRepository) List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]Model, error)
type SQLiteRepository ¶ added in v0.11.0
type SQLiteRepository struct {
database.SQLRepository
}
func NewSQLiteRepository ¶ added in v0.11.0
func NewSQLiteRepository(db *database.SQLite) SQLiteRepository
func (SQLiteRepository) DeleteAllByObject ¶ added in v0.11.0
func (SQLiteRepository) DeleteAllBySubject ¶ added in v0.11.0
func (SQLiteRepository) DeleteById ¶ added in v0.11.0
func (repo SQLiteRepository) DeleteById(ctx context.Context, id int64) error
func (SQLiteRepository) GetAllMatchingObjectAndRelation ¶ added in v0.11.0
func (SQLiteRepository) GetAllMatchingObjectAndRelationBySubjectType ¶ added in v0.16.1
func (SQLiteRepository) GetAllMatchingObjectRelationAndSubject ¶ added in v0.18.0
func (SQLiteRepository) List ¶ added in v0.11.0
func (repo SQLiteRepository) List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]Model, error)
type SortOptions ¶
SortOptions type for sorting filtered results from the warrant table
type SubjectSpec ¶
type SubjectSpec struct {
ObjectType string `json:"objectType,omitempty" validate:"required_with=ObjectId,valid_object_type"`
ObjectId string `json:"objectId,omitempty" validate:"required_with=ObjectType,valid_object_id"`
Relation string `json:"relation,omitempty" validate:"omitempty,valid_relation"`
}
func StringToSubjectSpec ¶
func StringToSubjectSpec(str string) (*SubjectSpec, error)
func (*SubjectSpec) String ¶
func (spec *SubjectSpec) String() string
type Warrant ¶
type Warrant struct {
ID int64 `mysql:"id" postgres:"id" sqlite:"id"`
ObjectType string `mysql:"objectType" postgres:"object_type" sqlite:"objectType"`
ObjectId string `mysql:"objectId" postgres:"object_id" sqlite:"objectId"`
Relation string `mysql:"relation" postgres:"relation" sqlite:"relation"`
SubjectType string `mysql:"subjectType" postgres:"subject_type" sqlite:"subjectType"`
SubjectId string `mysql:"subjectId" postgres:"subject_id" sqlite:"subjectId"`
SubjectRelation string `mysql:"subjectRelation" postgres:"subject_relation" sqlite:"subjectRelation"`
Policy string `mysql:"policy" postgres:"policy" sqlite:"policy"`
PolicyHash string `mysql:"policyHash" postgres:"policy_hash" sqlite:"policyHash"`
CreatedAt time.Time `mysql:"createdAt" postgres:"created_at" sqlite:"createdAt"`
UpdatedAt time.Time `mysql:"updatedAt" postgres:"updated_at" sqlite:"updatedAt"`
DeletedAt *time.Time `mysql:"deletedAt" postgres:"deleted_at" sqlite:"deletedAt"`
}
func StringToWarrant ¶
func (Warrant) GetCreatedAt ¶ added in v0.8.0
func (Warrant) GetDeletedAt ¶ added in v0.8.0
func (Warrant) GetObjectId ¶ added in v0.8.0
func (Warrant) GetObjectType ¶ added in v0.8.0
func (Warrant) GetPolicyHash ¶ added in v0.18.0
func (Warrant) GetRelation ¶ added in v0.8.0
func (Warrant) GetSubjectId ¶ added in v0.8.0
func (Warrant) GetSubjectRelation ¶ added in v0.8.0
func (Warrant) GetSubjectType ¶ added in v0.8.0
func (Warrant) GetUpdatedAt ¶ added in v0.8.0
func (Warrant) ToWarrantSpec ¶
func (warrant Warrant) ToWarrantSpec() *WarrantSpec
type WarrantListParamParser ¶
type WarrantListParamParser struct{}
func (WarrantListParamParser) GetDefaultSortBy ¶
func (parser WarrantListParamParser) GetDefaultSortBy() string
func (WarrantListParamParser) GetSupportedSortBys ¶
func (parser WarrantListParamParser) GetSupportedSortBys() []string
func (WarrantListParamParser) ParseValue ¶
func (parser WarrantListParamParser) ParseValue(val string, sortBy string) (interface{}, error)
type WarrantRepository ¶
type WarrantRepository interface {
Create(ctx context.Context, warrant Model) (int64, error)
GetAllMatchingObjectRelationAndSubject(ctx context.Context, objectType string, objectId string, relation string, subjectType string, subjectId string, subjectRelation string) ([]Model, error)
GetAllMatchingObjectAndRelation(ctx context.Context, objectType string, objectId string, relation string) ([]Model, error)
GetAllMatchingObjectAndRelationBySubjectType(ctx context.Context, objectType string, objectId string, relation string, subjectType string) ([]Model, error)
List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]Model, error)
DeleteById(ctx context.Context, id int64) error
DeleteAllByObject(ctx context.Context, objectType string, objectId string) error
DeleteAllBySubject(ctx context.Context, subjectType string, subjectId string) error
// contains filtered or unexported methods
}
func NewRepository ¶
func NewRepository(db database.Database) (WarrantRepository, error)
type WarrantService ¶
type WarrantService struct {
service.BaseService
Repository WarrantRepository
EventSvc event.EventService
ObjectTypeSvc objecttype.ObjectTypeService
}
func NewService ¶
func NewService(env service.Env, repository WarrantRepository, eventSvc event.EventService, objectTypeSvc objecttype.ObjectTypeService) WarrantService
func (WarrantService) Create ¶
func (svc WarrantService) Create(ctx context.Context, warrantSpec WarrantSpec) (*WarrantSpec, error)
func (WarrantService) Delete ¶
func (svc WarrantService) Delete(ctx context.Context, warrantSpec WarrantSpec) error
func (WarrantService) DeleteRelatedWarrants ¶
func (WarrantService) List ¶
func (svc WarrantService) List(ctx context.Context, filterOptions *FilterOptions, listParams service.ListParams) ([]*WarrantSpec, error)
type WarrantSpec ¶
type WarrantSpec struct {
ObjectType string `json:"objectType" validate:"required,valid_object_type"`
ObjectId string `json:"objectId" validate:"required,valid_object_id"`
Relation string `json:"relation" validate:"required,valid_relation"`
Subject *SubjectSpec `json:"subject" validate:"required"`
Policy string `json:"policy,omitempty"`
CreatedAt time.Time `json:"createdAt"`
}
func StringToWarrantSpec ¶
func StringToWarrantSpec(warrantString string) (*WarrantSpec, error)
func (WarrantSpec) String ¶
func (spec WarrantSpec) String() string
func (*WarrantSpec) ToMap ¶
func (spec *WarrantSpec) ToMap() map[string]interface{}
func (*WarrantSpec) ToWarrant ¶
func (spec *WarrantSpec) ToWarrant() (*Warrant, error)
Click to show internal directories.
Click to hide internal directories.