Class: ComposeHook::Payload

Inherits:
Object
  • Object
show all
Defined in:
lib/compose_hook/payload.rb

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Payload

Returns a new instance of Payload.

Raises:



8
9
10
11
12
13
14
# File 'lib/compose_hook/payload.rb', line 8

def initialize(params)
  @secret = params[:secret]
  @expire = params[:expire] || 600

  raise ComposeHook::Error.new if @secret.to_s.empty?
  raise ComposeHook::Error.new unless @expire.positive?
end

Instance Method Details

#decode!(token) ⇒ Object



29
30
31
# File 'lib/compose_hook/payload.rb', line 29

def decode!(token)
  JWT.decode(token, @secret, true, algorithm: "HS256").first
end

#generate!(params) ⇒ Object

Raises:



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/compose_hook/payload.rb', line 16

def generate!(params)
  raise ComposeHook::Error.new if params[:service].to_s.empty?
  raise ComposeHook::Error.new if params[:image].to_s.empty?

  iat = params[:iat] || Time.now.to_i
  token = params.merge(
    'iat': iat,
    'exp': iat + @expire
  )

  JWT.encode(token, @secret, "HS256")
end

#safe_decode(token) ⇒ Object



33
34
35
36
37
# File 'lib/compose_hook/payload.rb', line 33

def safe_decode(token)
  decode!(token)
rescue JWT::ExpiredSignature, JWT::ImmatureSignature, JWT::VerificationError, JWT::DecodeError
  nil
end