woj-server/internal/service/problem/queryFuzz.go

28 lines
631 B
Go
Raw Normal View History

2022-09-20 16:42:57 +08:00
package problem
import (
"errors"
"github.com/WHUPRJ/woj-server/internal/e"
"github.com/WHUPRJ/woj-server/internal/repo/model"
"gorm.io/gorm"
2022-09-26 16:13:31 +08:00
"gorm.io/gorm/clause"
2022-09-20 16:42:57 +08:00
)
func (s *service) QueryFuzz(search string) ([]*model.Problem, e.Status) {
var problems []*model.Problem
2022-09-26 16:13:31 +08:00
err := s.db.Preload(clause.Associations).
Where("is_enabled = true").
Where(s.db.Where("title LIKE ?", "%"+search+"%").
Or("content LIKE ?", "%"+search+"%")).
2022-09-20 16:42:57 +08:00
Find(&problems).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, e.ProblemNotFound
}
if err != nil {
return nil, e.DatabaseError
}
return problems, e.Success
}