circuit-api 0.0.13 → 0.0.19
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/lib/circuit_api.rb +1 -0
- data/lib/circuit_api/client.rb +4 -0
- data/lib/circuit_api/resources/base.rb +7 -0
- data/lib/circuit_api/resources/conversation.rb +5 -0
- data/lib/circuit_api/resources/message.rb +3 -0
- data/lib/circuit_api/resources/message_item.rb +101 -0
- data/lib/circuit_api/resources/user.rb +11 -0
- data/lib/circuit_api/resources/webhook.rb +1 -0
- data/lib/circuit_api/utils/errors.rb +19 -0
- data/lib/circuit_api/version.rb +1 -1
- metadata +15 -14
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9ce474a23b0044ab9eb65a9520538d0b8a7b436bb903c590e71b84c48a995b93
         | 
| 4 | 
            +
              data.tar.gz: ae0bd0fd17880639a8ccc6457fc37af1d507d7ff6a7a0ec3132a2517d466380f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 10e227014cb40e0d3cfe9bb17c6d0a153b4a3d465f778f67179259f5502abf4676efa423d6a086885f4ba8f29855fae73c6fcdf6213bc53840d2fd18d1a2b60a
         | 
| 7 | 
            +
              data.tar.gz: fb29aa1ca7e81ce0dec95abb18f6a588e2afc069c32fc98283d811af65d85d7b77f715e79530a033184395169e659ec4eebf44ef834420b0e828142a1103dc89
         | 
    
        data/lib/circuit_api.rb
    CHANGED
    
    | @@ -14,6 +14,7 @@ require 'circuit_api/utils/object' | |
| 14 14 | 
             
            require 'circuit_api/resources/base'
         | 
| 15 15 | 
             
            require 'circuit_api/resources/conversation'
         | 
| 16 16 | 
             
            require 'circuit_api/resources/label'
         | 
| 17 | 
            +
            require 'circuit_api/resources/message_item'
         | 
| 17 18 | 
             
            require 'circuit_api/resources/message'
         | 
| 18 19 | 
             
            require 'circuit_api/resources/presence'
         | 
| 19 20 | 
             
            require 'circuit_api/resources/rtc_session'
         | 
    
        data/lib/circuit_api/client.rb
    CHANGED
    
    
| @@ -68,6 +68,13 @@ module CircuitApi | |
| 68 68 | 
             
                    #binding.pry
         | 
| 69 69 | 
             
                    CircuitApi::Resource.new('foo', attributes)
         | 
| 70 70 | 
             
                  end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                  def handle_validation_errors(bad_request_error)
         | 
| 73 | 
            +
                    errors = bad_request_error.json_message['validationErrors']
         | 
| 74 | 
            +
                    raise unless errors
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                    raise CircuitApi::ValidationError.new(errors, bad_request_error.uri)
         | 
| 77 | 
            +
                  end
         | 
| 71 78 | 
             
                end
         | 
| 72 79 | 
             
              end
         | 
| 73 80 | 
             
            end
         | 
| @@ -0,0 +1,101 @@ | |
| 1 | 
            +
            module CircuitApi
         | 
| 2 | 
            +
              module Resources
         | 
| 3 | 
            +
                class MessageItem < Base
         | 
| 4 | 
            +
                  def api_resource
         | 
| 5 | 
            +
                    'conversations/:conversation_id/messages/:id'
         | 
| 6 | 
            +
                  end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def find(id)
         | 
| 9 | 
            +
                    path = api_resource
         | 
| 10 | 
            +
                      .sub(':conversation_id/', '')
         | 
| 11 | 
            +
                      .sub(':id', id)
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    result = connection(path).get
         | 
| 14 | 
            +
                    response_to_object(result)
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  def all(conversation_id, params = {})
         | 
| 18 | 
            +
                    path = api_resource
         | 
| 19 | 
            +
                      .sub(':conversation_id', conversation_id)
         | 
| 20 | 
            +
                      .sub('messages/:id', 'items')
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                    result = connection(path, params).get
         | 
| 23 | 
            +
                    response_to_object(result)
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  def update(conversation_id, id, params)
         | 
| 27 | 
            +
                    path = api_resource
         | 
| 28 | 
            +
                      .sub(':conversation_id', conversation_id)
         | 
| 29 | 
            +
                      .sub(':id', id)
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                    result = connection(path, params).put
         | 
| 32 | 
            +
                    response_to_object(result)
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  def delete(conversation_id, id)
         | 
| 36 | 
            +
                    path = api_resource
         | 
| 37 | 
            +
                      .sub(':conversation_id', conversation_id)
         | 
| 38 | 
            +
                      .sub(':id', id)
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                    result = connection(path).delete
         | 
