/
usecase.go
61 lines (44 loc) · 1.63 KB
/
usecase.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package usecase
import (
"context"
"github.com/openuniland/good-guy/configs"
examschedules "github.com/openuniland/good-guy/internal/exam_schedules"
"github.com/openuniland/good-guy/internal/models"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
)
type ExamSchedulesUS struct {
cfg *configs.Configs
examschedulesRepo examschedules.Repository
}
func NewExamSchedulesUseCase(cfg *configs.Configs, examschedulesRepo examschedules.Repository) examschedules.UseCase {
return &ExamSchedulesUS{cfg: cfg, examschedulesRepo: examschedulesRepo}
}
func (e *ExamSchedulesUS) CreateNewExamSchedules(ctx context.Context, examSchedules *models.ExamSchedules) (*mongo.InsertOneResult, error) {
insertOneResult, err := e.examschedulesRepo.Create(ctx, examSchedules)
if err != nil {
return nil, err
}
return insertOneResult, nil
}
func (e *ExamSchedulesUS) FindExamSchedules(ctx context.Context) ([]*models.ExamSchedules, error) {
examSchedules, err := e.examschedulesRepo.Find(ctx, bson.D{})
if err != nil {
return nil, err
}
return examSchedules, nil
}
func (e *ExamSchedulesUS) FindExamSchedulesByUsername(ctx context.Context, filter interface{}) (*models.ExamSchedules, error) {
examSchedules, err := e.examschedulesRepo.FindOne(ctx, filter)
if err != nil {
return nil, err
}
return examSchedules, nil
}
func (e *ExamSchedulesUS) UpdateExamSchedulesByUsername(ctx context.Context, filter interface{}, update bson.M) (*models.ExamSchedules, error) {
examSchedules, err := e.examschedulesRepo.FindOneAndUpdate(ctx, filter, update)
if err != nil {
return nil, err
}
return examSchedules, nil
}