Class: FragmentClient
- Inherits:
-
Object
- Object
- FragmentClient
- Extended by:
- T::Sig
- Defined in:
- lib/fragment_client.rb
Overview
A client for Fragment
Instance Method Summary collapse
-
#initialize(client_id, client_secret) ⇒ FragmentClient
constructor
A new instance of FragmentClient.
- #query(query, variables) ⇒ Object
Constructor Details
#initialize(client_id, client_secret) ⇒ FragmentClient
Returns a new instance of FragmentClient.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/fragment_client.rb', line 36 def initialize(client_id, client_secret) conn = T.let(Faraday.new('https://auth.fragment.dev') do |f| f.request :url_encoded f.request :authorization, :basic, client_id, client_secret f.adapter :net_http end, Faraday::Connection) @token = T.let(get_token(conn, client_id), String) FragmentGraphQl::Queries.constants.each do |q| name = q.to_s.gsub(/[a-z]([A-Z])/) do |m| format('%<lower>s_%<upper>s', lower: m[0], upper: m[1].downcase) end.gsub(/^[A-Z]/, &:downcase) define_singleton_method(name) do |v| query(FragmentGraphQl::Queries.const_get(q), v) end end end |
Instance Method Details
#query(query, variables) ⇒ Object
54 55 56 |
# File 'lib/fragment_client.rb', line 54 def query(query, variables) FragmentGraphQl::Client.query(query, variables: variables, context: { access_token: @token }) end |