Analytics, call dispatch first

This commit is contained in:
Joseph Ferano 2022-05-18 00:45:01 +07:00
parent a9e00c0436
commit 6e0d304266
3 changed files with 16 additions and 2 deletions

View File

@ -141,3 +141,15 @@ let slotPlayed (discordMember : DiscordMember) amount result prize =
"prize" , string prize
]
track "Slots Played" discordMember.Id data
let walletSubmit (discordMember : DiscordMember) =
let data = [
"user_display_name" , discordMember.Username
]
track "Wallet Submitted" discordMember.Id data
let invalidWalletSubmit (discordMember : DiscordMember) =
let data = [
"user_display_name" , discordMember.Username
]
track "Invalid Wallet Submitted" discordMember.Id data

View File

@ -247,6 +247,7 @@ let handleBuyItem (dispatch : IDiscordContext -> Task) (ctx : IDiscordContext) i
>>= checkDoesntExceedStackCap item
|> handleResultWithResponse ctx (fun player -> async {
let price = match item.Attributes with CanBuy price -> price | _ -> 0<GBT>
do! dispatch ctx |> Async.AwaitTask
do! DbService.updatePlayerCurrency -price player.DiscordId |> Async.Ignore
do! DbService.addToPlayerInventory player.DiscordId item |> Async.Ignore
if storeItem.LimitStock = true && storeItem.Stock > 0 then
@ -264,8 +265,6 @@ let handleBuyItem (dispatch : IDiscordContext -> Task) (ctx : IDiscordContext) i
builder.AddEmbed(embed) |> ignore
do! ctx.FollowUp builder |> Async.AwaitTask
do! dispatch ctx |> Async.AwaitTask
let builder = DiscordMessageBuilder()
builder.WithContent($"{player.Name} just purchased {item.Name}!") |> ignore
let channel = ctx.GetGuild().GetChannel(GuildEnvironment.channelEventsHackerBattle)

View File

@ -464,10 +464,13 @@ Keep an eye on <#{GuildEnvironment.channelAnnouncements}> for updates.
do! channel.SendMessageAsync(builder)
|> Async.AwaitTask
|> Async.Ignore
do! Analytics.walletSubmit (ctx.GetDiscordMember())
else
do! Messaging.sendSimpleResponse ctx "⚠️ That's not a valid Solana address, please try again"
do! Analytics.invalidWalletSubmit (ctx.GetDiscordMember())
with _ ->
do! Messaging.sendSimpleResponse ctx "⚠️ That's not a valid Solana address, please try again"
do! Analytics.invalidWalletSubmit (ctx.GetDiscordMember())
} :> Task
type Inviter() =