Add visits info
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/all-checks-complete Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/all-checks-complete Pipeline was successful

This commit is contained in:
Smaug123
2023-11-01 16:43:33 +00:00
parent 989a4a7a33
commit 77ceafde0b
7 changed files with 174 additions and 4 deletions

View File

@@ -21,8 +21,12 @@ module Program =
RequiresAuth (fun auth -> ArgsCrate.make (FullnessArgs.Parse auth) Fullness.run))
"activity",
("Get information about your gym usage",
("Get information about your aggregate gym usage",
RequiresAuth (fun auth -> ArgsCrate.make (MemberActivityArgs.Parse auth) MemberActivity.run))
"sessions",
("Get information about your individual sessions",
RequiresAuth (fun auth -> ArgsCrate.make (SessionsArgs.Parse auth) Sessions.run))
|]
|> Map.ofArray

View File

@@ -14,6 +14,7 @@
<Compile Include="Fullness.fs" />
<Compile Include="LookupGym.fs" />
<Compile Include="MemberActivity.fs" />
<Compile Include="Sessions.fs" />
<Compile Include="Program.fs" />
</ItemGroup>

49
PureGym.App/Sessions.fs Normal file
View File

@@ -0,0 +1,49 @@
namespace PureGym.App
open Argu
open PureGym
open System
type SessionsArgsFragment =
| [<Mandatory ; EqualsAssignmentOrSpaced>] From_Date of string
| [<Mandatory ; EqualsAssignmentOrSpaced>] To_Date of string
interface IArgParserTemplate with
member s.Usage =
match s with
| From_Date _ -> "start of date range (inclusive) for query, which needs to parse as a DateTime"
| To_Date _ -> "end of date range (inclusive) for query, which needs to parse as a DateTime"
type SessionsArgs =
{
Creds : Auth
FromDate : DateTime
ToDate : DateTime
}
static member Parse
(auth : Auth)
(args : SessionsArgsFragment ParseResults)
: Result<SessionsArgs, ArguParseException>
=
let fromDate = args.GetResult SessionsArgsFragment.From_Date
let toDate = args.GetResult SessionsArgsFragment.To_Date
{
Creds = auth
FromDate = DateTime.Parse fromDate
ToDate = DateTime.Parse toDate
}
|> Ok
[<RequireQualifiedAccess>]
module Sessions =
let run (args : SessionsArgs) =
task {
let! client = Api.make args.Creds
let! activity = client.GetSessions args.FromDate args.ToDate
System.Console.WriteLine (string<Sessions> activity)
return 0
}