| 41 | 
            +
                    response_to_object(result)
         | 
| 42 | 
            +
                  end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  def pin(conversation_id, id)
         | 
| 45 | 
            +
                    path = api_resource
         | 
| 46 | 
            +
                      .sub(':conversation_id', conversation_id)
         | 
| 47 | 
            +
                      .sub('messages', 'pins')
         | 
| 48 | 
            +
                      .sub(':id', id)
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                    result = connection(path).post
         | 
| 51 | 
            +
                    response_to_object(result)
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  def unpin(conversation_id, id)
         | 
| 55 | 
            +
                    path = api_resource
         | 
| 56 | 
            +
                      .sub(':conversation_id', conversation_id)
         | 
| 57 | 
            +
                      .sub('messages', 'pins')
         | 
| 58 | 
            +
                      .sub(':id', id)
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                    result = connection(path).delete
         | 
| 61 | 
            +
                    response_to_object(result)
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                  def flag(conversation_id, id, params)
         | 
| 65 | 
            +
                    path = api_resource
         | 
| 66 | 
            +
                      .sub(':conversation_id', conversation_id)
         | 
| 67 | 
            +
                      .sub(':id', id)
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                    result = connection("#{path}/flag", params).post
         | 
| 70 | 
            +
                    response_to_object(result)
         | 
| 71 | 
            +
                  end
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                  def unflag(conversation_id, id)
         | 
| 74 | 
            +
                    path = api_resource
         | 
| 75 | 
            +
                      .sub(':conversation_id', conversation_id)
         | 
| 76 | 
            +
                      .sub(':id', id)
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                    result = connection("#{path}/flag").delete
         | 
| 79 | 
            +
                    response_to_object(result)
         | 
| 80 | 
            +
                  end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                  def like(conversation_id, id)
         | 
| 83 | 
            +
                    path = api_resource
         | 
| 84 | 
            +
                      .sub(':conversation_id', conversation_id)
         | 
| 85 | 
            +
                      .sub(':id', id)
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                    result = connection("#{path}/like").post
         | 
| 88 | 
            +
                    response_to_object(result)
         | 
| 89 | 
            +
                  end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                  def unlike(conversation_id, id)
         | 
| 92 | 
            +
                    path = api_resource
         | 
| 93 | 
            +
                      .sub(':conversation_id', conversation_id)
         | 
| 94 | 
            +
                      .sub(':id', id)
         | 
| 95 | 
            +
             | 
| 96 | 
            +
                    result = connection("#{path}/like").delete
         | 
| 97 | 
            +
                    response_to_object(result)
         | 
| 98 | 
            +
                  end
         | 
| 99 | 
            +
                end
         | 
| 100 | 
            +
              end
         | 
| 101 | 
            +
            end
         | 
| @@ -1,6 +1,17 @@ | |
| 1 1 | 
             
            module CircuitApi
         | 
| 2 2 | 
             
              module Resources
         | 
| 3 3 | 
             
                class User < Base
         | 
| 4 | 
            +
                  # Participant type
         | 
| 5 | 
            +
                  REGULAR = 'REGULAR'.freeze
         | 
| 6 | 
            +
                  MODERATOR = 'MODERATOR'.freeze
         | 
| 7 | 
            +
                  GUEST = 'GUEST'.freeze
         | 
| 8 | 
            +
                  FORMER = 'FORMER'.freeze
         | 
| 9 | 
            +
                  BOT = 'BOT'.freeze
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  # User stase
         | 
| 12 | 
            +
                  ACTIVE_STATE = 'ACTIVE'.freeze
         | 
| 13 | 
            +
                  DELETED_STATE = 'DELETED'.freeze
         | 
| 14 | 
            +
             | 
| 4 15 | 
             
                  def api_resource
         | 
| 5 16 | 
             
                    'users'
         | 
| 6 17 | 
             
                  end
         | 
| @@ -5,6 +5,7 @@ module CircuitApi | |
| 5 5 | 
             
                  CONVERSATION_UPDATE = 'CONVERSATION.UPDATE'.freeze
         | 
| 6 6 | 
             
                  CONVERSATION_ADD_ITEM = 'CONVERSATION.ADD_ITEM'.freeze
         | 
| 7 7 | 
             
                  CONVERSATION_UPDATE_ITEM = 'CONVERSATION.UPDATE_ITEM'.freeze
         | 
| 8 | 
            +
                  USER_SUBMIT_FORM = 'USER.SUBMIT_FORM_DATA'.freeze
         | 
| 8 9 |  | 
| 9 10 | 
             
                  def api_resource
         | 
| 10 11 | 
             
                    'webhooks'
         | 
| @@ -1,4 +1,5 @@ | |
| 1 1 | 
             
            module CircuitApi
         | 
