Class: M2X::Client::Distribution

Inherits:
Resource
  • Object
show all
Includes:
Metadata
Defined in:
lib/m2x/distribution.rb

Overview

Wrapper for M2X Distribution API

Constant Summary collapse

PATH =
"/distributions"

Instance Attribute Summary

Attributes inherited from Resource

#attributes

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Metadata

#metadata_path, #read_metadata, #read_metadata_field, #update_metadata, #update_metadata_field

Methods inherited from Resource

#delete!, #initialize, #inspect, #refresh, #update!, #view

Constructor Details

This class inherits a constructor from M2X::Client::Resource

Class Method Details

.create!(client, params) ⇒ Distribution

Method for Create Distribution endpoint.

Parameters:

  • client (Client)

    Client API

  • params

    Query parameters passed as keyword arguments. View M2X API Docs for listing of available parameters.

Returns:



34
35
36
37
38
# File 'lib/m2x/distribution.rb', line 34

def create!(client, params)
  res = client.post(PATH, nil, params, "Content-Type" => "application/json")

  new(client, res.json) if res.success?
end

.list(client, params = {}) ⇒ Array Also known as: search

Method for List Distributions endpoint. Retrieve list of device distributions accessible by the authenticated API key.

Parameters:

  • client (Client)

    Client API

  • params (defaults to: {})

    Query parameters passed as keyword arguments. View M2X API Docs for listing of available parameters.

Returns:



20
21
22
23
24
# File 'lib/m2x/distribution.rb', line 20

def list(client, params={})
  res = client.get(PATH, params)

  res.json["distributions"].map{ |atts| new(client, atts) } if res.success?
end

Instance Method Details

#add_device(serial) ⇒ Device

Parameters:

  • serial (String)

    The unique (account-wide) serial for the DistributionDevice being added

Returns:

  • (Device)

    The newly created DistributionDevice



63
64
65
66
67
# File 'lib/m2x/distribution.rb', line 63

def add_device(serial)
  res = @client.post("#{path}/devices", nil, { serial: serial }, "Content-Type" => "application/json")

  ::M2X::Client::Device.new(@client, res.json) if res.success?
end

#devices(params = {}) ⇒ Array

Parameters:

  • params (defaults to: {})

    Query parameters passed as keyword arguments. View M2X API Docs for listing of available parameters.

Returns:

  • (Array)

    List of Device objects



51
52
53
54
55
# File 'lib/m2x/distribution.rb', line 51

def devices(params={})
  res = @client.get("#{path}/devices", params)

  res.json["devices"].map{ |atts| ::M2X::Client::Device.new(@client, atts) } if res.success?
end

#pathObject



41
42
43
# File 'lib/m2x/distribution.rb', line 41

def path
  @path ||= "#{ PATH }/#{ URI.encode(@attributes.fetch("id")) }"
end