Skip to content

Commit 5009a65

Browse files
update club assignment
1 parent a026438 commit 5009a65

File tree

4 files changed

+3
-80
lines changed

4 files changed

+3
-80
lines changed

internal/handlers/reading.go

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -207,32 +207,6 @@ func (h *ReadingHandler) AssignBookToClub(c *gin.Context) {
207207
c.JSON(http.StatusCreated, resp)
208208
}
209209

210-
// @Summary Update Club Reading Checkpoint
211-
// @Description Update the reading checkpoint for a club's current book assignment.
212-
// @Tags Reading
213-
// @Accept json
214-
// @Produce json
215-
// @Param id path int true "Club ID"
216-
// @Param request body models.UpdateClubCheckpointRequest true "Update Club Checkpoint Request"
217-
// @Success 200 {object} models.ClubAssignmentResponse
218-
// @Failure 400 {object} models.ErrorResponse
219-
// @Router /clubs/{id}/reading/checkpoint [patch]
220-
// @Security Bearer
221-
func (h *ReadingHandler) UpdateClubCheckpoint(c *gin.Context) {
222-
clubID, _ := strconv.ParseUint(c.Param("id"), 10, 64)
223-
var req models.UpdateClubCheckpointRequest
224-
if err := c.ShouldBindJSON(&req); err != nil {
225-
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid body"})
226-
return
227-
}
228-
resp, err := h.readingService.UpdateClubCheckpoint(uint(clubID), &req)
229-
if err != nil {
230-
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
231-
return
232-
}
233-
c.JSON(http.StatusOK, resp)
234-
}
235-
236210
// @Summary Complete Club Book Assignment
237211
// @Description Mark the current book assignment for a club as completed.
238212
// @Tags Reading

internal/handlers/server.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,6 @@ func (s *Server) setupRoutes() {
228228
protected.GET("/users/:id/reading/history", readingHandler.UserReadingHistory)
229229

230230
protected.POST("/clubs/:id/reading/assign", middleware.RequireClubMembershipWithRoles(clubRepo, "admin", "moderator"), readingHandler.AssignBookToClub)
231-
protected.PATCH("/clubs/:id/reading/checkpoint", middleware.RequireClubMembershipWithRoles(clubRepo, "admin", "moderator"), readingHandler.UpdateClubCheckpoint)
232231
protected.POST("/clubs/:id/reading/complete", middleware.RequireClubMembershipWithRoles(clubRepo, "admin", "moderator"), readingHandler.CompleteClubAssignment)
233232
protected.GET("/clubs/:id/reading", readingHandler.ListClubAssignments)
234233
}

internal/models/reading.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ type ClubBookAssignment struct {
7272
StartDate *time.Time `json:"start_date,omitempty"`
7373
DueDate *time.Time `json:"due_date,omitempty"`
7474
CompletedAt *time.Time `json:"completed_at,omitempty"`
75-
TargetPage *int `json:"target_page,omitempty"`
76-
Checkpoint *string `json:"checkpoint,omitempty"`
7775
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"`
7876
UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
7977
}
@@ -98,13 +96,6 @@ type AssignBookRequest struct {
9896
BookID uint `json:"book_id" validate:"required"`
9997
StartDate *time.Time `json:"start_date,omitempty"`
10098
DueDate *time.Time `json:"due_date,omitempty"`
101-
TargetPage *int `json:"target_page,omitempty"`
102-
Checkpoint *string `json:"checkpoint,omitempty"`
103-
}
104-
105-
type UpdateClubCheckpointRequest struct {
106-
TargetPage *int `json:"target_page,omitempty"`
107-
Checkpoint *string `json:"checkpoint,omitempty"`
10899
}
109100

