vng 3.0.1 → 3.2.0
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/vng/client.rb +28 -0
- data/lib/vng/lead.rb +8 -4
- data/lib/vng/mock_request.rb +13 -1
- data/lib/vng/version.rb +1 -1
- data/lib/vng.rb +1 -0
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b010ddfb951a8a49807d40e1eae41355cfac53f9eb4774143e3b86ffbc4b892b
         | 
| 4 | 
            +
              data.tar.gz: c495b73abd2a24b93f7fe0556a1ede1a48adeb9e08b19809099d9c95134c9fb6
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 50527cbbbbb3e550b54052dd9ff42e511d24fcf6904687ad46b1a7f931882a4064fed2db14243ca4f8d5c890147f806c7f2a7dbb33ff0708848b7e09448bc79b
         | 
| 7 | 
            +
              data.tar.gz: 7611cfffca87c56f59a39e526386ebd1c224d65c6d8be53d86518f0f5dc2a616c3d80e6d4242032939a5bc6380dd259bb95a133fec775bb67f3288b4d51ff328
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/lib/vng/client.rb
    ADDED
    
    | @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            require 'vng/availability'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Vng
         | 
| 4 | 
            +
              # Provides methods to interact with Vonigo clients.
         | 
| 5 | 
            +
              class Client < Resource
         | 
| 6 | 
            +
                PATH = '/api/v1/data/Clients/'
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                attr_reader :id, :email
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                def initialize(id:, email:)
         | 
| 11 | 
            +
                  @id = id
         | 
| 12 | 
            +
                  @email = email
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
             | 
| 16 | 
            +
                def self.find(contact_id)
         | 
| 17 | 
            +
                  body = {
         | 
| 18 | 
            +
                    method: '1',
         | 
| 19 | 
            +
                    objectID: contact_id,
         | 
| 20 | 
            +
                  }
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  data = request path: PATH, body: body
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  email = value_for_field data, 238
         | 
| 25 | 
            +
                  new id: contact_id, email: email
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
            end
         | 
    
        data/lib/vng/lead.rb
    CHANGED
    
    | @@ -5,16 +5,17 @@ module Vng | |
| 5 5 | 
             
              class Lead < Resource
         | 
| 6 6 | 
             
                PATH = '/api/v1/data/Leads/'
         | 
| 7 7 |  | 
| 8 | 
            -
                attr_reader :id, :name, :email, :phone
         | 
| 8 | 
            +
                attr_reader :id, :name, :email, :phone, :notes
         | 
| 9 9 |  | 
| 10 | 
            -
                def initialize(id:, name:, email:, phone:)
         | 
| 10 | 
            +
                def initialize(id:, name:, email:, phone:, notes:)
         | 
| 11 11 | 
             
                  @id = id
         | 
| 12 12 | 
             
                  @name = name
         | 
| 13 13 | 
             
                  @email = email
         | 
| 14 14 | 
             
                  @phone = phone
         | 
| 15 | 
            +
                  @notes = notes
         | 
| 15 16 | 
             
                end
         | 
| 16 17 |  | 
| 17 | 
            -
                def self.create(name:, email:, phone:)
         | 
| 18 | 
            +
                def self.create(name:, email:, phone:, notes: nil)
         | 
| 18 19 | 
             
                  body = {
         | 
| 19 20 | 
             
                    method: '3',
         | 
| 20 21 | 
             
                    Fields: [
         | 
| @@ -25,14 +26,17 @@ module Vng | |
| 25 26 | 
             
                    ]
         | 
| 26 27 | 
             
                  }
         | 
| 27 28 |  | 
| 29 | 
            +
                  body[:Fields] << { fieldID: 108, fieldValue: notes } if notes
         | 
| 30 | 
            +
             | 
| 28 31 | 
             
                  data = request path: PATH, body: body
         | 
| 29 32 |  | 
| 30 33 | 
             
                  id = data['Client']['objectID']
         | 
| 31 34 | 
             
                  name = value_for_field data, 127
         | 
| 32 35 | 
             
                  email = value_for_field data, 238
         | 
| 33 36 | 
             
                  phone = value_for_field data, 1024
         | 
| 37 | 
            +
                  notes = value_for_field data, 108
         | 
| 34 38 |  | 
| 35 | 
            -
                  new id: id, name: name, email: email, phone: phone
         | 
| 39 | 
            +
                  new id: id, name: name, email: email, phone: phone, notes: notes
         | 
| 36 40 | 
             
                end
         | 
| 37 41 | 
             
              end
         | 
| 38 42 | 
             
            end
         | 
    
        data/lib/vng/mock_request.rb
    CHANGED
    
    | @@ -118,6 +118,7 @@ module Vng | |
