Fix some of the invite stuff
This commit is contained in:
parent
5162dcae3d
commit
f206fbf217
@ -68,20 +68,29 @@ let private createInvite inviter code =
|
|||||||
|> Sql.executeNonQueryAsync
|
|> Sql.executeNonQueryAsync
|
||||||
|> Async.AwaitTask
|
|> Async.AwaitTask
|
||||||
|
|
||||||
let private addInvitedUser did code count =
|
let private addInvitedUser did inviterId code count =
|
||||||
try
|
connStr
|
||||||
connStr
|
|> Sql.connect
|
||||||
|> Sql.connect
|
|> Sql.parameters [ "@code" , Sql.string code ; "@did" , Sql.string (string did) ; "@iid" , Sql.string (string inviterId) ]
|
||||||
|> Sql.executeTransactionAsync [
|
|> Sql.query
|
||||||
"""
|
"""
|
||||||
INSERT INTO invited_user (discord_id, invite_id)
|
INSERT INTO invited_user (inviter_id, discord_id, invite_id)
|
||||||
VALUES (@did, (SELECT id FROM invite WHERE code = @code));
|
VALUES (@did, (SELECT id FROM invite WHERE code = @code));
|
||||||
""" , [ [ "@code" , Sql.string code ; "@did" , Sql.string (string did) ] ]
|
"""
|
||||||
"UPDATE invite SET count = @count WHERE code = @code" , [ [ "count" , Sql.int count ; "code" , Sql.string code ] ]
|
|> Sql.executeNonQueryAsync
|
||||||
]
|
|> Async.AwaitTask
|
||||||
|> Async.AwaitTask
|
|> Async.Ignore
|
||||||
|> Async.Ignore
|
|
||||||
with _ -> async.Zero ()
|
let private updateInviteCount code count =
|
||||||
|
connStr
|
||||||
|
|> Sql.connect
|
||||||
|
|> Sql.parameters [ "count" , Sql.int count ; "code" , Sql.string code ]
|
||||||
|
|> Sql.query """
|
||||||
|
"UPDATE invite SET count = @count WHERE code = @code"
|
||||||
|
"""
|
||||||
|
|> Sql.executeNonQueryAsync
|
||||||
|
|> Async.AwaitTask
|
||||||
|
|> Async.Ignore
|
||||||
|
|
||||||
let private markInvitedAccepted did =
|
let private markInvitedAccepted did =
|
||||||
connStr
|
connStr
|
||||||
@ -279,9 +288,12 @@ let private processNewUser (eventArgs : GuildMemberAddEventArgs) =
|
|||||||
for invite in guildInvites do
|
for invite in guildInvites do
|
||||||
let result = cachedInvites.TryFind(invite.Code)
|
let result = cachedInvites.TryFind(invite.Code)
|
||||||
match result with
|
match result with
|
||||||
| Some (_,count) ->
|
| Some (inviterId,count) ->
|
||||||
if invite.Uses > count then
|
if invite.Uses > count then
|
||||||
do! addInvitedUser eventArgs.Member.Id invite.Code invite.Uses |> Async.Ignore
|
do! updateInviteCount invite.Code count
|
||||||
|
try
|
||||||
|
do! addInvitedUser eventArgs.Member.Id inviterId invite.Code invite.Uses |> Async.Ignore
|
||||||
|
with ex -> printfn $"Tried to add existing user {eventArgs.Member.Id}:{eventArgs.Member.Username} to invites: {ex.Message}"
|
||||||
do! Analytics.invitedUserEntered invite.Code invite.Inviter.Id eventArgs.Member.Id invite.Inviter.Username eventArgs.Member.Username
|
do! Analytics.invitedUserEntered invite.Code invite.Inviter.Id eventArgs.Member.Id invite.Inviter.Username eventArgs.Member.Username
|
||||||
| None -> ()
|
| None -> ()
|
||||||
} :> Task
|
} :> Task
|
||||||
|
Loading…
x
Reference in New Issue
Block a user