repository

package
v0.0.0-...-833fa1d Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package repository implements methods of working with the repository objects

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidRoleList error in case of invalid role list
	ErrInvalidRoleList = errors.New(`invalid role list, check your permissions`)

	// ErrAccountHaveToHaveAdmin error in case of no any admin in account
	ErrAccountHaveToHaveAdmin = errors.New(`account must have at least one admin`)
)

Functions

This section is empty.

Types

type Repository

type Repository struct {
	repository.Repository
	// contains filtered or unexported fields
}

Repository DAO which provides functionality of working with accounts

func New

func New() *Repository

New account repository

func (*Repository) Count

func (r *Repository) Count(ctx context.Context, filter *account.Filter) (int64, error)

Count returns count of accounts by filter

func (*Repository) CountMembers

func (r *Repository) CountMembers(ctx context.Context, filter *account.MemberFilter) (int64, error)

CountMembers returns the count of members from account

func (*Repository) Create

func (r *Repository) Create(ctx context.Context, accountObj *model.Account) (uint64, error)

Create new object into database

func (*Repository) Delete

func (r *Repository) Delete(ctx context.Context, id uint64) error

Delete delites record by ID

func (*Repository) FetchList

func (r *Repository) FetchList(ctx context.Context, filter *account.Filter, order *account.ListOrder, pagination *repository.Pagination) ([]*model.Account, error)

FetchList returns list of accounts by filter

func (*Repository) FetchListMembers

func (r *Repository) FetchListMembers(ctx context.Context, filter *account.MemberFilter, order *account.MemberListOrder, pagination *repository.Pagination) ([]*model.AccountMember, error)

FetchListMembers returns the list of members from account

func (*Repository) Get

func (r *Repository) Get(ctx context.Context, id uint64) (*model.Account, error)

Get returns account model by ID

func (*Repository) GetByTitle

func (r *Repository) GetByTitle(ctx context.Context, title string) (*model.Account, error)

GetByTitle returns account model by title

func (*Repository) IsAdmin

func (r *Repository) IsAdmin(ctx context.Context, userID, accountID uint64) bool

IsAdmin check the user if linked to account as admin

func (*Repository) IsMember

func (r *Repository) IsMember(ctx context.Context, userID, accountID uint64) bool

IsMember check the user if linked to account

func (*Repository) LinkMember

func (r *Repository) LinkMember(ctx context.Context, accountObj *model.Account, isAdmin bool, members ...*model.User) error

LinkMember into account

func (*Repository) LoadPermissions

func (r *Repository) LoadPermissions(ctx context.Context, accountObj *model.Account, userObj *model.User) error

LoadPermissions into account object

func (*Repository) Member

func (r *Repository) Member(ctx context.Context, userID, accountID uint64) (*model.AccountMember, error)

Member returns the member object by account and user

func (*Repository) MemberByID

func (r *Repository) MemberByID(ctx context.Context, id uint64) (*model.AccountMember, error)

MemberByID returns the member object by ID

func (*Repository) SetMemberRoles

func (r *Repository) SetMemberRoles(ctx context.Context, accountObj *model.Account, user *model.User, roles ...string) error

SetMemberRoles into account

func (*Repository) UnlinkMember

func (r *Repository) UnlinkMember(ctx context.Context, accountObj *model.Account, users ...*model.User) error

UnlinkMember from the account

func (*Repository) Update

func (r *Repository) Update(ctx context.Context, id uint64, accountObj *model.Account) error

Update existing object in database

Jump to

Keyboard shortcuts

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