CShock/CShocker/Devices/APIs/OpenShockHttp.cs
glax ce0a287e4e 2.5.0
Update DefaultEndpoint
Update ControlActionEnum.cs
2024-11-03 01:11:33 +01:00

37 lines
1.4 KiB
C#

using CShocker.Devices.Abstract;
using CShocker.Devices.Additional;
using CShocker.Shockers;
using CShocker.Shockers.Abstract;
using Microsoft.Extensions.Logging;
namespace CShocker.Devices.APIs;
public class OpenShockHttp : OpenShockApi
{
protected override void ControlInternal(ControlAction action, Shocker shocker, int intensity, int duration)
{
if (shocker is not OpenShockShocker openShockShocker)
{
this.Logger?.Log(LogLevel.Warning, $"Shocker {shocker} is not {typeof(OpenShockShocker).FullName}");
return;
}
string json = "{" +
" \"shocks\": [" +
" {" +
$" \"id\": \"{openShockShocker.ID}\"," +
$" \"type\": \"{Enum.GetName(action)}\"," +
$" \"intensity\": {intensity}," +
$" \"duration\": {duration}" +
" }" +
" ]," +
" \"customName\": \"CShocker\"" +
"}";
ApiHttpClient.MakeAPICall(HttpMethod.Post, $"{Endpoint}/2/shockers/control", json, this.Logger, new ValueTuple<string, string>("OpenShockToken", ApiKey));
}
public OpenShockHttp(string apiKey, string endpoint = "https://api.shocklink.net", ILogger? logger = null) : base(DeviceApi.OpenShockHttp, apiKey, endpoint, logger)
{
}
}