Class: Poke::API::Client
- Inherits:
-
Object
- Object
- Poke::API::Client
- Includes:
- Logging
- Defined in:
- lib/poke-api/client.rb
Instance Attribute Summary collapse
-
#alt ⇒ Object
Returns the value of attribute alt.
-
#auth ⇒ Object
readonly
Returns the value of attribute auth.
-
#endpoint ⇒ Object
Returns the value of attribute endpoint.
-
#http_client ⇒ Object
Returns the value of attribute http_client.
-
#lat ⇒ Object
Returns the value of attribute lat.
-
#lng ⇒ Object
Returns the value of attribute lng.
-
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
-
#sig_loaded ⇒ Object
Returns the value of attribute sig_loaded.
-
#sig_path ⇒ Object
readonly
Returns the value of attribute sig_path.
-
#ticket ⇒ Object
Returns the value of attribute ticket.
Instance Method Summary collapse
- #activate_signature(file_path) ⇒ Object
- #call ⇒ Object
-
#initialize ⇒ Client
constructor
A new instance of Client.
- #inspect ⇒ Object
- #login(username, password, provider) ⇒ Object
- #store_lat_lng(lat, lng) ⇒ Object
- #store_location(loc) ⇒ Object
Methods included from Logging
formatter=, log_level=, #logger
Constructor Details
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object (private)
102 103 104 105 106 107 |
# File 'lib/poke-api/client.rb', line 102 def method_missing(method, *args) POGOProtos::Networking::Requests::RequestType.const_get(method.upcase) @reqs << (args.empty? ? method.to_sym.upcase : { method.to_sym.upcase => args.first }) rescue NameError super end |
Instance Attribute Details
#alt ⇒ Object
Returns the value of attribute alt.
5 6 7 |
# File 'lib/poke-api/client.rb', line 5 def alt @alt end |
#auth ⇒ Object (readonly)
Returns the value of attribute auth.
7 8 9 |
# File 'lib/poke-api/client.rb', line 7 def auth @auth end |
#endpoint ⇒ Object
Returns the value of attribute endpoint.
5 6 7 |
# File 'lib/poke-api/client.rb', line 5 def endpoint @endpoint end |
#http_client ⇒ Object
Returns the value of attribute http_client.
5 6 7 |
# File 'lib/poke-api/client.rb', line 5 def http_client @http_client end |
#lat ⇒ Object
Returns the value of attribute lat.
5 6 7 |
# File 'lib/poke-api/client.rb', line 5 def lat @lat end |
#lng ⇒ Object
Returns the value of attribute lng.
5 6 7 |
# File 'lib/poke-api/client.rb', line 5 def lng @lng end |
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
5 6 7 |
# File 'lib/poke-api/client.rb', line 5 def refresh_token @refresh_token end |
#sig_loaded ⇒ Object
Returns the value of attribute sig_loaded.
5 6 7 |
# File 'lib/poke-api/client.rb', line 5 def sig_loaded @sig_loaded end |
#sig_path ⇒ Object (readonly)
Returns the value of attribute sig_path.
7 8 9 |
# File 'lib/poke-api/client.rb', line 7 def sig_path @sig_path end |
#ticket ⇒ Object
Returns the value of attribute ticket.
5 6 7 |
# File 'lib/poke-api/client.rb', line 5 def ticket @ticket end |
Instance Method Details
#activate_signature(file_path) ⇒ Object
53 54 55 56 57 58 59 60 |
# File 'lib/poke-api/client.rb', line 53 def activate_signature(file_path) if File.exist?(file_path) logger.info "[+] File #{file_path} has been set for signature generation" @sig_path = file_path else raise Errors::InvalidSignatureFilePath, file_path end end |
#call ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/poke-api/client.rb', line 34 def call raise Errors::LoginRequired unless @auth raise Errors::NoRequests if @reqs.empty? check_expiry req = RequestBuilder.new(@auth, [@lat, @lng, @alt], @endpoint, @http_client) begin resp = req.request(@reqs, self) rescue StandardError => ex raise Errors::UnknownProtoFault, ex ensure @reqs = [] logger.info '[+] Cleaning up RPC requests' end resp end |
#inspect ⇒ Object
75 76 77 78 |
# File 'lib/poke-api/client.rb', line 75 def inspect "#<#{self.class.name} @auth=#{@auth} @reqs=#{@reqs} " \ "@lat=#{@lat} @lng=#{@lng} @alt=#{@alt}>" end |
#login(username, password, provider) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/poke-api/client.rb', line 19 def login(username, password, provider) @username, @password, @provider = username, password, provider.upcase raise Errors::InvalidProvider, provider unless %w(PTC GOOGLE).include?(@provider) begin @auth = Auth.const_get(@provider).new(@username, @password, @refresh_token) @auth.connect rescue StandardError => ex raise Errors::LoginFailure.new(@provider, ex) end initialize_ticket logger.info "[+] Login with #{@provider} Successful" end |
#store_lat_lng(lat, lng) ⇒ Object
70 71 72 73 |
# File 'lib/poke-api/client.rb', line 70 def store_lat_lng(lat, lng) logger.info "[+] Lat/Long: #{lat}, #{lng}" @lat, @lng = lat, lng end |
#store_location(loc) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/poke-api/client.rb', line 62 def store_location(loc) pos = Poke::API::Helpers.get_position(loc).first logger.info "[+] Given location: #{pos.address}" logger.info "[+] Lat/Long/Alt: #{pos.latitude}, #{pos.longitude}" @lat, @lng = pos.latitude, pos.longitude end |