diff --git a/internal/profession/constants.go b/internal/profession/constants.go index a8fd6b6..3337fff 100644 --- a/internal/profession/constants.go +++ b/internal/profession/constants.go @@ -3,4 +3,5 @@ package profession const ( FetchDefaultLimit = 100 MaxNameLength = 100 + MaxOrders = 3 ) diff --git a/internal/profession/usecase/usecase.go b/internal/profession/usecase/usecase.go index ee725e6..b83efab 100644 --- a/internal/profession/usecase/usecase.go +++ b/internal/profession/usecase/usecase.go @@ -64,6 +64,10 @@ func (ucase *usecase) Fetch(ctx context.Context, cfg *profession.FetchConfig) ([ Count: true, } } + if len(cfg.Sort) > profession.MaxOrders { + cfg.Sort = cfg.Sort[0:profession.MaxOrders] + } + return ucase.professionRepository.Fetch(ctx, cfg) } diff --git a/internal/qualification/constants.go b/internal/qualification/constants.go index 22c2e2c..e75c0fe 100644 --- a/internal/qualification/constants.go +++ b/internal/qualification/constants.go @@ -3,4 +3,5 @@ package qualification const ( FetchDefaultLimit = 100 MaxNameLength = 200 + MaxOrders = 3 ) diff --git a/internal/qualification/usecase/usecase.go b/internal/qualification/usecase/usecase.go index 89caf24..49ce488 100644 --- a/internal/qualification/usecase/usecase.go +++ b/internal/qualification/usecase/usecase.go @@ -64,6 +64,9 @@ func (ucase *usecase) Fetch(ctx context.Context, cfg *qualification.FetchConfig) Count: true, } } + if len(cfg.Sort) > qualification.MaxOrders { + cfg.Sort = cfg.Sort[0:qualification.MaxOrders] + } return ucase.qualificationRepository.Fetch(ctx, cfg) } diff --git a/internal/question/constants.go b/internal/question/constants.go index fbdb3aa..9333ffc 100644 --- a/internal/question/constants.go +++ b/internal/question/constants.go @@ -4,4 +4,5 @@ const ( FetchDefaultLimit = 100 FetchMaxLimit = 500 TestMaxLimit = 40 + MaxOrders = 3 ) diff --git a/internal/question/usecase/usecase.go b/internal/question/usecase/usecase.go index 9cf318f..e518502 100644 --- a/internal/question/usecase/usecase.go +++ b/internal/question/usecase/usecase.go @@ -3,6 +3,7 @@ package usecase import ( "context" "github.com/pkg/errors" + "github.com/zdam-egzamin-zawodowy/backend/internal/models" "github.com/zdam-egzamin-zawodowy/backend/internal/question" ) @@ -72,6 +73,9 @@ func (ucase *usecase) Fetch(ctx context.Context, cfg *question.FetchConfig) ([]* if cfg.Limit > question.FetchMaxLimit { cfg.Limit = question.FetchMaxLimit } + if len(cfg.Sort) > question.MaxOrders { + cfg.Sort = cfg.Sort[0:question.MaxOrders] + } return ucase.questionRepository.Fetch(ctx, cfg) } diff --git a/internal/user/constants.go b/internal/user/constants.go index 1082a66..147fb4d 100644 --- a/internal/user/constants.go +++ b/internal/user/constants.go @@ -6,4 +6,5 @@ const ( MaxDisplayNameLength = 32 MinPasswordLength = 6 MaxPasswordLength = 64 + MaxOrders = 3 ) diff --git a/internal/user/usecase/usecase.go b/internal/user/usecase/usecase.go index 5c3e544..be49ee5 100644 --- a/internal/user/usecase/usecase.go +++ b/internal/user/usecase/usecase.go @@ -81,6 +81,9 @@ func (ucase *usecase) Fetch(ctx context.Context, cfg *user.FetchConfig) ([]*mode if cfg.Limit > user.FetchMaxLimit || cfg.Limit <= 0 { cfg.Limit = user.FetchMaxLimit } + if len(cfg.Sort) > user.MaxOrders { + cfg.Sort = cfg.Sort[0:user.MaxOrders] + } return ucase.userRepository.Fetch(ctx, cfg) }