@@ -15,11 +15,8 @@ import (
logr "github.com/charmbracelet/soft-serve/server/log"
"github.com/charmbracelet/soft-serve/server/store"
"github.com/charmbracelet/soft-serve/server/store/database"
- _ "github.com/lib/pq" // postgres driver
"github.com/spf13/cobra"
"go.uber.org/automaxprocs/maxprocs"
-
- _ "modernc.org/sqlite" // sqlite driver
)
var (
@@ -16,24 +16,19 @@ var _ store.AccessTokenStore = (*accessTokenStore)(nil)
// CreateAccessToken implements store.AccessTokenStore.
func (s *accessTokenStore) CreateAccessToken(ctx context.Context, h db.Handler, name string, userID int64, token string, expiresAt time.Time) (models.AccessToken, error) {
queryWithoutExpires := `INSERT INTO access_tokens (name, user_id, token, created_at, updated_at)
- VALUES (?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)`
+ VALUES (?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP) RETURNING id`
queryWithExpires := `INSERT INTO access_tokens (name, user_id, token, expires_at, created_at, updated_at)
- VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)`
+ VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP) RETURNING id`
query := queryWithoutExpires
values := []interface{}{name, userID, token}
if !expiresAt.IsZero() {
query = queryWithExpires
- values = append(values, expiresAt)
+ values = append(values, expiresAt.UTC())
}
- result, err := h.ExecContext(ctx, query, values...)
- if err != nil {
- return models.AccessToken{}, err
- }
-
- id, err := result.LastInsertId()
- if err != nil {
+ var id int64
+ if err := h.GetContext(ctx, &id, h.Rebind(query), values...); err != nil {
return models.AccessToken{}, err
}
@@ -93,8 +93,8 @@ func (*collabStore) ListCollabsByRepoAsUsers(ctx context.Context, tx db.Handler,
users.*
FROM
users
- INNER JOIN repos ON repos.id = collabs.repo_id
INNER JOIN collabs ON collabs.user_id = users.id
+ INNER JOIN repos ON repos.id = collabs.repo_id
WHERE
repos.name = ?
`)
@@ -44,14 +44,10 @@ func (*userStore) CreateUser(ctx context.Context, tx db.Handler, username string
}
query := tx.Rebind(`INSERT INTO users (username, admin, updated_at)
- VALUES (?, ?, CURRENT_TIMESTAMP);`)
- result, err := tx.ExecContext(ctx, query, username, isAdmin)
- if err != nil {
- return err
- }
+ VALUES (?, ?, CURRENT_TIMESTAMP) RETURNING id;`)
- userID, err := result.LastInsertId()
- if err != nil {
+ var userID int64
+ if err := tx.GetContext(ctx, &userID, query, username, isAdmin); err != nil {
return err
}