Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type Filter ¶
type Filter struct {
ExamID int32 `json:"exam_id,omitempty"`
}
Filter is a filter for listing questions.
type ListData ¶
type ListData struct { // Questions is the list of questions returned from the operation. Questions []Question `json:"questions,omitempty"` // Total is the total number of questions available in the store. TotalSize int32 `json:"total_size,omitempty"` }
ListData is the data returned by the list operation.
type ListOptions ¶
type ListOptions struct { Filter Filter `json:"filter,omitempty"` Size int32 `json:"size,omitempty"` Page int32 `json:"limit,omitempty"` }
ListOptions is a list options for listing questions with pagination. Nil filter are ignored.
func (*ListOptions) Validate ¶
func (o *ListOptions) Validate() error
type Question ¶
type Question struct { ID int32 `json:"id,omitempty"` Type Type `json:"type,omitempty"` ContentFormat format.Text `json:"content_format,omitempty"` Content string `json:"content,omitempty"` ExamID int32 `json:"exam_id,omitempty"` }
Question is a question in an exam.
func (*Question) ValidateNew ¶
ValidateNew validates a new question.
type Service ¶
type Service interface { Save(ctx context.Context, q Question) (Question, error) GetByID(ctx context.Context, id int32) (Question, error) List(ctx context.Context, opts ListOptions) (ListData, error) Update(ctx context.Context, q Question) (Question, error) Delete(ctx context.Context, id int32) error }
type Store ¶
type Store interface { Save(ctx context.Context, q Question) (Question, error) GetByID(ctx context.Context, id int32) (Question, error) List(ctx context.Context, offset int32, limit int32, f Filter) ([]Question, error) GetTotalSize(ctx context.Context, f Filter) (int32, error) Update(ctx context.Context, q Question) (Question, error) Delete(ctx context.Context, id int32) error }
Click to show internal directories.
Click to hide internal directories.