Class: Shipit::ApiClient
- Defined in:
- app/models/shipit/api_client.rb
Constant Summary collapse
- InsufficientPermission =
Class.new(StandardError)
- PERMISSIONS =
%w[ read:stack write:stack deploy:stack lock:stack read:hook write:hook ].freeze
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from Record
Class Method Details
.authenticate(token) ⇒ Object
24 25 26 27 |
# File 'app/models/shipit/api_client.rb', line 24 def authenticate(token) find_by(id: .verify(token).to_i) rescue Shipit::SimpleMessageVerifier::InvalidSignature end |
.message_verifier ⇒ Object
29 30 31 |
# File 'app/models/shipit/api_client.rb', line 29 def @message_verifier ||= Shipit::SimpleMessageVerifier.new(Shipit.api_clients_secret) end |
Instance Method Details
#authentication_token ⇒ Object
34 35 36 |
# File 'app/models/shipit/api_client.rb', line 34 def authentication_token self.class..generate(id) end |
#check_permissions!(operation, scope) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'app/models/shipit/api_client.rb', line 38 def (operation, scope) = "#{operation}:#{scope}" unless .include?() raise InsufficientPermission, "This operation requires the `#{}` permission" end true end |