widgit_accounts_sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/lib/widgit_accounts_sdk/client.rb +94 -0
 - data/lib/widgit_accounts_sdk/configuration.rb +11 -0
 - data/lib/widgit_accounts_sdk.rb +23 -0
 - metadata +45 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 8a59aef3a5e0413b6cce398b9bbde9c5bc8c058e12d5f95b94f549da7fc2a7f6
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: ca056e41a9891b1b5c6d6f016c1c12c88a35566979d031c7f365e1788eba9fc1
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 37c5d73075994e18cd8681cbf984cc4e117a9560a95cbcad51c8bf38fa87ce560c3a24a2b1e703d184bef386fea833a42169b64b164273c53ebf00fcadc8f0ba
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 74d86331f5ab85917c974b29911ba6964ce69e327d0eb117c1bed0caf48a3ef5cb2ff7b5fbce575926f33c675d44a187e0eb656796a74a9b6ee4de819d610ebd
         
     | 
| 
         @@ -0,0 +1,94 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'uri'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'net/http'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module WidgitAccountsSdk
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Client
         
     | 
| 
      
 6 
     | 
    
         
            +
                extend self
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                def find_with_uid(uid)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  response = request("/api/v1/accounts?uid=#{uid}")
         
     | 
| 
      
 10 
     | 
    
         
            +
                  return failed(response['error']) if response['status'] == 'failure'
         
     | 
| 
      
 11 
     | 
    
         
            +
                  return success.merge('account' => response.dig('data', 0))
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                def find_with_email(email)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  response = request("/api/v1/accounts?email=#{email}")
         
     | 
| 
      
 16 
     | 
    
         
            +
                  return failed(response['error']) if response['status'] == 'failure'
         
     | 
| 
      
 17 
     | 
    
         
            +
                  return success.merge('account' => response.dig('data', 0))
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                def find_with_username(username)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  response = request("/api/v1/accounts?username=#{username}")
         
     | 
| 
      
 22 
     | 
    
         
            +
                  return failed(response['error']) if response['status'] == 'failure'
         
     | 
| 
      
 23 
     | 
    
         
            +
                  return success.merge('account' => response.dig('data', 0))
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                def exists?(email)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  response = request("/api/v1/accounts/check?email=#{email}")
         
     | 
| 
      
 28 
     | 
    
         
            +
                  return failed(response['error']) if response['status'] == 'failure'
         
     | 
| 
      
 29 
     | 
    
         
            +
                  return success.merge('exists' => response['exists'])
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                def invite(email, first_name, last_name)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  response = request("/api/v1/accounts/invite?email=#{email}&first_name=#{first_name}&last_name=#{last_name}", :post)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  return failed(response['error']) if response['status'] == 'failure'
         
     | 
| 
      
 35 
     | 
    
         
            +
                  return response
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                def get_new_invite_token(email)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  response = request("/api/v1/accounts/invite?email=#{email}", :post)
         
     | 
| 
      
 40 
     | 
    
         
            +
                  return response['data']['invitation_token'] if response['status'] == 'success'
         
     | 
| 
      
 41 
     | 
    
         
            +
                  return nil
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                def create_account(params)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  response = request("/api/v1/accounts", :post, params)
         
     | 
| 
      
 46 
     | 
    
         
            +
                  return failed(response['error']) if response['status'] == 'failure'
         
     | 
| 
      
 47 
     | 
    
         
            +
                  return response
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                def update_account(uid, params)
         
     | 
| 
      
 51 
     | 
    
         
            +
                  response = request("/api/v1/accounts/#{uid}", :patch, params)
         
     | 
| 
      
 52 
     | 
    
         
            +
                  return failed(response['error']) if response['status'] == 'failure'
         
     | 
| 
      
 53 
     | 
    
         
            +
                  return response
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                private
         
     | 
| 
      
 57 
     | 
    
         
            +
                def request(path, method = :get, params = {})
         
     | 
| 
      
 58 
     | 
    
         
            +
                  uri = URI.parse("#{WidgitAccountsSdk.configuration.host}#{path}")
         
     | 
| 
      
 59 
     | 
    
         
            +
                  http = Net::HTTP.new(uri.host, uri.port)
         
     | 
| 
      
 60 
     | 
    
         
            +
                  http.use_ssl = (uri.scheme == "https")
         
     | 
| 
      
 61 
     | 
    
         
            +
                  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
         
     | 
| 
      
 62 
     | 
    
         
            +
                  http.open_timeout = 30
         
     | 
| 
      
 63 
     | 
    
         
            +
                  http.read_timeout = 30
         
     | 
| 
      
 64 
     | 
    
         
            +
                  case method
         
     | 
| 
      
 65 
     | 
    
         
            +
                  when :get
         
     | 
| 
      
 66 
     | 
    
         
            +
                    req = Net::HTTP::Get.new(uri.request_uri)
         
     | 
| 
      
 67 
     | 
    
         
            +
                  when :post
         
     | 
