class NEC::MockServer::Router
Class represents all routes that application can served. For customize own mock application is necessary to create own router class by inheritance of this class
Constants
- CONTENT_TYPES
- DEFAULT_APPLICATION_NAME
- DEFAULT_HEADER
- JSON_HEADER
Public Class Methods
The method create new instance of router
@param [String] application_name
# File lib/nec_mock_server/mock_server.rb, line 176 def initialize(application_name) @application_name = application_name || DEFAULT_APPLICATION_NAME end
Public Instance Methods
The method represent base server error response, 500 Internal Server
Error
@param [Object] body Body of response @param [Hash] headers Headers of response
@return [Array] response_data
# File lib/nec_mock_server/mock_server.rb, line 243 def error(body, headers = DEFAULT_HEADER) prepare_response_data(500, headers, body) end
The method represent base server error response, 400 Internal Server
Error
@param [Object] body Body of response @param [Hash] headers Headers of response
@return [Array] response_data
# File lib/nec_mock_server/mock_server.rb, line 254 def exception(body, headers = DEFAULT_HEADER) prepare_response_data(400, headers, body) end
The method represent default home route on “/” or “” Return 200 OK a and application_name
# File lib/nec_mock_server/mock_server.rb, line 202 def home ok(@application_name) end
The method represent specific not found response for request on no registered pair tid-awid
@param [String] tid @param [String] awid
# File lib/nec_mock_server/mock_server.rb, line 232 def no_registered_awid(tid, awid) prepare_response_data(404, DEFAULT_HEADER, "Mock Server has no registered TID-AWID '#{tid}-#{awid}' for #{@application_name}") end
The method represent base not found response, 404 Not Found
@param [String] resource Resource is required route part, which was no defined.
@return [Array] response_data
# File lib/nec_mock_server/mock_server.rb, line 223 def not_found(resource) prepare_response_data(404, DEFAULT_HEADER, "Undefined Mock Server resource '#{resource}' for #{@application_name}") end
The method represent base success response, 200 OK
@param [Object] body Body of response @param [Hash] headers Headers of response
@return [Array] response_data
# File lib/nec_mock_server/mock_server.rb, line 213 def ok(body = nil, headers = DEFAULT_HEADER) prepare_response_data(200, headers, body) end
The method process all operation on defined request URL and return response data
@param [Hash] parts All parts find by specified matcher of URL request @param [String] request_data Received data by request @param [Hash] identity
# File lib/nec_mock_server/mock_server.rb, line 186 def route(parts, request_data, identity = nil) case parts[:resource] when "/", "" home when "/exception" exception("Application exception.") when "/error" error("Server exception.") else not_found(parts[:resource]) end end
Private Instance Methods
The method prepare response data as Array
@param [String] http_code @param [Hash] headers @param [Object] body
@param [Array] response_data
# File lib/nec_mock_server/mock_server.rb, line 268 def prepare_response_data(http_code, headers, body) body = body.nil? ? '' : body body = body.to_json if body.is_a?(Hash) body = body.to_s unless body.is_a?(String) [http_code, headers.nil? ? DEFAULT_HEADER : headers, [body]] end