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