Sha256: b81a138267189135132a4b7f0b559ad617110562c9362e034e2396e64b80f477
Contents?: true
Size: 1.41 KB
Versions: 4
Compression:
Stored size: 1.41 KB
Contents
module FlexmlsApi module Authentication module OAuth2Impl #==OAuth2 Faraday response middleware # HTTP Response after filter to package oauth2 responses and bubble up basic api errors. class Middleware < Faraday::Response::ParseJson def on_complete(finished_env) body = parse(finished_env[:body]) FlexmlsApi.logger.debug("[oauth2] Response Body: #{body.inspect}") unless body.is_a?(Hash) raise InvalidResponse, "The server response could not be understood" end case finished_env[:status] when 200..299 FlexmlsApi.logger.debug("[oauth2] Success!") session = OAuthSession.new(body) else # Handle the WWW-Authenticate Response Header Field if present. This can be returned by # OAuth2 implementations and wouldn't hurt to log. auth_header_error = finished_env[:request_headers]["WWW-Authenticate"] FlexmlsApi.logger.warn("Authentication error #{auth_header_error}") unless auth_header_error.nil? raise ClientError, {:message => body["error"], :code =>0, :status => finished_env[:status]} end FlexmlsApi.logger.debug("[oauth2] Session=#{session.inspect}") finished_env[:body] = session end def initialize(app) super(app) end end end end end
Version data entries
4 entries across 4 versions & 2 rubygems