Sha256: be4ac7d73db2b72d0dbc5249d36a343ab8ebce04910bdd6127230b80175a850c

Contents?: true

Size: 1.39 KB

Versions: 2

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

module Seam
  module Clients
    class Locks < BaseClient
      # Unlocks a door
      #
      # @param [String] device_id
      # @return [Seam::ActionAttempt]
      def unlock_door(device_or_id)
        request_seam_object(
          :post,
          "/locks/unlock_door",
          Seam::ActionAttempt,
          "action_attempt",
          body: {
            device_id: device_id(device_or_id)
          }
        )
      end

      # Locks a door
      #
      # @param [String] device_id
      # @return [Seam::ActionAttempt]
      def lock_door(device_or_id)
        request_seam_object(
          :post,
          "/locks/lock_door",
          Seam::ActionAttempt,
          "action_attempt",
          body: {
            device_id: device_id(device_or_id)
          }
        )
      end

      def list(params = {})
        request_seam_object(
          :get,
          "/locks/list",
          Seam::Device,
          "devices",
          params: params
        )
      end

      def get(device_or_id)
        request_seam_object(
          :get,
          "/locks/get",
          Seam::Device,
          "device",
          params: {
            device_id: device_id(device_or_id)
          }
        )
      end

      protected

      def device_id(device_or_id)
        device_or_id.is_a?(Seam::Device) ? device_or_id.device_id : device_or_id
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
seamapi-0.0.2 lib/seam/clients/locks.rb
seamapi-0.0.1 lib/seam/clients/locks.rb