class JsonWebToken
  class << self
    def encode(payload, exp: 24.hours.from_now)
      payload[:exp] = exp.to_i
      JWT.encode(payload, MatchLiveTv.jwt_secret, "HS256")
    end

    def decode(token)
      body = JWT.decode(token, MatchLiveTv.jwt_secret, true, algorithm: "HS256").first
      HashWithIndifferentAccess.new(body)
    rescue JWT::DecodeError
      nil
    end
  end
end
