Implement FCM
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"apskel-pos-be/config"
|
||||
@@ -24,11 +25,11 @@ type AuthService interface {
|
||||
}
|
||||
|
||||
type AuthServiceImpl struct {
|
||||
userProcessor UserProcessor
|
||||
jwtSecret string
|
||||
refreshSecret string
|
||||
tokenTTL time.Duration
|
||||
refreshTokenTTL time.Duration
|
||||
userProcessor UserProcessor
|
||||
jwtSecret string
|
||||
refreshSecret string
|
||||
tokenTTL time.Duration
|
||||
refreshTokenTTL time.Duration
|
||||
}
|
||||
|
||||
type Claims struct {
|
||||
@@ -81,6 +82,8 @@ func (s *AuthServiceImpl) Login(ctx context.Context, req *contract.LoginRequest)
|
||||
return nil, fmt.Errorf("failed to generate refresh token: %w", err)
|
||||
}
|
||||
|
||||
go s.saveFcmToken(context.Background(), userResponse.ID, req.FcmToken)
|
||||
|
||||
return &contract.LoginResponse{
|
||||
Token: token,
|
||||
RefreshToken: refreshToken,
|
||||
@@ -90,6 +93,14 @@ func (s *AuthServiceImpl) Login(ctx context.Context, req *contract.LoginRequest)
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *AuthServiceImpl) saveFcmToken(ctx context.Context, userID uuid.UUID, fcmToken *string) {
|
||||
if fcmToken != nil && *fcmToken != "" {
|
||||
if err := s.userProcessor.UpdateFcmToken(ctx, userID, *fcmToken); err != nil {
|
||||
log.Printf("failed to save FCM token for user %s: %v", userID, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (s *AuthServiceImpl) ValidateToken(tokenString string) (*contract.UserResponse, error) {
|
||||
claims, err := s.parseToken(tokenString)
|
||||
if err != nil {
|
||||
|
||||
@@ -20,4 +20,5 @@ type UserProcessor interface {
|
||||
ActivateUser(ctx context.Context, userID uuid.UUID) error
|
||||
DeactivateUser(ctx context.Context, userID uuid.UUID) error
|
||||
UpdateUserOutlet(ctx context.Context, userID uuid.UUID, req *models.UpdateUserOutletRequest) (*models.UserResponse, error)
|
||||
UpdateFcmToken(ctx context.Context, userID uuid.UUID, fcmToken string) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user