niki/paymentapp/delivery/grpc/handler.go

43 lines
1.1 KiB
Go

package grpc
import (
"context"
"git.gocasts.ir/ebhomengo/niki/domain/payment/entity"
"git.gocasts.ir/ebhomengo/niki/domain/payment/service"
paymentpb "git.gocasts.ir/ebhomengo/niki/paymentapp/protobuf"
)
type Handler struct {
paymentpb.UnimplementedPaymentServiceServer
scvPayment *service.PaymentService
}
func NewHandler(s *service.PaymentService) *Handler {
return &Handler{
scvPayment: s,
}
}
func (h *Handler) InitiatePayment(ctx context.Context, req *paymentpb.InitiatePaymentRequest) (*paymentpb.InitiatePaymentResponse, error) {
paymentResponse, err := h.scvPayment.InitiatePayment(ctx, service.InitiatePaymentRequest{
UserID: uint(req.GetUserId()),
PayableType: entity.PayableType(req.GetPayableType()),
PayableID: uint(req.GetPayableId()),
GatewayCode: req.GetGatewayCode(),
CallbackURL: req.GetCallbackUrl(),
Amount: req.GetAmount(),
})
if err != nil {
return nil, err
}
response := &paymentpb.InitiatePaymentResponse{
PaymentId: uint64(paymentResponse.PaymentID),
RedirectUrl: paymentResponse.RedirectURL,
}
return response, nil
}