forked from tildetown/town
mark invites as used
parent
57115b1c11
commit
d407e26917
|
@ -135,6 +135,10 @@ if you end up very stuck, you can email root@tilde.town .`, data.Username))
|
|||
|
||||
fmt.Println(s)
|
||||
|
||||
if err = invite.MarkUsed(inviteDB); err != nil {
|
||||
return fmt.Errorf("could not mark invite as used: %w", err)
|
||||
}
|
||||
|
||||
// TODO burn invite
|
||||
|
||||
return nil
|
||||
|
|
|
@ -3,6 +3,7 @@ package invites
|
|||
import (
|
||||
"database/sql"
|
||||
"encoding/base64"
|
||||
"errors"
|
||||
"math/rand"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -121,8 +122,25 @@ func Get(db *sql.DB, code string) (*Invite, error) {
|
|||
return inv, nil
|
||||
}
|
||||
|
||||
func IsCodeValid(db *sql.DB, code string) (bool, error) {
|
||||
return false, nil
|
||||
func (i *Invite) MarkUsed(db *sql.DB) (err error) {
|
||||
var stmt *sql.Stmt
|
||||
var result sql.Result
|
||||
var rowsAffected int64
|
||||
if stmt, err = db.Prepare(`UPDATE invites SET used = 1 WHERE id = ?`); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// TODO decide on rest of API (eg Validate, Use, Get, etc)
|
||||
if result, err = stmt.Exec(i.ID); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if rowsAffected, err = result.RowsAffected(); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if rowsAffected == 0 {
|
||||
err = errors.New("no rows affected")
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue