add QuestionInput sanitization
This commit is contained in:
parent
b066446051
commit
fdb934145a
|
@ -2,6 +2,7 @@ package models
|
|||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/99designs/gqlgen/graphql"
|
||||
|
@ -80,6 +81,23 @@ func (input *QuestionInput) IsEmpty() bool {
|
|||
input.QualificationID == nil
|
||||
}
|
||||
|
||||
func (input *QuestionInput) Sanitize() *QuestionInput {
|
||||
if input.Content != nil {
|
||||
trimmed := strings.TrimSpace(*input.Content)
|
||||
input.Content = &trimmed
|
||||
}
|
||||
if input.From != nil {
|
||||
trimmed := strings.TrimSpace(*input.From)
|
||||
input.From = &trimmed
|
||||
}
|
||||
if input.Explanation != nil {
|
||||
trimmed := strings.TrimSpace(*input.Explanation)
|
||||
input.Explanation = &trimmed
|
||||
}
|
||||
|
||||
return input
|
||||
}
|
||||
|
||||
func (input *QuestionInput) ToQuestion() *Question {
|
||||
q := &Question{}
|
||||
if input.Content != nil {
|
||||
|
|
|
@ -35,7 +35,7 @@ func New(cfg *Config) (question.Usecase, error) {
|
|||
}
|
||||
|
||||
func (ucase *usecase) Store(ctx context.Context, input *models.QuestionInput) (*models.Question, error) {
|
||||
if err := ucase.validateInput(input, validateOptions{false}); err != nil {
|
||||
if err := ucase.validateInput(input.Sanitize(), validateOptions{false}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ucase.questionRepository.Store(ctx, input)
|
||||
|
@ -45,7 +45,7 @@ func (ucase *usecase) UpdateOneByID(ctx context.Context, id int, input *models.Q
|
|||
if id <= 0 {
|
||||
return nil, fmt.Errorf(messageInvalidID)
|
||||
}
|
||||
if err := ucase.validateInput(input, validateOptions{true}); err != nil {
|
||||
if err := ucase.validateInput(input.Sanitize(), validateOptions{true}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
item, err := ucase.questionRepository.UpdateOneByID(ctx,
|
||||
|
|
Reference in New Issue