Class: Etna::Clients::LocalMagmaClient
- Inherits:
-
Object
- Object
- Etna::Clients::LocalMagmaClient
- Defined in:
- lib/etna/clients/magma/client.rb
Overview
May only be used from within magma app.
Instance Method Summary collapse
- #fake_request(request) ⇒ Object
- #logger ⇒ Object
- #parse_json_response(response) ⇒ Object
- #retrieve(retrieval_request = RetrievalRequest.new) ⇒ Object
- #update_model(update_model_request = UpdateModelRequest.new) ⇒ Object
- #user ⇒ Object
Instance Method Details
#fake_request(request) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/etna/clients/magma/client.rb', line 20 def fake_request(request) Rack::Request.new({ 'rack.request.params' => request.as_json, 'etna.logger' => self.logger, 'etna.user' => user, 'etna.request_id' => 'local', }) end |
#logger ⇒ Object
10 11 12 |
# File 'lib/etna/clients/magma/client.rb', line 10 def logger ::Magma.instance.logger end |
#parse_json_response(response) ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/etna/clients/magma/client.rb', line 29 def parse_json_response(response) status, headers, body = response body = body.join('') if status < 200 || status >= 300 raise Etna::Error.new(body, status) end JSON.parse(body) end |
#retrieve(retrieval_request = RetrievalRequest.new) ⇒ Object
39 40 41 42 |
# File 'lib/etna/clients/magma/client.rb', line 39 def retrieve(retrieval_request = RetrievalRequest.new) controller = ::RetrieveController.new(fake_request(retrieval_request), nil) Magma::RetrievalResponse.new(parse_json_response(controller.action)) end |
#update_model(update_model_request = UpdateModelRequest.new) ⇒ Object
44 45 46 47 |
# File 'lib/etna/clients/magma/client.rb', line 44 def update_model(update_model_request = UpdateModelRequest.new) controller = ::UpdateModelController.new(fake_request(update_model_request), nil) Magma::UpdateModelResponse.new(parse_json_response(controller.action)) end |
#user ⇒ Object
14 15 16 17 18 |
# File 'lib/etna/clients/magma/client.rb', line 14 def user = Etna::Permissions.new([]) .(Etna::Permission.new('A', 'administration')) @user ||= Etna::User.new({name: 'Admin', email: '[email protected]', perm: .to_string}) end |