/
twitter.go
31 lines (24 loc) · 886 Bytes
/
twitter.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package postgres
import (
"time"
"github.com/param108/profile/api/models"
)
func (db *PostgresDB) CreateTwitterChallenge(token, redirectURI, writer string) (string, error) {
var id string
err := db.db.Raw(`INSERT INTO twitter_challenges (challenge, redirect_uri, writer)
VALUES (?,?,?) RETURNING id`, token, redirectURI, writer).Scan(&id).Error
if err != nil {
return "", err
}
return id, nil
}
func (db *PostgresDB) GetTwitterChallenge(token, writer string) (string, string, error) {
ret := &models.TwitterChallenge{}
if err := db.db.First(ret, "id = ? and writer = ?", token, writer).Error; err != nil {
return "", "", err
}
return ret.Challenge, ret.RedirectUri, nil
}
func (db *PostgresDB) DeleteOldTwitterChallenges(checkpoint time.Duration) {
db.db.Exec(`delete from twitter_challenges where created_at < ?`, time.Now().Add(-1*checkpoint))
}