Skip to content

Instantly share code, notes, and snippets.

@fjod
Last active October 11, 2021 05:12
Show Gist options
  • Save fjod/97563ddef55911600d3eadd8a48bb86b to your computer and use it in GitHub Desktop.
Save fjod/97563ddef55911600d3eadd8a48bb86b to your computer and use it in GitHub Desktop.
module Server.BikeScreen
open System
open FSharp.Control.Tasks
open Shared
open BikeAPI
open Security
open Database
let addBikeFun (input:string*BikeRange) =
async {
let checkToken = validateJwt (fst input)
match checkToken with
| Ok u ->
let! user = getUserByEmail u.Email
match user with
| Ok u ->
let range = snd input
let! _ = addBikeToSearch range u
return Ok range // BikeRange
| Error _ ->
return Error NoUserForEmail
| Error _ ->
return Error TokenInvalid
}
let getBikeModels (input:string*BikeRange) =
async {
let checkToken = validateJwt (fst input)
match checkToken with
| Ok u ->
let! r = getBikeModelsForRange (snd input) //string []
return Ok r
| Error _ ->
return Error TokenInvalid
}
let getUserBikesFun (input:string) =
async {
let checkToken = validateJwt input
match checkToken with
| Ok u ->
let! user = getUserByEmail u.Email
match user with
| Ok u ->
let! bikes = getUserBikes u // BikeRange []
return Ok bikes
| Error _ ->
return Error NoUserForEmail
| Error _ ->
return Error TokenInvalid
}
let getAuctData(input:string*BikeRange) =
async {
let checkToken = validateJwt (fst input)
match checkToken with
| Ok u ->
let! user = getUserByEmail u.Email
match user with
| Ok u ->
let range = snd input
let! data = auctDataForRange range // AuctionData []
return Ok data
| Error _ ->
return Error NoUserForEmail
| Error _ ->
return Error TokenInvalid
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment