Sha256: 74d1e345fd8c8cc64568991defa8ccc104391186cfdce76f5d414549267f498c

Contents?: true

Size: 1.25 KB

Versions: 25

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

module Alula
  class CameraGetInfoProc < Alula::RpcResource
    class Response < Alula::RpcResponse
      attr_accessor :result, :pagination

      def initialize(response)
        super(response)
        @result = response.data['data']
        pagination = response.data['metaData']

        @pagination = Alula::Pagination.new(
          {
            'total' => pagination['totalHits'],
            'number' => pagination['page'],
            'size' => pagination['size']
          }
        )
      end
    end

    def self.call(device_id:, filter_online_offline:, page_size: 20, page_number: 1, filter: {})
      query_params = {
        'sort' => '-date',
        'page[size]' => page_size,
        'page[number]' => page_number
      }

      query_params.merge!(filter)

      if filter_online_offline
        query_params.merge!(
          'filter[data.online.value][$not][0]' => 0,
          'filter[data.online.value][$not][1]' => 1
        )
      end

      query_string = URI.encode_www_form(query_params)
      formatted_path = "/video/v1/device/#{device_id}/info?#{query_string}"

      request(
        http_method: :get,
        path: formatted_path,
        handler: Response,
        payload: {}
      )
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
alula-ruby-2.12.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.11.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.10.1 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.10.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.9.1 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.9.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.8.1 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.8.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.7.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.6.3 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.6.2 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.6.1 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.6.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.5.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.4.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.3.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.2.0 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.1.2 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.1.1 lib/alula/procedures/camera_get_info_proc.rb
alula-ruby-2.1.0 lib/alula/procedures/camera_get_info_proc.rb