| 2 | 
            +
              # Network Errors
         | 
| 2 3 | 
             
              class HttpError < StandardError
         | 
| 3 4 | 
             
                attr_reader :error_code, :error_body, :uri
         | 
| 4 5 |  | 
| @@ -11,10 +12,28 @@ module CircuitApi | |
| 11 12 | 
             
                def message
         | 
| 12 13 | 
             
                  "HTTP #{error_code} - URI: #{uri}.\n Error: #{error_body}"
         | 
| 13 14 | 
             
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                def json_message
         | 
| 17 | 
            +
                  JSON.parse(error_body)
         | 
| 18 | 
            +
                end
         | 
| 14 19 | 
             
              end
         | 
| 15 20 |  | 
| 16 21 | 
             
              class BadRequest < HttpError; end;
         | 
| 17 22 | 
             
              class Unauthorized < HttpError; end;
         | 
| 18 23 | 
             
              class InternalServerError < HttpError; end;
         | 
| 19 24 | 
             
              class ServiceUnavailable < HttpError; end;
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              # Data errors
         | 
| 27 | 
            +
              class ValidationError < StandardError
         | 
| 28 | 
            +
                attr_reader :errors, :uri
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                def initialize(errors, uri)
         | 
| 31 | 
            +
                  @errors = errors
         | 
| 32 | 
            +
                  @uri = uri
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                def message
         | 
| 36 | 
            +
                  "URI: #{uri}.\n Errors: #{errors}"
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 20 39 | 
             
            end
         | 
    
        data/lib/circuit_api/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: circuit-api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.19
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Vincent Pochet
         | 
| @@ -39,47 +39,47 @@ dependencies: | |
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '3.1'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name:  | 
| 42 | 
            +
              name: byebug
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 45 | 
             
                - - "~>"
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version:  | 
| 47 | 
            +
                    version: 11.1.3
         | 
| 48 48 | 
             
              type: :development
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - "~>"
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 54 | 
            +
                    version: 11.1.3
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: webmock
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - - " | 
| 59 | 
            +
                - - "~>"
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version:  | 
| 61 | 
            +
                    version: 3.10.0
         | 
| 62 62 | 
             
              type: :development
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 | 
            -
                - - " | 
| 66 | 
            +
                - - "~>"
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version:  | 
| 68 | 
            +
                    version: 3.10.0
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: sinatra
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 | 
            -
                - - " | 
| 73 | 
            +
                - - "~>"
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version:  | 
| 75 | 
            +
                    version: 2.1.0
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 | 
            -
                - - " | 
| 80 | 
            +
                - - "~>"
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version:  | 
| 82 | 
            +
                    version: 2.1.0
         | 
| 83 83 | 
             
            description: Wrapper of the Circuit Rest API
         | 
| 84 84 | 
             
            email: vincent@elqano.com
         | 
| 85 85 | 
             
            executables: []
         | 
| @@ -93,6 +93,7 @@ files: | |
| 93 93 | 
             
            - lib/circuit_api/resources/conversation.rb
         | 
| 94 94 | 
             
            - lib/circuit_api/resources/label.rb
         | 
| 95 95 | 
             
            - lib/circuit_api/resources/message.rb
         | 
| 96 | 
            +
            - lib/circuit_api/resources/message_item.rb
         | 
| 96 97 | 
             
            - lib/circuit_api/resources/presence.rb
         | 
| 97 98 | 
             
            - lib/circuit_api/resources/rtc_session.rb
         | 
| 98 99 | 
             
            - lib/circuit_api/resources/user.rb
         | 
| @@ -102,7 +103,7 @@ files: | |
| 102 103 | 
             
            - lib/circuit_api/utils/errors.rb
         | 
| 103 104 | 
             
            - lib/circuit_api/utils/object.rb
         | 
| 104 105 | 
             
            - lib/circuit_api/version.rb
         | 
| 105 | 
            -
            homepage: 
         | 
| 106 | 
            +
            homepage: https://github.com/Elqanoteam/circuit-rest-client
         | 
| 106 107 | 
             
            licenses:
         | 
| 107 108 | 
             
            - MIT
         | 
| 108 109 | 
             
            metadata: {}
         | 
| @@ -121,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 121 122 | 
             
                - !ruby/object:Gem::Version
         | 
| 122 123 | 
             
                  version: '0'
         | 
| 123 124 | 
             
            requirements: []
         | 
| 124 | 
            -
            rubygems_version: 3.0. | 
| 125 | 
            +
            rubygems_version: 3.0.3
         | 
| 125 126 | 
             
            signing_key: 
         | 
| 126 127 | 
             
            specification_version: 4
         | 
| 127 128 | 
             
            summary: Circuit Rest API client
         |