Skip to content
This repository was archived by the owner on Aug 18, 2024. It is now read-only.

Commit 3173985

Browse files
committed
WIP
1 parent 6f3a8e5 commit 3173985

File tree

5 files changed

+41
-29
lines changed

5 files changed

+41
-29
lines changed

db/gen/model/registered_courses.gen.go

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

db/gen/query/registered_courses.gen.go

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

db/gorm_gen.go

-12
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,6 @@ func main() {
2525
}
2626
g.UseDB(db)
2727

28-
var dataMap = map[string]func(gorm.ColumnType) (dataType string){
29-
"jsonb": func(columnType gorm.ColumnType) (dataType string) {
30-
return "[]byte"
31-
},
32-
33-
"registered_courses_methods_enum[]": func(columnType gorm.ColumnType) (dataType string) {
34-
return "[]string"
35-
},
36-
}
37-
38-
g.WithDataTypeMap(dataMap)
39-
4028
g.ApplyBasic(g.GenerateAllTable()...)
4129

4230
g.ApplyBasic(

handler/api/rest/v3/openapi/post_registered_courses.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package openapi
22

33
import (
4+
"bytes"
45
"encoding/json"
56
)
67

@@ -19,16 +20,22 @@ func (body *PostRegisteredCoursesJSONRequestBody) UnmarshalJSON(data []byte) err
1920
}
2021

2122
func ToPostRegisteredCoursesJSONBody0(reqBody *PostRegisteredCoursesJSONRequestBody) (ret PostRegisteredCoursesJSONBody0, err error) {
22-
err = json.Unmarshal(reqBody.union, &ret)
23+
dec := json.NewDecoder(bytes.NewReader(reqBody.union))
24+
dec.DisallowUnknownFields()
25+
err = dec.Decode(&ret)
2326
return
2427
}
2528

2629
func ToPostRegisteredCoursesJSONBody1(reqBody *PostRegisteredCoursesJSONRequestBody) (ret PostRegisteredCoursesJSONBody1, err error) {
27-
err = json.Unmarshal(reqBody.union, &ret)
30+
dec := json.NewDecoder(bytes.NewReader(reqBody.union))
31+
dec.DisallowUnknownFields()
32+
err = dec.Decode(&ret)
2833
return
2934
}
3035

3136
func ToPostRegisteredCoursesJSONBody2(reqBody *PostRegisteredCoursesJSONRequestBody) (ret PostRegisteredCoursesJSONBody2, err error) {
32-
err = json.Unmarshal(reqBody.union, &ret)
37+
dec := json.NewDecoder(bytes.NewReader(reqBody.union))
38+
dec.DisallowUnknownFields()
39+
err = dec.Decode(&ret)
3340
return
3441
}

module/timetable/repository/registered_course.go

+23-6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"encoding/json"
66
"fmt"
7+
"strings"
78

89
"github.com/samber/lo"
910
"github.com/twin-te/twinte-back/base"
@@ -209,7 +210,7 @@ func fromDBRegisteredCourse(dbRegisteredCourse *model.RegisteredCourse) (*timeta
209210
}
210211

211212
if dbRegisteredCourse.Methods != nil {
212-
methods, err := base.MapWithErr(*dbRegisteredCourse.Methods, timetabledomain.ParseCourseMethod)
213+
methods, err := fromDBRegisteredCourseMethods(*dbRegisteredCourse.Methods)
213214
if err != nil {
214215
return err
215216
}
@@ -272,7 +273,7 @@ func toDBRegisteredCourse(registeredCourse *timetabledomain.RegisteredCourse, wi
272273
}
273274

274275
if registeredCourse.Methods != nil {
275-
dbRegisteredCourse.Methods = lo.ToPtr(base.MapByString(*registeredCourse.Methods))
276+
dbRegisteredCourse.Methods = lo.ToPtr(toDBRegisteredCourseMethods(*registeredCourse.Methods))
276277
}
277278

278279
if registeredCourse.Schedules != nil {
@@ -297,10 +298,20 @@ type dbRegisteredCourseSchedule struct {
297298
Room string `json:"room"`
298299
}
299300

300-
func fromDBRegisteredCourseSchedules(data []byte) ([]timetabledomain.Schedule, error) {
301+
func fromDBRegisteredCourseMethods(dbMethods string) ([]timetabledomain.CourseMethod, error) {
302+
dbMethods = strings.TrimPrefix(dbMethods, "{")
303+
dbMethods = strings.TrimSuffix(dbMethods, "}")
304+
return base.MapWithErr(strings.Split(dbMethods, ","), timetabledomain.ParseCourseMethod)
305+
}
306+
307+
func toDBRegisteredCourseMethods(methods []timetabledomain.CourseMethod) string {
308+
return fmt.Sprintf("{%s}", strings.Join(base.MapByString(methods), ","))
309+
}
310+
311+
func fromDBRegisteredCourseSchedules(data string) ([]timetabledomain.Schedule, error) {
301312
var dbRegisteredCourseSchedules []dbRegisteredCourseSchedule
302313

303-
if err := json.Unmarshal(data, &dbRegisteredCourseSchedules); err != nil {
314+
if err := json.Unmarshal([]byte(data), &dbRegisteredCourseSchedules); err != nil {
304315
return nil, err
305316
}
306317

@@ -314,7 +325,7 @@ func fromDBRegisteredCourseSchedules(data []byte) ([]timetabledomain.Schedule, e
314325
})
315326
}
316327

317-
func toDBRegisteredCourseSchedulesJSON(schedules []timetabledomain.Schedule) ([]byte, error) {
328+
func toDBRegisteredCourseSchedulesJSON(schedules []timetabledomain.Schedule) (string, error) {
318329
dbRegisteredCourseSchedules := base.Map(schedules, func(schedule timetabledomain.Schedule) *dbRegisteredCourseSchedule {
319330
return &dbRegisteredCourseSchedule{
320331
Module: schedule.Module.String(),
@@ -323,5 +334,11 @@ func toDBRegisteredCourseSchedulesJSON(schedules []timetabledomain.Schedule) ([]
323334
Room: schedule.Rooms,
324335
}
325336
})
326-
return json.Marshal(dbRegisteredCourseSchedules)
337+
338+
data, err := json.Marshal(dbRegisteredCourseSchedules)
339+
if err != nil {
340+
return "", err
341+
}
342+
343+
return string(data), nil
327344
}

0 commit comments

Comments
 (0)