Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseQuestion ¶
type BaseQuestion struct { // NameId is the identifier of the question. // Validations: // - required // - valid name id NameId string `json:"nameId,omitempty" bson:"nameId,omitempty" validate:"required,validNameId"` // Visible is a flag that indicates if the question is visible. Visible bool `json:"visible,omitempty" bson:"visible,omitempty"` // QTyp is the type of question, such as single_select, multi_select, radio, checkbox, or text_area. // Validations: // - required // - must be a valid question type QTyp types.QuestionType `json:"type,omitempty" bson:"type,omitempty" validate:"required,questionType"` // Label is a label for the question. // Validations: // - required // - min length: 1 Label string `json:"label,omitempty" bson:"label,omitempty" validate:"required,min=1"` // Required indicates whether the question is required. Defaults to false. Required bool `json:"required,omitempty" bson:"required,omitempty"` }
BaseQuestion is a struct that contains common fields for all types of questions in a survey.
type Group ¶
type Group struct { // NameId is the name id of the group. // Validations: // - required // - valid name id NameId string `json:"nameId,omitempty" bson:"nameId,omitempty" validate:"required,validNameId"` // Title is the title of the group. // Validations: // - optional Title *string `json:"title,omitempty" bson:"title,omitempty" validate:"omitempty"` // Description is the description of the group. // Validations: // - optional Description *string `json:"description,omitempty" bson:"description,omitempty" validate:"omitempty"` // Visible is a flag that indicates if the group is visible. Visible bool `json:"visible,omitempty" bson:"visible,omitempty"` // IsExternalSurvey is a flag that indicates if the group is an external survey. // When a group is an external survey, it means that: // - QuestionsIds length must be 1 // - The question will be an external survey question id // Validations: // - validIfExternalSurvey IsExternalSurvey bool `json:"isExternalSurvey,omitempty" bson:"isExternalSurvey,omitempty" validate:"validIfExternalSurvey"` // QuestionsIds is a list of question ids that are associated with this group. // Validations: // - required // - each question id must be valid: // * length must be greater than 0 QuestionsIds []string `json:"questionsIds,omitempty" bson:"questionsIds,omitempty" validate:"required,dive,min=1"` }
Group is a struct that represents a group of questions.
func (*Group) AddQuestionId ¶
AddQuestionId adds the question with the specified name ID to the group. Args: - nameId: the name ID of the question to add. - position: the position where to add the question. If position is -1, the question will be added at the end of the group.
func (*Group) RemoveQuestionId ¶
RemoveQuestionId removes the question with the specified name ID from the group. Returns true if the question was removed, false otherwise.
type Question ¶
type Question struct { // BaseQuestion contains common fields for all types of questions. BaseQuestion `bson:",inline"` // Value is the value of the question, which can be of different types depending on the type of question. // Validations: // - required Value any `json:"value,omitempty" bson:"value,omitempty" validate:"required"` }
Question is a struct that represents a question in a survey.
func (*Question) UnmarshalBSONValue ¶
func (*Question) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface.