class Pusher::PushNotifications::UseCases::GenerateToken

Attributes

user[R]

Public Class Methods

generate_token(*args, **kwargs) click to toggle source
# File lib/pusher/push_notifications/use_cases/generate_token.rb, line 10
def generate_token(*args, **kwargs)
  new(*args, **kwargs).generate_token
end
new(user:) click to toggle source
# File lib/pusher/push_notifications/use_cases/generate_token.rb, line 15
def initialize(user:)
  @user = user
  @user_id = Pusher::PushNotifications::UserId.new

  raise GenerateTokenError, 'User Id cannot be empty.' if user.empty?

  if user.length > UserId::MAX_USER_ID_LENGTH
    raise GenerateTokenError, 'User id length too long ' \
    "(expected fewer than #{UserId::MAX_USER_ID_LENGTH + 1} characters)"
  end
end

Public Instance Methods

generate_token() click to toggle source

Creates a signed JWT for a user id.

# File lib/pusher/push_notifications/use_cases/generate_token.rb, line 28
def generate_token
  { 'token' => jwt_token.generate(user) }
end

Private Instance Methods

jwt_token() click to toggle source
# File lib/pusher/push_notifications/use_cases/generate_token.rb, line 36
def jwt_token
  @jwt_token ||= PushNotifications::Token.new
end