@@ -48,6 +48,10 @@ func NewClient(cred *config.Credentials) (*Client, error) {
48
48
return cl , nil
49
49
}
50
50
51
+ func toStringPointer (s string ) * string {
52
+ return & s
53
+ }
54
+
51
55
// DeviceCreate allows to create a new device on Arduino IoT Cloud.
52
56
// It returns the newly created device, and an error.
53
57
func (cl * Client ) DeviceCreate (ctx context.Context , fqbn , name , serial , dType string , cType * string ) (* iotclient.ArduinoDevicev2 , error ) {
@@ -57,22 +61,24 @@ func (cl *Client) DeviceCreate(ctx context.Context, fqbn, name, serial, dType st
57
61
}
58
62
59
63
payload := iotclient.CreateDevicesV2Payload {
60
- Fqbn : fqbn ,
61
- Name : name ,
62
- Serial : serial ,
64
+ Fqbn : toStringPointer ( fqbn ) ,
65
+ Name : toStringPointer ( name ) ,
66
+ Serial : toStringPointer ( serial ) ,
63
67
Type : dType ,
64
68
}
65
69
66
70
if cType != nil {
67
- payload .ConnectionType = * cType
71
+ payload .ConnectionType = cType
68
72
}
69
73
70
- dev , _ , err := cl .api .DevicesV2Api .DevicesV2Create (ctx , payload , nil )
74
+ req := cl .api .DevicesV2Api .DevicesV2Create (ctx )
75
+ req = req .CreateDevicesV2Payload (payload )
76
+ dev , _ , err := cl .api .DevicesV2Api .DevicesV2CreateExecute (req )
71
77
if err != nil {
72
78
err = fmt .Errorf ("creating device, %w" , errorDetail (err ))
73
79
return nil , err
74
80
}
75
- return & dev , nil
81
+ return dev , nil
76
82
}
77
83
78
84
// DeviceLoraCreate allows to create a new LoRa device on Arduino IoT Cloud.
@@ -88,17 +94,19 @@ func (cl *Client) DeviceLoraCreate(ctx context.Context, name, serial, devType, e
88
94
Eui : eui ,
89
95
FrequencyPlan : freq ,
90
96
Name : name ,
91
- Serial : serial ,
97
+ Serial : toStringPointer ( serial ) ,
92
98
Type : devType ,
93
99
UserId : "me" ,
94
100
}
95
101
96
- dev , _ , err := cl .api .LoraDevicesV1Api .LoraDevicesV1Create (ctx , payload , nil )
102
+ req := cl .api .LoraDevicesV1Api .LoraDevicesV1Create (ctx )
103
+ req = req .CreateLoraDevicesV1Payload (payload )
104
+ dev , _ , err := cl .api .LoraDevicesV1Api .LoraDevicesV1CreateExecute (req )
97
105
if err != nil {
98
106
err = fmt .Errorf ("creating lora device: %w" , errorDetail (err ))
99
107
return nil , err
100
108
}
101
- return & dev , nil
109
+ return dev , nil
102
110
}
103
111
104
112
// DevicePassSet sets the device password to the one suggested by Arduino IoT Cloud.
@@ -135,7 +143,8 @@ func (cl *Client) DeviceDelete(ctx context.Context, id string) error {
135
143
return err
136
144
}
137
145
138
- _ , err = cl .api .DevicesV2Api .DevicesV2Delete (ctx , id , nil )
146
+ req := cl .api .DevicesV2Api .DevicesV2Delete (ctx , id )
147
+ _ , err = cl .api .DevicesV2Api .DevicesV2DeleteExecute (req )
139
148
if err != nil {
140
149
err = fmt .Errorf ("deleting device: %w" , errorDetail (err ))
141
150
return err
0 commit comments