Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidID is returned when the analytics ID is invalid. ID should be greater than 0. ErrInvalidID = errors.New("invalid id") // ErrInvalidParticipantID is returned when the analytics participant ID is invalid. Participant ID should be greater than 0. ErrInvalidParticipantID = errors.New("invalid participant id") // ErrInvalidExamID is returned when the analytics exam ID is invalid. Exam ID should be greater than 0. ErrInvalidExamID = errors.New("invalid exam id") // ErrInvalidName is returned when the analytics message is invalid. Message should not be an empty string. ErrInvalidMessage = errors.New("invalid message") // ErrInvalidName is returned when the analytics create time is invalid. create time should be greater than 0. ErrZeroCreatedTime = errors.New("created at is zero") )
Functions ¶
This section is empty.
Types ¶
type Analytics ¶
type Analytics struct { ID int32 ParticipantID int32 ExamID int32 Message string CreatedAt time.Time }
Analytics is a analytics in an exam.
func (*Analytics) ValidateNonGenerated ¶
ValidateNonGenerated validates the analytics data without validating auto-generated values.
type ListFilter ¶
type ListFilter struct {
ExamID *int32
}
type Service ¶
type Service interface { // Save saves a analytics to the store. Save(ctx context.Context, a Analytics) (Analytics, error) // GetByID returns a analytics by its ID. GetByID(ctx context.Context, id int32) (Analytics, error) // List returns a list of analytics paginated by the given parameters. // size is the number of analytics to return. page is the page number. // Returns a list of analytics and the total number of analytics. List(ctx context.Context, size int32, page int32, filter ListFilter) ([]Analytics, int32, error) // Update updates a analytics in the store. Update(ctx context.Context, a Analytics) (Analytics, error) // Delete deletes a analytics from the store by its ID. Delete(ctx context.Context, id int32) error }
Service describes the interface of a service that contains business logic for analytics.
type Store ¶
type Store interface { Save(ctx context.Context, p Analytics) (Analytics, error) GetByID(ctx context.Context, id int32) (Analytics, error) ListAll(ctx context.Context) ([]Analytics, error) ListAllByExamID(ctx context.Context, examID int32) ([]Analytics, error) ListPaginated(ctx context.Context, offset int32, limit int32) ([]Analytics, error) GetTotalSize(ctx context.Context) (int32, error) Update(ctx context.Context, p Analytics) (Analytics, error) Delete(ctx context.Context, id int32) error }
Store is the interface for storing analytics that must be implemented by a storage system.
Click to show internal directories.
Click to hide internal directories.