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

Commit fd74e3a

Browse files
committed
WIP
1 parent a18c894 commit fd74e3a

File tree

37 files changed

+2279
-1721
lines changed

37 files changed

+2279
-1721
lines changed

handler/api/rpc/auth/v1/svc/impl.go

+3-21
Original file line numberDiff line numberDiff line change
@@ -38,34 +38,16 @@ func (svc *impl) GetMe(ctx context.Context, req *connect.Request[authv1.GetMeReq
3838
return
3939
}
4040

41-
func (svc *impl) Logout(ctx context.Context, req *connect.Request[authv1.LogoutRequest]) (res *connect.Response[authv1.LogoutResponse], err error) {
42-
if err = svc.uc.Logout(ctx); err != nil {
43-
return
44-
}
45-
46-
res = connect.NewResponse(&authv1.LogoutResponse{})
47-
cookie := http.Cookie{
48-
Name: appenv.COOKIE_SESSION_NAME,
49-
MaxAge: -1,
50-
Secure: appenv.COOKIE_SECURE,
51-
HttpOnly: true,
52-
}
53-
res.Header().Set("Set-Cookie", cookie.String())
54-
55-
return
56-
}
57-
5841
func (svc *impl) DeleteAccount(ctx context.Context, req *connect.Request[authv1.DeleteAccountRequest]) (res *connect.Response[authv1.DeleteAccountResponse], err error) {
5942
if err = svc.uc.DeleteAccount(ctx); err != nil {
6043
return
6144
}
6245

6346
res = connect.NewResponse(&authv1.DeleteAccountResponse{})
6447
cookie := http.Cookie{
65-
Name: appenv.COOKIE_SESSION_NAME,
66-
MaxAge: -1,
67-
Secure: appenv.COOKIE_SECURE,
68-
HttpOnly: true,
48+
Name: appenv.COOKIE_SESSION_NAME,
49+
Path: "/",
50+
MaxAge: -1,
6951
}
7052
res.Header().Set("Set-Cookie", cookie.String())
7153

handler/api/rpc/schoolcalendar/v1/conv/event.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func ToPBEvent(event *schoolcalendardomain.Event) (*schoolcalendarv1.Event, erro
2020
}
2121

2222
if event.ChangeTo != nil {
23-
pbWeekday, err := ToPBWeekday(*event.ChangeTo)
23+
pbWeekday, err := sharedconv.ToPBWeekday(*event.ChangeTo)
2424
if err != nil {
2525
return nil, err
2626
}

handler/api/rpc/schoolcalendar/v1/conv/weekday.go

-48
This file was deleted.

handler/api/rpc/schoolcalendar/v1/svc/impl.go

+46
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,29 @@ func (svc *impl) GetEvents(ctx context.Context, req *connect.Request[schoolcalen
4141
return
4242
}
4343

44+
func (svc *impl) GetEventsByDate(ctx context.Context, req *connect.Request[schoolcalendarv1.GetEventsByDateRequest]) (res *connect.Response[schoolcalendarv1.GetEventsByDateResponse], err error) {
45+
date, err := sharedconv.FromPBRFC3339FullDate(req.Msg.Date)
46+
if err != nil {
47+
return
48+
}
49+
50+
events, err := svc.uc.GetEventsByDate(ctx, date)
51+
if err != nil {
52+
return
53+
}
54+
55+
pbEvents, err := base.MapWithErr(events, schoolcalendarv1conv.ToPBEvent)
56+
if err != nil {
57+
return
58+
}
59+
60+
res = connect.NewResponse(&schoolcalendarv1.GetEventsByDateResponse{
61+
Events: pbEvents,
62+
})
63+
64+
return
65+
}
66+
4467
func (svc *impl) GetModuleDetails(ctx context.Context, req *connect.Request[schoolcalendarv1.GetModuleDetailsRequest]) (res *connect.Response[schoolcalendarv1.GetModuleDetailsResponse], err error) {
4568
year, err := sharedconv.FromPBAcadimicYear(req.Msg.Year)
4669
if err != nil {
@@ -64,6 +87,29 @@ func (svc *impl) GetModuleDetails(ctx context.Context, req *connect.Request[scho
6487
return
6588
}
6689

90+
func (svc *impl) GetModuleByDate(ctx context.Context, req *connect.Request[schoolcalendarv1.GetModuleByDateRequest]) (res *connect.Response[schoolcalendarv1.GetModuleByDateResponse], err error) {
91+
date, err := sharedconv.FromPBRFC3339FullDate(req.Msg.Date)
92+
if err != nil {
93+
return
94+
}
95+
96+
module, err := svc.uc.GetModuleByDate(ctx, date)
97+
if err != nil {
98+
return
99+
}
100+
101+
pbModule, err := schoolcalendarv1conv.ToPBModule(module)
102+
if err != nil {
103+
return
104+
}
105+
106+
res = connect.NewResponse(&schoolcalendarv1.GetModuleByDateResponse{
107+
Module: pbModule,
108+
})
109+
110+
return
111+
}
112+
67113
func New(uc schoolcalendarmodule.UseCase) *impl {
68114
return &impl{uc: uc}
69115
}

handler/api/rpc/shared/conv/type.go

+41
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package sharedconv
22

33
import (
44
"errors"
5+
"fmt"
56
"time"
67

78
"cloud.google.com/go/civil"
@@ -54,3 +55,43 @@ func FromPBRFC3339FullDate(pbFullDate *sharedpb.RFC3339FullDate) (civil.Date, er
5455
func ToPBRFC3339FullDate(cd civil.Date) *sharedpb.RFC3339FullDate {
5556
return &sharedpb.RFC3339FullDate{Value: cd.String()}
5657
}
58+
59+
func FromPBWeekday(pbWeekday sharedpb.Weekday) (time.Weekday, error) {
60+
switch pbWeekday {
61+
case sharedpb.Weekday_WEEKDAY_SUNDAY:
62+
return time.Sunday, nil
63+
case sharedpb.Weekday_WEEKDAY_MONDAY:
64+
return time.Monday, nil
65+
case sharedpb.Weekday_WEEKDAY_TUESDAY:
66+
return time.Tuesday, nil
67+
case sharedpb.Weekday_WEEKDAY_WEDNESDAY:
68+
return time.Wednesday, nil
69+
case sharedpb.Weekday_WEEKDAY_THURSDAY:
70+
return time.Thursday, nil
71+
case sharedpb.Weekday_WEEKDAY_FRIDAY:
72+
return time.Friday, nil
73+
case sharedpb.Weekday_WEEKDAY_SATURDAY:
74+
return time.Saturday, nil
75+
}
76+
return 0, fmt.Errorf("invalid %#v", pbWeekday)
77+
}
78+
79+
func ToPBWeekday(weekday time.Weekday) (sharedpb.Weekday, error) {
80+
switch weekday {
81+
case time.Sunday:
82+
return sharedpb.Weekday_WEEKDAY_SUNDAY, nil
83+
case time.Monday:
84+
return sharedpb.Weekday_WEEKDAY_MONDAY, nil
85+
case time.Tuesday:
86+
return sharedpb.Weekday_WEEKDAY_TUESDAY, nil
87+
case time.Wednesday:
88+
return sharedpb.Weekday_WEEKDAY_WEDNESDAY, nil
89+
case time.Thursday:
90+
return sharedpb.Weekday_WEEKDAY_THURSDAY, nil
91+
case time.Friday:
92+
return sharedpb.Weekday_WEEKDAY_FRIDAY, nil
93+
case time.Saturday:
94+
return sharedpb.Weekday_WEEKDAY_SATURDAY, nil
95+
}
96+
return 0, fmt.Errorf("invalid %#v", weekday)
97+
}

handler/api/rpc/timetable/v1/conv/registered_course.go

+11-25
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,28 @@ func ToPBRegisteredCourse(registeredCourse *timetabledomain.RegisteredCourse) (p
1414
Id: sharedconv.ToPBUUID(registeredCourse.ID),
1515
UserId: sharedconv.ToPBUUID(registeredCourse.UserID),
1616
Year: sharedconv.ToPBAcademicYear(registeredCourse.Year),
17-
Instructors: registeredCourse.Instructors,
17+
Name: registeredCourse.GetName().String(),
18+
Instructors: registeredCourse.GetInstructors(),
19+
Credit: registeredCourse.GetCredit().String(),
1820
Memo: registeredCourse.Memo,
1921
Attendance: int32(registeredCourse.Attendance),
2022
Absence: int32(registeredCourse.Absence),
2123
Late: int32(registeredCourse.Late),
2224
TagIds: base.Map(registeredCourse.TagIDs, sharedconv.ToPBUUID[idtype.TagID]),
2325
}
2426

25-
if registeredCourse.CourseID != nil {
26-
pbRegisteredCourse.CourseId = sharedconv.ToPBUUID(*registeredCourse.CourseID)
27+
if course, ok := registeredCourse.CourseAssociation.Get(); ok {
28+
pbRegisteredCourse.Code = lo.ToPtr(course.Code.String())
2729
}
2830

29-
if registeredCourse.Name != nil {
30-
pbRegisteredCourse.Name = lo.ToPtr(registeredCourse.Name.String())
31+
pbRegisteredCourse.Methods, err = base.MapWithErr(registeredCourse.GetMethods(), ToPBCourseMethod)
32+
if err != nil {
33+
return
3134
}
3235

33-
if registeredCourse.Credit != nil {
34-
pbRegisteredCourse.Credit = lo.ToPtr(registeredCourse.Credit.String())
35-
}
36-
37-
if registeredCourse.Methods != nil {
38-
courseMethodList := new(timetablev1.CourseMethodList)
39-
courseMethodList.Values, err = base.MapWithErr(*registeredCourse.Methods, ToPBCourseMethod)
40-
if err != nil {
41-
return
42-
}
43-
pbRegisteredCourse.Methods = courseMethodList
44-
}
45-
46-
if registeredCourse.Schedules != nil {
47-
scheduleList := new(timetablev1.ScheduleList)
48-
scheduleList.Values, err = base.MapWithErr(*registeredCourse.Schedules, ToPBSchedule)
49-
if err != nil {
50-
return
51-
}
52-
pbRegisteredCourse.Schedules = scheduleList
36+
pbRegisteredCourse.Schedules, err = base.MapWithErr(registeredCourse.GetSchedules(), ToPBSchedule)
37+
if err != nil {
38+
return
5339
}
5440

5541
return

handler/api/rpc/timetable/v1/srv/impl.go

+50-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ type impl struct {
2121
uc timetablemodule.UseCase
2222
}
2323

24-
func (svc *impl) GetCourses(ctx context.Context, req *connect.Request[timetablev1.GetCoursesRequest]) (res *connect.Response[timetablev1.GetCoursesResponse], err error) {
24+
func (svc *impl) GetCoursesByCodes(ctx context.Context, req *connect.Request[timetablev1.GetCoursesByCodesRequest]) (res *connect.Response[timetablev1.GetCoursesByCodesResponse], err error) {
2525
year, err := sharedconv.FromPBAcadimicYear(req.Msg.Year)
2626
if err != nil {
2727
return
@@ -42,7 +42,54 @@ func (svc *impl) GetCourses(ctx context.Context, req *connect.Request[timetablev
4242
return
4343
}
4444

45-
res = connect.NewResponse(&timetablev1.GetCoursesResponse{
45+
res = connect.NewResponse(&timetablev1.GetCoursesByCodesResponse{
46+
Courses: pbCourses,
47+
})
48+
49+
return
50+
}
51+
52+
func (svc *impl) SearchCourses(ctx context.Context, req *connect.Request[timetablev1.SearchCoursesRequest]) (res *connect.Response[timetablev1.SearchCoursesResponse], err error) {
53+
year, err := sharedconv.FromPBAcadimicYear(req.Msg.Year)
54+
if err != nil {
55+
return
56+
}
57+
58+
in := timetablemodule.SearchCoursesIn{
59+
Year: year,
60+
Keywords: req.Msg.Keywords,
61+
CodePrefixes: struct {
62+
Included []string
63+
Excluded []string
64+
}{
65+
Included: req.Msg.CodePrefixesIncluded,
66+
Excluded: req.Msg.CodePrefixesExcluded,
67+
},
68+
Limit: int(req.Msg.Limit),
69+
Offset: int(req.Msg.Offset),
70+
}
71+
72+
in.Schedules.FullyIncluded, err = base.MapWithErr(req.Msg.SchedulesFullyIncluded, timetablev1conv.FromPBSchedule)
73+
if err != nil {
74+
return
75+
}
76+
77+
in.Schedules.PartiallyOverlapped, err = base.MapWithErr(req.Msg.SchedulesPartiallyOverlapped, timetablev1conv.FromPBSchedule)
78+
if err != nil {
79+
return
80+
}
81+
82+
courses, err := svc.uc.SearchCourses(ctx, in)
83+
if err != nil {
84+
return
85+
}
86+
87+
pbCourses, err := base.MapWithErr(courses, timetablev1conv.ToPBCourse)
88+
if err != nil {
89+
return
90+
}
91+
92+
res = connect.NewResponse(&timetablev1.SearchCoursesResponse{
4693
Courses: pbCourses,
4794
})
4895

@@ -335,7 +382,7 @@ func (svc *impl) DeleteTag(ctx context.Context, req *connect.Request[timetablev1
335382
}
336383

337384
func (svc *impl) RearrangeTags(ctx context.Context, req *connect.Request[timetablev1.RearrangeTagsRequest]) (res *connect.Response[timetablev1.RearrangeTagsResponse], err error) {
338-
ids, err := base.MapWithArgAndErr(req.Msg.TagIds, idtype.ParseTagID, sharedconv.FromPBUUID[idtype.TagID])
385+
ids, err := base.MapWithArgAndErr(req.Msg.Ids, idtype.ParseTagID, sharedconv.FromPBUUID[idtype.TagID])
339386
if err != nil {
340387
return
341388
}

handler/api/rpcgen/announcement/v1/announcementv1connect/service.connect.go

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

0 commit comments

Comments
 (0)