Skip to content

Commit 6a398ec

Browse files
committed
feat(event): single flow registration with pay
1 parent ec1e1f3 commit 6a398ec

3 files changed

Lines changed: 42 additions & 9 deletions

File tree

app/events/usecase/create_pay_event.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func (uc usecase) CreatePayEvent(ctx context.Context, payload domain.EventPayPay
3939
})
4040

4141
if err != nil {
42-
logrus.Error("failed to get event")
42+
logrus.Error("failed to create pay event")
4343
return err
4444
}
4545

app/events/usecase/create_register_event.go

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ func (uc usecase) CreateRegisterEvent(ctx context.Context, payload domain.Regist
3939
orderNo := fmt.Sprintf("TXE-%d-%s%s%s%s", event.ID, time.Now().Format("06"), time.Now().Format("01"), time.Now().Format("02"), hash[0:4])
4040

4141
// is free event or not
42-
status := "success registration"
42+
status := "SUCCESS"
4343
upToYou := "registration success"
4444
if event.Price != 0.0 {
45-
status = "waiting for payment"
45+
status = "PENDING"
4646
upToYou = "new register"
4747
}
4848

4949
err = uc.dbTX.StartTransaction(ctx, func(txCtx context.Context) error {
50-
_, err := uc.repository.CreateRegisterEvent(ctx, domain.RegistrationEvent{
50+
rId, err := uc.repository.CreateRegisterEvent(txCtx, domain.RegistrationEvent{
5151
OrderNo: orderNo,
5252
EventID: event.ID,
5353
Name: payload.Name,
@@ -61,6 +61,37 @@ func (uc usecase) CreateRegisterEvent(ctx context.Context, payload domain.Regist
6161
logrus.Error("failed to get event")
6262
return err
6363
}
64+
65+
if payload.ImageProofPayment != "" {
66+
dataImage, err := uc.imageRepository.GetImage(ctx, payload.ImageProofPayment)
67+
if err != nil {
68+
logrus.Error("failed to create event", dataImage)
69+
return err
70+
}
71+
72+
if dataImage.IsUsed {
73+
err = errors.New("image not exists")
74+
return err
75+
}
76+
77+
_, err = uc.repository.CreatePayEvent(txCtx, domain.EventPay{
78+
RegistrationEventID: rId,
79+
EventID: event.ID,
80+
ImageProofPayment: payload.ImageProofPayment,
81+
NetAmount: payload.NetAmount,
82+
})
83+
84+
if err != nil {
85+
logrus.Error("failed to create pay event")
86+
return err
87+
}
88+
89+
err = uc.imageRepository.UpdateUseImage(txCtx, dataImage.ID)
90+
if err != nil {
91+
logrus.Error("failed to update use image")
92+
return err
93+
}
94+
}
6495
return nil
6596
})
6697

domain/event.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,13 @@ func (EventPay) TableName() string {
163163
}
164164

165165
type RegisterEventPayload struct {
166-
EventID uint `json:"event_id"`
167-
UserID string `json:"user_id"`
168-
Name string `json:"name"`
169-
Email string `json:"email"`
170-
PhoneNumber string `json:"phone_number"`
166+
EventID uint `json:"event_id"`
167+
UserID string `json:"user_id"`
168+
Name string `json:"name"`
169+
Email string `json:"email"`
170+
PhoneNumber string `json:"phone_number"`
171+
ImageProofPayment string `json:"image_proof_payment"`
172+
NetAmount float64 `json:"net_amount"`
171173
}
172174

173175
type RegistrationEvent struct {

0 commit comments

Comments
 (0)