| 
      
 68 
     | 
    
         
            +
                    req = Net::HTTP::Post.new(uri.request_uri)
         
     | 
| 
      
 69 
     | 
    
         
            +
                    req.body = params.to_query
         
     | 
| 
      
 70 
     | 
    
         
            +
                  when :patch
         
     | 
| 
      
 71 
     | 
    
         
            +
                    req = Net::HTTP::Patch.new(uri.request_uri)
         
     | 
| 
      
 72 
     | 
    
         
            +
                    req.body = params.to_query
         
     | 
| 
      
 73 
     | 
    
         
            +
                  end
         
     | 
| 
      
 74 
     | 
    
         
            +
                  req["Authorization"] = WidgitAccountsSdk.configuration.api_key
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 77 
     | 
    
         
            +
                    http.start do
         
     | 
| 
      
 78 
     | 
    
         
            +
                      res = http.request(req)
         
     | 
| 
      
 79 
     | 
    
         
            +
                      JSON.parse(res.body)
         
     | 
| 
      
 80 
     | 
    
         
            +
                    end
         
     | 
| 
      
 81 
     | 
    
         
            +
                  rescue => e
         
     | 
| 
      
 82 
     | 
    
         
            +
                    return failed(e)
         
     | 
| 
      
 83 
     | 
    
         
            +
                  end
         
     | 
| 
      
 84 
     | 
    
         
            +
                end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                def failed(e)
         
     | 
| 
      
 87 
     | 
    
         
            +
                  { 'status' => 'failed', 'error' => e }
         
     | 
| 
      
 88 
     | 
    
         
            +
                end
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
                def success
         
     | 
| 
      
 91 
     | 
    
         
            +
                  { 'status' => 'success' }
         
     | 
| 
      
 92 
     | 
    
         
            +
                end
         
     | 
| 
      
 93 
     | 
    
         
            +
              end
         
     | 
| 
      
 94 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'widgit_accounts_sdk/configuration'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'widgit_accounts_sdk/client'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module WidgitAccountsSdk
         
     | 
| 
      
 5 
     | 
    
         
            +
              class << self
         
     | 
| 
      
 6 
     | 
    
         
            +
                # Instantiate the Configuration singleton
         
     | 
| 
      
 7 
     | 
    
         
            +
                # or return it. Remember that the instance
         
     | 
| 
      
 8 
     | 
    
         
            +
                # has attribute readers so that we can access
         
     | 
| 
      
 9 
     | 
    
         
            +
                # the configured values
         
     | 
| 
      
 10 
     | 
    
         
            +
                def configuration
         
     | 
| 
      
 11 
     | 
    
         
            +
                  @configuration ||= Configuration.new
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                # This is the configure block definition.
         
     | 
| 
      
 15 
     | 
    
         
            +
                # The configuration method will return the
         
     | 
| 
      
 16 
     | 
    
         
            +
                # Configuration singleton, which is then yielded
         
     | 
| 
      
 17 
     | 
    
         
            +
                # to the configure block. Then it's just a matter
         
     | 
| 
      
 18 
     | 
    
         
            +
                # of using the attribute accessors we previously defined
         
     | 
| 
      
 19 
     | 
    
         
            +
                def configure
         
     | 
| 
      
 20 
     | 
    
         
            +
                  yield(configuration)
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,45 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: widgit_accounts_sdk
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.1
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Stu Wright
         
     | 
| 
      
 8 
     | 
    
         
            +
            - James Sherriff
         
     | 
| 
      
 9 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 10 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 11 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2023-06-14 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies: []
         
     | 
| 
      
 14 
     | 
    
         
            +
            description: A Ruby client for interacting with the Widgit Accounts API
         
     | 
| 
      
 15 
     | 
    
         
            +
            email: james.sherriff@widgit.com
         
     | 
| 
      
 16 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 17 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 18 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 19 
     | 
    
         
            +
            files:
         
     | 
| 
      
 20 
     | 
    
         
            +
            - lib/widgit_accounts_sdk.rb
         
     | 
| 
      
 21 
     | 
    
         
            +
            - lib/widgit_accounts_sdk/client.rb
         
     | 
| 
      
 22 
     | 
    
         
            +
            - lib/widgit_accounts_sdk/configuration.rb
         
     | 
| 
      
 23 
     | 
    
         
            +
            homepage: 
         
     | 
| 
      
 24 
     | 
    
         
            +
            licenses: []
         
     | 
| 
      
 25 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 26 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 27 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 28 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 29 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 30 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 31 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 32 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 33 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 34 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 35 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 36 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 37 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 38 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 39 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 40 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 41 
     | 
    
         
            +
            rubygems_version: 3.3.7
         
     | 
| 
      
 42 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 43 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 44 
     | 
    
         
            +
            summary: Widgit Accounts API Client Ruby Gem
         
     | 
| 
      
 45 
     | 
    
         
            +
            test_files: []
         
     |