| 118 118 | 
             
                        { "fieldID"=>126, "fieldValue"=>"Vng Example" },
         | 
| 119 119 | 
             
                        { "fieldID"=>238, "fieldValue"=>"vng@example.com" },
         | 
| 120 120 | 
             
                        { "fieldID"=>1024, "fieldValue"=>"8648648640" },
         | 
| 121 | 
            +
                        { "fieldID"=>108, "fieldValue"=>"Lead notes" },
         | 
| 121 122 | 
             
                      ] }
         | 
| 122 123 | 
             
                    end
         | 
| 123 124 | 
             
                  when '/api/v1/data/Contacts/'
         | 
| @@ -130,7 +131,14 @@ module Vng | |
| 130 131 | 
             
                          {"fieldID"=>96, "fieldValue"=>"8648648640" },
         | 
| 131 132 | 
             
                        ], "Relations" => [
         | 
| 132 133 | 
             
                          {"objectID" => 915738, "relationType" => "client", "isActive" => "true"},
         | 
| 133 | 
            -
                        ]}
         | 
| 134 | 
            +
                        ]},
         | 
| 135 | 
            +
                        {"objectID" => "2201008", "dateLastEdited" => "1736479081", "isActive" => "true", "Fields" => [
         | 
| 136 | 
            +
                          {"fieldID"=>127, "fieldValue"=>"No" },
         | 
| 137 | 
            +
                          {"fieldID"=>128, "fieldValue"=>"Email" },
         | 
| 138 | 
            +
                          {"fieldID"=>96, "fieldValue"=>"8648648640" },
         | 
| 139 | 
            +
                        ], "Relations" => [
         | 
| 140 | 
            +
                          {"objectID" => 916758, "relationType" => "client", "isActive" => "true"},
         | 
| 141 | 
            +
                        ]},
         | 
| 134 142 | 
             
                      ]}
         | 
| 135 143 | 
             
                    elsif @body[:pageNo].nil?
         | 
| 136 144 | 
             
                      { "Contact"=>{ "objectID"=>"2201007" }, "Fields"=> [
         | 
| @@ -144,6 +152,10 @@ module Vng | |
| 144 152 | 
             
                    end
         | 
| 145 153 | 
             
                  when '/api/v1/data/Locations/'
         | 
| 146 154 | 
             
                    { "Location"=>{ "objectID"=>995681 } }
         | 
| 155 | 
            +
                  when '/api/v1/data/Clients/'
         | 
| 156 | 
            +
                    { "Client" => { "objectID" => "916758" }, "Fields" => [
         | 
| 157 | 
            +
                      { "fieldID" => 238, "fieldValue" => "vng@example.com", "optionID" => 0 }
         | 
| 158 | 
            +
                    ] }
         | 
| 147 159 | 
             
                  when '/api/v1/data/Assets/'
         | 
| 148 160 | 
             
                    if @body[:method].eql? '3'
         | 
| 149 161 | 
             
                      if @body[:Fields].find{|field| field[:fieldID] == 1014}[:optionID].eql? 304
         | 
    
        data/lib/vng/version.rb
    CHANGED
    
    
    
        data/lib/vng.rb
    CHANGED
    
    | @@ -10,6 +10,7 @@ require_relative 'vng/availability' | |
| 10 10 | 
             
            require_relative 'vng/breed'
         | 
| 11 11 | 
             
            require_relative 'vng/case'
         | 
| 12 12 | 
             
            require_relative 'vng/connection_error'
         | 
| 13 | 
            +
            require_relative 'vng/client'
         | 
| 13 14 | 
             
            require_relative 'vng/contact'
         | 
| 14 15 | 
             
            require_relative 'vng/franchise'
         | 
| 15 16 | 
             
            require_relative 'vng/lead'
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: vng
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3.0 | 
| 4 | 
            +
              version: 3.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - claudiob
         | 
| 8 8 | 
             
            bindir: exe
         | 
| 9 9 | 
             
            cert_chain: []
         | 
| 10 | 
            -
            date: 2025-01- | 
| 10 | 
            +
            date: 2025-01-15 00:00:00.000000000 Z
         | 
| 11 11 | 
             
            dependencies:
         | 
| 12 12 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 13 13 | 
             
              name: simplecov
         | 
| @@ -69,6 +69,7 @@ files: | |
| 69 69 | 
             
            - lib/vng/availability.rb
         | 
| 70 70 | 
             
            - lib/vng/breed.rb
         | 
| 71 71 | 
             
            - lib/vng/case.rb
         | 
| 72 | 
            +
            - lib/vng/client.rb
         | 
| 72 73 | 
             
            - lib/vng/config.rb
         | 
| 73 74 | 
             
            - lib/vng/configuration.rb
         | 
| 74 75 | 
             
            - lib/vng/connection_error.rb
         |