Skip to content

Commit 2e78d89

Browse files
committed
feat: add IsPaused field to GetSubscriptionResponse DTO and update subscription usecase logic
1 parent e9656a1 commit 2e78d89

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

internal/app/subscription/usecase/subscription.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ func (u *SubscriptionUsecase) GetSubscriptions(ctx *fiber.Ctx) ([]dto.GetSubscri
5454
if sub.Allergies != "" {
5555
allergies = strings.Split(sub.Allergies, ",")
5656
}
57+
isPaused := false
58+
if sub.PauseStartDate != nil && sub.PauseEndDate != nil {
59+
if sub.PauseStartDate.Before(time.Now()) && sub.PauseEndDate.After(time.Now()) {
60+
isPaused = true
61+
}
62+
}
5763

5864
response = append(response, dto.GetSubscriptionResponse{
5965
ID: sub.ID,
@@ -76,6 +82,7 @@ func (u *SubscriptionUsecase) GetSubscriptions(ctx *fiber.Ctx) ([]dto.GetSubscri
7682
PauseEndDate: sub.PauseEndDate,
7783
CreatedAt: sub.CreatedAt,
7884
UpdatedAt: sub.UpdatedAt,
85+
IsPaused: isPaused,
7986
})
8087
}
8188

@@ -113,6 +120,12 @@ func (u *SubscriptionUsecase) GetSpecific(ctx *fiber.Ctx) (dto.GetSubscriptionRe
113120
if result.Allergies != "" {
114121
allergies = strings.Split(result.Allergies, ",")
115122
}
123+
isPaused := false
124+
if result.PauseStartDate != nil && result.PauseEndDate != nil {
125+
if result.PauseStartDate.Before(time.Now()) && result.PauseEndDate.After(time.Now()) {
126+
isPaused = true
127+
}
128+
}
116129

117130
response := dto.GetSubscriptionResponse{
118131
ID: result.ID,
@@ -135,6 +148,7 @@ func (u *SubscriptionUsecase) GetSpecific(ctx *fiber.Ctx) (dto.GetSubscriptionRe
135148
PauseEndDate: result.PauseEndDate,
136149
CreatedAt: result.CreatedAt,
137150
UpdatedAt: result.UpdatedAt,
151+
IsPaused: isPaused,
138152
}
139153

140154
return response, nil

internal/domain/dto/subscription.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ type GetSubscriptionResponse struct {
4646
TotalPrice float64 `json:"total_price"`
4747

4848
Status string `json:"status"`
49+
IsPaused bool `json:"is_paused"`
4950
PauseStartDate *time.Time `json:"pause_start_date"`
5051
PauseEndDate *time.Time `json:"pause_end_date"`
5152

0 commit comments

Comments
 (0)