From 726a5102dde4036f7f89b4a77f1cbd0227d81d01 Mon Sep 17 00:00:00 2001 From: "Tristan B." Date: Wed, 8 Nov 2023 14:00:24 -0700 Subject: [PATCH] feat: Add `/thermostats/cool` --- docs/classes/Seam.md | 27 ++++++++++++++------------- docs/modules.md | 20 ++++++++++++++++++++ src/seam-connect/routes.ts | 7 +++++++ src/types/route-requests.ts | 7 +++++++ tests/routes.test.ts | 14 ++++++++++++++ 5 files changed, 62 insertions(+), 13 deletions(-) diff --git a/docs/classes/Seam.md b/docs/classes/Seam.md index 2586d57..96df5d1 100644 --- a/docs/classes/Seam.md +++ b/docs/classes/Seam.md @@ -87,7 +87,7 @@ Routes.accessCodes #### Defined in -[src/seam-connect/routes.ts:324](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L324) +[src/seam-connect/routes.ts:325](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L325) ___ @@ -107,7 +107,7 @@ Routes.actionAttempts #### Defined in -[src/seam-connect/routes.ts:472](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L472) +[src/seam-connect/routes.ts:473](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L473) ___ @@ -141,7 +141,7 @@ Routes.clientSessions #### Defined in -[src/seam-connect/routes.ts:538](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L538) +[src/seam-connect/routes.ts:539](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L539) ___ @@ -164,7 +164,7 @@ Routes.connectWebviews #### Defined in -[src/seam-connect/routes.ts:292](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L292) +[src/seam-connect/routes.ts:293](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L293) ___ @@ -186,7 +186,7 @@ Routes.connectedAccounts #### Defined in -[src/seam-connect/routes.ts:447](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L447) +[src/seam-connect/routes.ts:448](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L448) ___ @@ -206,7 +206,7 @@ Routes.deviceModels #### Defined in -[src/seam-connect/routes.ts:577](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L577) +[src/seam-connect/routes.ts:578](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L578) ___ @@ -234,7 +234,7 @@ Routes.devices #### Defined in -[src/seam-connect/routes.ts:222](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L222) +[src/seam-connect/routes.ts:223](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L223) ___ @@ -255,7 +255,7 @@ Routes.events #### Defined in -[src/seam-connect/routes.ts:274](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L274) +[src/seam-connect/routes.ts:275](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L275) ___ @@ -278,7 +278,7 @@ Routes.locks #### Defined in -[src/seam-connect/routes.ts:187](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L187) +[src/seam-connect/routes.ts:188](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L188) ___ @@ -301,7 +301,7 @@ Routes.noiseThresholds #### Defined in -[src/seam-connect/routes.ts:482](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L482) +[src/seam-connect/routes.ts:483](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L483) ___ @@ -319,6 +319,7 @@ ___ | `climateSettingSchedules.get` | (`params`: [`ClimateSettingScheduleGetRequest`](../modules.md#climatesettingschedulegetrequest)) => `Promise`<[`ClimateSettingSchedule`](../modules.md#climatesettingschedule)\> | | `climateSettingSchedules.list` | (`params`: [`ClimateSettingSchedulesListRequest`](../modules.md#climatesettingscheduleslistrequest)) => `Promise`<[`ClimateSettingSchedule`](../modules.md#climatesettingschedule)[]\> | | `climateSettingSchedules.update` | (`params`: [`ClimateSettingScheduleUpdateRequest`](../modules.md#climatesettingscheduleupdaterequest)) => `Promise`<[`ClimateSettingSchedule`](../modules.md#climatesettingschedule)\> | +| `cool` | (`params`: [`ThermostatCoolRequest`](../modules.md#thermostatcoolrequest)) => `Promise`<{ `actionAttempt`: [`ActionAttempt`](../modules.md#actionattempt)<[`ActionType`](../modules.md#actiontype)\> }\> | | `delete` | (`params`: [`DeviceDeleteRequest`](../modules.md#devicedeleterequest)) => `Promise`<{ `ok`: ``true`` }\> | | `get` | (`params`: [`DeviceGetRequest`](../modules.md#devicegetrequest)) => `Promise`<[`ThermostatDevice`](../modules.md#thermostatdevice)\> | | `list` | (`params?`: [`DevicesListRequest`](../interfaces/DevicesListRequest.md)) => `Promise`<[`ThermostatDevice`](../modules.md#thermostatdevice)[]\> | @@ -331,7 +332,7 @@ Routes.thermostats #### Defined in -[src/seam-connect/routes.ts:597](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L597) +[src/seam-connect/routes.ts:598](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L598) ___ @@ -354,7 +355,7 @@ Routes.webhooks #### Defined in -[src/seam-connect/routes.ts:513](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L513) +[src/seam-connect/routes.ts:514](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L514) ___ @@ -376,7 +377,7 @@ Routes.workspaces #### Defined in -[src/seam-connect/routes.ts:171](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L171) +[src/seam-connect/routes.ts:172](https://github.com/seamapi/javascript/blob/main/src/seam-connect/routes.ts#L172) ## Methods diff --git a/docs/modules.md b/docs/modules.md index 924b523..e74d639 100644 --- a/docs/modules.md +++ b/docs/modules.md @@ -178,6 +178,7 @@ - [PullBackupAccessCodeRequest](modules.md#pullbackupaccesscoderequest) - [SeamWebhookEvent](modules.md#seamwebhookevent) - [SuccessfulAPIResponse](modules.md#successfulapiresponse) +- [ThermostatCoolRequest](modules.md#thermostatcoolrequest) - [ThermostatDevice](modules.md#thermostatdevice) - [ThermostatDeviceProperties](modules.md#thermostatdeviceproperties) - [ThermostatDeviceType](modules.md#thermostatdevicetype) @@ -1174,6 +1175,25 @@ ___ ___ +### ThermostatCoolRequest + +Ƭ **ThermostatCoolRequest**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `cooling_set_point_celsius?` | `number` | +| `cooling_set_point_fahrenheit?` | `number` | +| `device_id` | `string` | +| `sync?` | `boolean` | + +#### Defined in + +[src/types/route-requests.ts:313](https://github.com/seamapi/javascript/blob/main/src/types/route-requests.ts#L313) + +___ + ### ThermostatDevice Ƭ **ThermostatDevice**: [`Device`](interfaces/Device.md)<[`ThermostatDeviceProperties`](modules.md#thermostatdeviceproperties), [`ThermostatDeviceType`](modules.md#thermostatdevicetype)\> diff --git a/src/seam-connect/routes.ts b/src/seam-connect/routes.ts index 713cfbf..ceb3853 100644 --- a/src/seam-connect/routes.ts +++ b/src/seam-connect/routes.ts @@ -59,6 +59,7 @@ import { EventGetRequest, ClientSessionsGetRequest, ThermostatSetFanModeRequest, + ThermostatCoolRequest, } from "../types/route-requests" import { AccessCodeGenerateCodeResponse, @@ -623,6 +624,12 @@ export abstract class Routes { method: "POST", data: params, }), + cool: (params: ThermostatCoolRequest) => + this.createActionAttemptAndWait({ + url: "/thermostats/cool", + method: "POST", + data: params, + }), climateSettingSchedules: { list: (params: ClimateSettingSchedulesListRequest) => diff --git a/src/types/route-requests.ts b/src/types/route-requests.ts index 6f2de6a..b0dae59 100644 --- a/src/types/route-requests.ts +++ b/src/types/route-requests.ts @@ -309,3 +309,10 @@ export type ThermostatSetFanModeRequest = { sync?: boolean fan_mode_setting: FanModeSetting } + +export type ThermostatCoolRequest = { + device_id: string + sync?: boolean + cooling_set_point_celsius?: number + cooling_set_point_fahrenheit?: number +} diff --git a/tests/routes.test.ts b/tests/routes.test.ts index 9d4071b..f7d6632 100644 --- a/tests/routes.test.ts +++ b/tests/routes.test.ts @@ -451,6 +451,20 @@ test( }, "{}" ) +test( + testAPIMethod("thermostats.cool"), + { + args: (seed) => [ + { + device_id: seed.devices.nest.id1, + cooling_set_point_fahrenheit: 60, + }, + ], + load_devices_from: ["nest"], + modifiesState: true, + }, + "{}" +) test( testAPIMethod("thermostats.climateSettingSchedules.get"), {