Class: SuggestGrid::RecommendationController
- Inherits:
-
BaseController
- Object
- BaseController
- SuggestGrid::RecommendationController
- Defined in:
- lib/suggestgrid/controllers/recommendation_controller.rb
Overview
RecommendationController
Class Attribute Summary collapse
-
.instance ⇒ Object
Returns the value of attribute instance.
Attributes inherited from BaseController
Instance Method Summary collapse
-
#get_recommended_items(query) ⇒ Object
Returns recommended items for the query.
-
#get_recommended_users(query) ⇒ Object
Returns recommended users for the query.
- #instance ⇒ Object
Methods inherited from BaseController
#execute_request, #initialize, #validate_parameters, #validate_response
Constructor Details
This class inherits a constructor from SuggestGrid::BaseController
Class Attribute Details
.instance ⇒ Object
Returns the value of attribute instance.
10 11 12 |
# File 'lib/suggestgrid/controllers/recommendation_controller.rb', line 10 def instance @instance end |
Instance Method Details
#get_recommended_items(query) ⇒ Object
Returns recommended items for the query. recommended items.
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/suggestgrid/controllers/recommendation_controller.rb', line 76 def get_recommended_items(query) # Prepare query url. _query_builder = Configuration.base_uri.dup _query_builder << '/v1/recommend/items' _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json', 'content-type' => 'application/json; charset=utf-8' } # Prepare and execute HttpRequest. _request = @http_client.post( _query_url, headers: _headers, parameters: query.to_json ) BasicAuth.apply(_request) _context = execute_request(_request) # Validate response against endpoint and global error codes. if _context.response.status_code == 400 raise ErrorResponse.new( 'Request body is invalid.', _context ) elsif _context.response.status_code == 404 raise ErrorResponse.new( 'At least one type in the request does not exist.', _context ) elsif _context.response.status_code == 422 raise ErrorResponse.new( 'Required parameters are missing.', _context ) end unless _context.response.status_code.between?(200, 208) raise ErrorResponse.new( 'Unexpected internal error.', _context ) end validate_response(_context) # Return appropriate response type. decoded = APIHelper.json_deserialize(_context.response.raw_body) ItemsResponse.from_hash(decoded) end |
#get_recommended_users(query) ⇒ Object
Returns recommended users for the query. recommended users.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/suggestgrid/controllers/recommendation_controller.rb', line 21 def get_recommended_users(query) # Prepare query url. _query_builder = Configuration.base_uri.dup _query_builder << '/v1/recommend/users' _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json', 'content-type' => 'application/json; charset=utf-8' } # Prepare and execute HttpRequest. _request = @http_client.post( _query_url, headers: _headers, parameters: query.to_json ) BasicAuth.apply(_request) _context = execute_request(_request) # Validate response against endpoint and global error codes. if _context.response.status_code == 400 raise ErrorResponse.new( 'Request body is invalid.', _context ) elsif _context.response.status_code == 404 raise ErrorResponse.new( 'At least one type in the request does not exist.', _context ) elsif _context.response.status_code == 422 raise ErrorResponse.new( 'Required parameters are missing.', _context ) end unless _context.response.status_code.between?(200, 208) raise ErrorResponse.new( 'Unexpected internal error.', _context ) end validate_response(_context) # Return appropriate response type. decoded = APIHelper.json_deserialize(_context.response.raw_body) UsersResponse.from_hash(decoded) end |
#instance ⇒ Object
13 14 15 |
# File 'lib/suggestgrid/controllers/recommendation_controller.rb', line 13 def instance self.class.instance end |