Format
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/push/all-checks-complete Pipeline was successful
ci/woodpecker/pr/all-checks-complete Pipeline was successful

This commit is contained in:
Smaug123
2024-06-01 00:35:24 +01:00
parent 08e19a4063
commit 550fb4de6c
3 changed files with 302 additions and 275 deletions

1
.fantomasignore Normal file
View File

@@ -0,0 +1 @@
.direnv/

View File

@@ -19,214 +19,214 @@ open RestEase
[<RequireQualifiedAccess>]
module PureGymApi =
/// Create a REST client. The input functions will be re-evaluated on every HTTP request to obtain the required values for the corresponding header properties.
let make (authHeader: unit -> string) (client: System.Net.Http.HttpClient) : IPureGymApi =
let make (authHeader : unit -> string) (client : System.Net.Http.HttpClient) : IPureGymApi =
{ new IPureGymApi with
member _.AuthHeader: string = authHeader ()
member _.AuthHeader : string = authHeader ()
member this.GetGyms(ct: CancellationToken option) =
member this.GetGyms (ct : CancellationToken option) =
async {
let! ct = Async.CancellationToken
let uri =
System.Uri(
System.Uri (
(match client.BaseAddress with
| null -> System.Uri "https://capi.puregym.com/api/"
| v -> v),
System.Uri("v1/gyms/", System.UriKind.Relative)
System.Uri ("v1/gyms/", System.UriKind.Relative)
)
let httpMessage =
new System.Net.Http.HttpRequestMessage(
new System.Net.Http.HttpRequestMessage (
Method = System.Net.Http.HttpMethod.Get,
RequestUri = uri
)
do httpMessage.Headers.Add("Authorization", this.AuthHeader.ToString())
do httpMessage.Headers.Add("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync(httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode()
do httpMessage.Headers.Add ("Authorization", this.AuthHeader.ToString ())
do httpMessage.Headers.Add ("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync (httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode ()
let! responseStream = response.Content.ReadAsStreamAsync ct |> Async.AwaitTask
let! jsonNode =
System.Text.Json.Nodes.JsonNode.ParseAsync(responseStream, cancellationToken = ct)
System.Text.Json.Nodes.JsonNode.ParseAsync (responseStream, cancellationToken = ct)
|> Async.AwaitTask
return jsonNode.AsArray() |> Seq.map (fun elt -> Gym.jsonParse elt) |> List.ofSeq
return jsonNode.AsArray () |> Seq.map (fun elt -> Gym.jsonParse elt) |> List.ofSeq
}
|> (fun a -> Async.StartAsTask(a, ?cancellationToken = ct))
|> (fun a -> Async.StartAsTask (a, ?cancellationToken = ct))
member this.GetMember(ct: CancellationToken option) =
member this.GetMember (ct : CancellationToken option) =
async {
let! ct = Async.CancellationToken
let uri =
System.Uri(
System.Uri (
(match client.BaseAddress with
| null -> System.Uri "https://capi.puregym.com/api/"
| v -> v),
System.Uri("v1/member", System.UriKind.Relative)
System.Uri ("v1/member", System.UriKind.Relative)
)
let httpMessage =
new System.Net.Http.HttpRequestMessage(
new System.Net.Http.HttpRequestMessage (
Method = System.Net.Http.HttpMethod.Get,
RequestUri = uri
)
do httpMessage.Headers.Add("Authorization", this.AuthHeader.ToString())
do httpMessage.Headers.Add("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync(httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode()
do httpMessage.Headers.Add ("Authorization", this.AuthHeader.ToString ())
do httpMessage.Headers.Add ("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync (httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode ()
let! responseStream = response.Content.ReadAsStreamAsync ct |> Async.AwaitTask
let! jsonNode =
System.Text.Json.Nodes.JsonNode.ParseAsync(responseStream, cancellationToken = ct)
System.Text.Json.Nodes.JsonNode.ParseAsync (responseStream, cancellationToken = ct)
|> Async.AwaitTask
return Member.jsonParse jsonNode
}
|> (fun a -> Async.StartAsTask(a, ?cancellationToken = ct))
|> (fun a -> Async.StartAsTask (a, ?cancellationToken = ct))
member this.GetGymAttendance(gymId: int, ct: CancellationToken option) =
member this.GetGymAttendance (gymId : int, ct : CancellationToken option) =
async {
let! ct = Async.CancellationToken
let uri =
System.Uri(
System.Uri (
(match client.BaseAddress with
| null -> System.Uri "https://capi.puregym.com/api/"
| v -> v),
System.Uri(
System.Uri (
"v1/gyms/{gym_id}/attendance"
.Replace("{gym_id}", gymId.ToString() |> System.Web.HttpUtility.UrlEncode),
.Replace ("{gym_id}", gymId.ToString () |> System.Web.HttpUtility.UrlEncode),
System.UriKind.Relative
)
)
let httpMessage =
new System.Net.Http.HttpRequestMessage(
new System.Net.Http.HttpRequestMessage (
Method = System.Net.Http.HttpMethod.Get,
RequestUri = uri
)
do httpMessage.Headers.Add("Authorization", this.AuthHeader.ToString())
do httpMessage.Headers.Add("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync(httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode()
do httpMessage.Headers.Add ("Authorization", this.AuthHeader.ToString ())
do httpMessage.Headers.Add ("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync (httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode ()
let! responseStream = response.Content.ReadAsStreamAsync ct |> Async.AwaitTask
let! jsonNode =
System.Text.Json.Nodes.JsonNode.ParseAsync(responseStream, cancellationToken = ct)
System.Text.Json.Nodes.JsonNode.ParseAsync (responseStream, cancellationToken = ct)
|> Async.AwaitTask
return GymAttendance.jsonParse jsonNode
}
|> (fun a -> Async.StartAsTask(a, ?cancellationToken = ct))
|> (fun a -> Async.StartAsTask (a, ?cancellationToken = ct))
member this.GetGym(gymId: int, ct: CancellationToken option) =
member this.GetGym (gymId : int, ct : CancellationToken option) =
async {
let! ct = Async.CancellationToken
let uri =
System.Uri(
System.Uri (
(match client.BaseAddress with
| null -> System.Uri "https://capi.puregym.com/api/"
| v -> v),
System.Uri(
System.Uri (
"v1/gyms/{gym_id}"
.Replace("{gym_id}", gymId.ToString() |> System.Web.HttpUtility.UrlEncode),
.Replace ("{gym_id}", gymId.ToString () |> System.Web.HttpUtility.UrlEncode),
System.UriKind.Relative
)
)
let httpMessage =
new System.Net.Http.HttpRequestMessage(
new System.Net.Http.HttpRequestMessage (
Method = System.Net.Http.HttpMethod.Get,
RequestUri = uri
)
do httpMessage.Headers.Add("Authorization", this.AuthHeader.ToString())
do httpMessage.Headers.Add("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync(httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode()
do httpMessage.Headers.Add ("Authorization", this.AuthHeader.ToString ())
do httpMessage.Headers.Add ("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync (httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode ()
let! responseStream = response.Content.ReadAsStreamAsync ct |> Async.AwaitTask
let! jsonNode =
System.Text.Json.Nodes.JsonNode.ParseAsync(responseStream, cancellationToken = ct)
System.Text.Json.Nodes.JsonNode.ParseAsync (responseStream, cancellationToken = ct)
|> Async.AwaitTask
return Gym.jsonParse jsonNode
}
|> (fun a -> Async.StartAsTask(a, ?cancellationToken = ct))
|> (fun a -> Async.StartAsTask (a, ?cancellationToken = ct))
member this.GetMemberActivity(ct: CancellationToken option) =
member this.GetMemberActivity (ct : CancellationToken option) =
async {
let! ct = Async.CancellationToken
let uri =
System.Uri(
System.Uri (
(match client.BaseAddress with
| null -> System.Uri "https://capi.puregym.com/api/"
| v -> v),
System.Uri("v1/member/activity", System.UriKind.Relative)
System.Uri ("v1/member/activity", System.UriKind.Relative)
)
let httpMessage =
new System.Net.Http.HttpRequestMessage(
new System.Net.Http.HttpRequestMessage (
Method = System.Net.Http.HttpMethod.Get,
RequestUri = uri
)
do httpMessage.Headers.Add("Authorization", this.AuthHeader.ToString())
do httpMessage.Headers.Add("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync(httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode()
do httpMessage.Headers.Add ("Authorization", this.AuthHeader.ToString ())
do httpMessage.Headers.Add ("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync (httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode ()
let! responseStream = response.Content.ReadAsStreamAsync ct |> Async.AwaitTask
let! jsonNode =
System.Text.Json.Nodes.JsonNode.ParseAsync(responseStream, cancellationToken = ct)
System.Text.Json.Nodes.JsonNode.ParseAsync (responseStream, cancellationToken = ct)
|> Async.AwaitTask
return MemberActivityDto.jsonParse jsonNode
}
|> (fun a -> Async.StartAsTask(a, ?cancellationToken = ct))
|> (fun a -> Async.StartAsTask (a, ?cancellationToken = ct))
member this.GetSessions(fromDate: DateOnly, toDate: DateOnly, ct: CancellationToken option) =
member this.GetSessions (fromDate : DateOnly, toDate : DateOnly, ct : CancellationToken option) =
async {
let! ct = Async.CancellationToken
let uri =
System.Uri(
System.Uri (
(match client.BaseAddress with
| null -> System.Uri "https://capi.puregym.com/api/"
| v -> v),
System.Uri(
System.Uri (
("v2/gymSessions/member"
+ "?fromDate="
+ ((fromDate.ToString "yyyy-MM-dd") |> System.Web.HttpUtility.UrlEncode)
+ "&toDate="
+ ((toDate.ToString "yyyy-MM-dd") |> System.Web.HttpUtility.UrlEncode)),
+ ((fromDate.ToString "yyyy-MM-dd") |> System.Web.HttpUtility.UrlEncode)
+ "&toDate="
+ ((toDate.ToString "yyyy-MM-dd") |> System.Web.HttpUtility.UrlEncode)),
System.UriKind.Relative
)
)
let httpMessage =
new System.Net.Http.HttpRequestMessage(
new System.Net.Http.HttpRequestMessage (
Method = System.Net.Http.HttpMethod.Get,
RequestUri = uri
)
do httpMessage.Headers.Add("Authorization", this.AuthHeader.ToString())
do httpMessage.Headers.Add("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync(httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode()
do httpMessage.Headers.Add ("Authorization", this.AuthHeader.ToString ())
do httpMessage.Headers.Add ("User-Agent", "PureGym/1523 CFNetwork/1312 Darwin/21.0.0")
let! response = client.SendAsync (httpMessage, ct) |> Async.AwaitTask
let response = response.EnsureSuccessStatusCode ()
let! responseStream = response.Content.ReadAsStreamAsync ct |> Async.AwaitTask
let! jsonNode =
System.Text.Json.Nodes.JsonNode.ParseAsync(responseStream, cancellationToken = ct)
System.Text.Json.Nodes.JsonNode.ParseAsync (responseStream, cancellationToken = ct)
|> Async.AwaitTask
return Sessions.jsonParse jsonNode
}
|> (fun a -> Async.StartAsTask(a, ?cancellationToken = ct)) }
|> (fun a -> Async.StartAsTask (a, ?cancellationToken = ct))
}

File diff suppressed because it is too large Load Diff