110101
type UserBookProgressResponse struct {
@@ -131,6 +122,4 @@ type ClubAssignmentResponse struct {
131122
Status string `json:"status"`
132123
StartDate *time.Time `json:"start_date,omitempty"`
133124
DueDate *time.Time `json:"due_date,omitempty"`
134-
TargetPage *int `json:"target_page,omitempty"`
135-
Checkpoint *string `json:"checkpoint,omitempty"`
136125
}

internal/services/reading.go

Lines changed: 3 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,6 @@ func (s *ReadingService) AssignBookToClub(clubID, bookID uint, req *models.Assig
256256
Status: models.ClubAssignmentActive,
257257
StartDate: req.StartDate,
258258
DueDate: req.DueDate,
259-
TargetPage: req.TargetPage,
260-
Checkpoint: req.Checkpoint,
261259
}
262260

263261
if err := s.clubReadRepo.CreateAssignment(a); err != nil {
@@ -266,7 +264,7 @@ func (s *ReadingService) AssignBookToClub(clubID, bookID uint, req *models.Assig
266264

267265
resp := &models.ClubAssignmentResponse{
268266
ID: a.ID, ClubID: clubID, Book: *book, Status: string(a.Status),
269-
StartDate: a.StartDate, DueDate: a.DueDate, TargetPage: a.TargetPage, Checkpoint: a.Checkpoint,
267+
StartDate: a.StartDate, DueDate: a.DueDate,
270268
}
271269

272270
book, berr := s.bookRepo.GetByID(bookID)
@@ -288,43 +286,6 @@ func (s *ReadingService) AssignBookToClub(clubID, bookID uint, req *models.Assig
288286
return resp, nil
289287
}
290288

291-
func (s *ReadingService) UpdateClubCheckpoint(clubID uint, req *models.UpdateClubCheckpointRequest) (*models.ClubAssignmentResponse, error) {
292-
a, err := s.clubReadRepo.GetActiveAssignment(clubID)
293-
if err != nil {
294-
return nil, err
295-
}
296-
if req.TargetPage != nil {
297-
a.TargetPage = req.TargetPage
298-
}
299-
if req.Checkpoint != nil {
300-
a.Checkpoint = req.Checkpoint
301-
}
302-
if err := s.clubReadRepo.UpdateAssignment(a); err != nil {
303-
return nil, err
304-
}
305-
book, _ := s.bookRepo.GetByID(a.BookID)
306-
resp := &models.ClubAssignmentResponse{
307-
ID: a.ID, ClubID: a.ClubID, Book: *book, Status: string(a.Status),
308-
StartDate: a.StartDate, DueDate: a.DueDate, TargetPage: a.TargetPage, Checkpoint: a.Checkpoint,
309-
}
310-
311-
if req.TargetPage != nil {
312-
if club, cerr := s.clubRepo.GetByID(clubID); cerr == nil && len(club.CurrentBook) > 0 {
313-
var cb models.CurrentBook
314-
if uerr := json.Unmarshal(club.CurrentBook, &cb); uerr == nil {
315-
p := *req.TargetPage
316-
cb.Progress = &p
317-
if b, merr := json.Marshal(&cb); merr == nil {
318-
club.CurrentBook = b
319-
_ = s.clubRepo.Update(club)
320-
}
321-
}
322-
}
323-
}
324-
325-
return resp, nil
326-
}
327-
328289
func (s *ReadingService) CompleteClubAssignment(clubID uint) (*models.ClubAssignmentResponse, error) {
329290
a, err := s.clubReadRepo.GetActiveAssignment(clubID)
330291
if err != nil {
@@ -339,7 +300,7 @@ func (s *ReadingService) CompleteClubAssignment(clubID uint) (*models.ClubAssign
339300
book, _ := s.bookRepo.GetByID(a.BookID)
340301
resp := &models.ClubAssignmentResponse{
341302
ID: a.ID, ClubID: a.ClubID, Book: *book, Status: string(a.Status),
342-
StartDate: a.StartDate, DueDate: a.DueDate, TargetPage: a.TargetPage, Checkpoint: a.Checkpoint,
303+
StartDate: a.StartDate, DueDate: a.DueDate,
343304
}
344305

345306
if club, cerr := s.clubRepo.GetByID(clubID); cerr == nil {
@@ -363,7 +324,7 @@ func (s *ReadingService) ListClubAssignments(clubID uint) ([]models.ClubAssignme
363324
}
364325
out = append(out, models.ClubAssignmentResponse{
365326
ID: a.ID, ClubID: a.ClubID, Book: *book, Status: string(a.Status),
366-
StartDate: a.StartDate, DueDate: a.DueDate, TargetPage: a.TargetPage, Checkpoint: a.Checkpoint,
327+
StartDate: a.StartDate, DueDate: a.DueDate,
367328
})
368329
}
369330
return out, nil

0 commit comments

Comments
 (0)