Class: Etna::Clients::Janus

Inherits:
BaseClient show all
Defined in:
lib/etna/clients/janus/client.rb,
lib/etna/clients/janus/models.rb,
lib/etna/clients/janus/workflows/generate_token_workflow.rb

Defined Under Namespace

Classes: AddProjectRequest, AddUserRequest, GenerateTokenWorkflow, GetProjectRequest, HtmlResponse, RefreshTokenRequest, TokenResponse, UpdatePermissionRequest, ValidateTaskTokenRequest, ViewerTokenRequest

Instance Attribute Summary

Attributes inherited from BaseClient

#host, #ignore_ssl, #token

Instance Method Summary collapse

Methods inherited from BaseClient

#initialize, #token_expired?, #token_will_expire?

Constructor Details

This class inherits a constructor from Etna::Clients::BaseClient

Instance Method Details

#add_project(add_project_request = AddProjectRequest.new) ⇒ Object



21
22
23
24
25
# File 'lib/etna/clients/janus/client.rb', line 21

def add_project(add_project_request = AddProjectRequest.new)
  @etna_client.post('/add_project', add_project_request) do |res|
    # Redirect, no response data
  end
end

#add_user(add_user_request = AddUserRequest.new) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/etna/clients/janus/client.rb', line 27

def add_user(add_user_request = AddUserRequest.new)
  @etna_client.post(
    "/add_user/#{add_user_request.project_name}",
    add_user_request) do |res|
    # Redirect, no response data
  end
end

#generate_token(token_type, signed_nonce: nil, project_name: nil) ⇒ Object



70
71
72
73
74
75
76
77
78
# File 'lib/etna/clients/janus/client.rb', line 70

def generate_token(token_type, signed_nonce: nil, project_name: nil)
  response = @etna_client.with_headers(
    'Authorization' => signed_nonce ? "Signed-Nonce #{signed_nonce}" : nil
  ) do
    post('/api/tokens/generate', token_type: token_type, project_name: project_name)
  end

  response.body
end

#get_nonceObject



66
67
68
# File 'lib/etna/clients/janus/client.rb', line 66

def get_nonce
  @etna_client.get('/api/tokens/nonce').body
end

#get_project(get_project_request = GetProjectRequest.new) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/etna/clients/janus/client.rb', line 10

def get_project(get_project_request = GetProjectRequest.new)
  html = nil
  @etna_client.get(
    "/project/#{get_project_request.project_name}",
    get_project_request) do |res|
    html = res.body
  end

  HtmlResponse.new(html)
end

#refresh_token(refresh_token_request = RefreshTokenRequest.new) ⇒ Object



43
44
45
46
47
48
49
50
# File 'lib/etna/clients/janus/client.rb', line 43

def refresh_token(refresh_token_request = RefreshTokenRequest.new)
  token = nil
  @etna_client.get('/refresh_token', refresh_token_request) do |res|
    token = res.body
  end

  TokenResponse.new(token)
end

#update_permission(update_permission_request = UpdatePermissionRequest.new) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/etna/clients/janus/client.rb', line 35

def update_permission(update_permission_request = UpdatePermissionRequest.new)
  @etna_client.post(
    "/update_permission/#{update_permission_request.project_name}",
    update_permission_request) do |res|
    # Redirect, no response data
  end
end

#validate_task_token(validate_task_token_request = ValidateTaskTokenRequest.new) ⇒ Object



61
62
63
64
# File 'lib/etna/clients/janus/client.rb', line 61

def validate_task_token(validate_task_token_request = ValidateTaskTokenRequest.new)
  token = nil
  @etna_client.post('/api/tokens/task/validate', validate_task_token_request)
end

#viewer_token(viewer_token_request = ViewerTokenRequest.new) ⇒ Object



52
53
54
55
56
57
58
59
# File 'lib/etna/clients/janus/client.rb', line 52

def viewer_token(viewer_token_request = ViewerTokenRequest.new)
  token = nil
  @etna_client.get('/viewer_token', viewer_token_request) do |res|
    token = res.body
  end

  TokenResponse.new(token)
end