lib/ecoportal/api/common/graphql/auth_service.rb in ecoportal-api-graphql-0.3.16 vs lib/ecoportal/api/common/graphql/auth_service.rb in ecoportal-api-graphql-0.4.0

- old
+ new

@@ -1,70 +1,80 @@ module Ecoportal module API module Common module GraphQL module AuthService - DEFAULT_SERVER = "live.ecoportal.com" + DEFAULT_SERVER = "live.ecoportal.com".freeze TOKEN_AUTORENEW = 90 # minutes module InstanceMethods def session_token(host: server, version: nil, auto_renew: true) - session_token_data(host: host, version: version).yield_self do |body| - return nil unless body + session_token_data(host: host, version: version).then do |body| + next unless body + if auto_renew && token_renew?(body["expires_in"]) - session_token_renewed(host: host, version: version, refresh_token: body["refresh_token"]) + session_token_renewed( + host: host, + version: version, + refresh_token: body["refresh_token"] + ) else body["access_token"] end end end def session_token_renewed(host: server, version: nil, refresh_token: nil) unless refresh_token - return nil unless body = session_token_data(host: host, version: version) - return nil unless refresh_token = body["resfresh_token"] + return unless (body = session_token_data(host: host, version: version)) + return unless (refresh_token = body["resfresh_token"]) end - session_refresh_token_data(host: host, version: version, refresh_token: refresh_token).yield_self do |body| - return nil unless body - body["access_token"] if body + + session_refresh_token_data( + host: host, + version: version, + refresh_token: refresh_token + ).then do |bdy| + bdy["access_token"] if bdy end end private def session_token_data(host: server, version: nil) - http_client(host: host, version: version).post("/oauth/token", data: { - "grant_type" => "password", - "email" => user_email, - "password" => user_pass - }).yield_self do |response| - if response.success? - response.body - else - nil - end + http_client(host: host, version: version).post( + "/oauth/token", + data: { + "grant_type" => "password", + "email" => user_email, + "password" => user_pass + } + ).then do |response| + next response.body if response.success? end end - def session_refresh_token_data(host: server, version: nil, refresh_token:) - http_client(host: host, version: version).post("/oauth/token", data: { - "grant_type" => "refresh_token", - "refresh_token" => refresh_token - }).yield_self do |response| - if response.success? - response.body - else - nil - end + def session_refresh_token_data(refresh_token:, host: server, version: nil) + http_client(host: host, version: version).post( + "/oauth/token", + data: { + "grant_type" => "refresh_token", + "refresh_token" => refresh_token + } + ).then do |response| + next response.body if response.success? end end def token_renew?(seconds) (TOKEN_AUTORENEW * 60) > seconds end def http_client(host: server, version: nil) - @http_client ||= Ecoportal::API::Common::GraphQL::HttpClient.new(host: host, version: version) + @http_client ||= Ecoportal::API::Common::GraphQL::HttpClient.new( + host: host, + version: version + ) end def user_email @user_email || fetch_env_required("USER_EMAIL") end