Class: Verizon::FirmwareV3Controller

Inherits:
BaseController show all
Defined in:
lib/verizon/controllers/firmware_v3_controller.rb

Overview

FirmwareV3Controller

Constant Summary

Constants inherited from BaseController

BaseController::GLOBAL_ERRORS

Instance Attribute Summary

Attributes inherited from BaseController

#config, #http_call_back

Instance Method Summary collapse

Methods inherited from BaseController

#initialize, #new_api_call_builder, #new_parameter, #new_request_builder, #new_response_handler, user_agent

Constructor Details

This class inherits a constructor from Verizon::BaseController

Instance Method Details

#list_available_firmware(acc, protocol) ⇒ ApiResponse

This endpoint allows user to list the firmware of an account. retrieve a specific protocol type used.

Parameters:

  • acc (String)

    Required parameter: Account identifier.

  • protocol (FirmwareProtocolEnum)

    Required parameter: Filter to

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/verizon/controllers/firmware_v3_controller.rb', line 14

def list_available_firmware(acc,
                            protocol)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/firmware/{acc}',
                                 Server::SOFTWARE_MANAGEMENT_V3)
               .template_param(new_parameter(acc, key: 'acc')
                                .should_encode(true))
               .query_param(new_parameter(protocol, key: 'protocol'))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(And.new('thingspace_oauth', 'VZ-M2M-Token')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:custom_type_deserializer))
                .deserialize_into(FirmwarePackage.method(:from_hash))
                .is_api_response(true)
                .is_response_array(true)
                .local_error('400',
                             'Unexpected error.',
                             FotaV3ResultException))
    .execute
end

#report_device_firmware(acc, device_id) ⇒ ApiResponse

Ask a device to report its firmware version asynchronously.

Parameters:

  • acc (String)

    Required parameter: Account identifier.

  • device_id (String)

    Required parameter: Device identifier.

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/verizon/controllers/firmware_v3_controller.rb', line 68

def report_device_firmware(acc,
                           device_id)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/firmware/{acc}/async/{deviceId}',
                                 Server::SOFTWARE_MANAGEMENT_V3)
               .template_param(new_parameter(acc, key: 'acc')
                                .should_encode(true))
               .template_param(new_parameter(device_id, key: 'deviceId')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(And.new('thingspace_oauth', 'VZ-M2M-Token')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:custom_type_deserializer))
                .deserialize_into(DeviceFirmwareVersionUpdateResult.method(:from_hash))
                .is_api_response(true)
                .local_error('400',
                             'Unexpected error.',
                             FotaV3ResultException))
    .execute
end

#synchronize_device_firmware(acc, body) ⇒ ApiResponse

Synchronize ThingSpace with the FOTA server for up to 100 devices. info synchronously.

Parameters:

  • acc (String)

    Required parameter: Account identifier.

  • body (FirmwareIMEI)

    Required parameter: DeviceIds to get firmware

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/verizon/controllers/firmware_v3_controller.rb', line 41

def synchronize_device_firmware(acc,
                                body)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/firmware/{acc}/devices',
                                 Server::SOFTWARE_MANAGEMENT_V3)
               .template_param(new_parameter(acc, key: 'acc')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(And.new('thingspace_oauth', 'VZ-M2M-Token')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:custom_type_deserializer))
                .deserialize_into(DeviceFirmwareList.method(:from_hash))
                .is_api_response(true)
                .local_error('400',
                             'Unexpected error.',
                             FotaV3ResultException))
    .execute
end