mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-07-29 19:51:59 +08:00
63 lines
1.9 KiB
Go
63 lines
1.9 KiB
Go
package sqlite
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"go.signoz.io/signoz/ee/query-service/model"
|
|
basemodel "go.signoz.io/signoz/pkg/query-service/model"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func (m *modelDao) CreatePAT(ctx context.Context, p *model.PAT) basemodel.BaseApiError {
|
|
_, err := m.DB().ExecContext(ctx,
|
|
"INSERT INTO personal_access_tokens (user_id, token, name, created_at, expires_at) VALUES ($1, $2, $3, $4, $5)",
|
|
p.UserID,
|
|
p.Token,
|
|
p.Name,
|
|
p.CreatedAt,
|
|
p.ExpiresAt)
|
|
if err != nil {
|
|
zap.S().Errorf("Failed to insert PAT in db, err: %v", zap.Error(err))
|
|
return model.InternalError(fmt.Errorf("PAT insertion failed"))
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *modelDao) ListPATs(ctx context.Context, userID string) ([]model.PAT, basemodel.BaseApiError) {
|
|
pats := []model.PAT{}
|
|
|
|
if err := m.DB().Select(&pats, `SELECT * FROM personal_access_tokens WHERE user_id=?;`, userID); err != nil {
|
|
zap.S().Errorf("Failed to fetch PATs for user: %s, err: %v", userID, zap.Error(err))
|
|
return nil, model.InternalError(fmt.Errorf("failed to fetch PATs"))
|
|
}
|
|
return pats, nil
|
|
}
|
|
|
|
func (m *modelDao) DeletePAT(ctx context.Context, id string) basemodel.BaseApiError {
|
|
_, err := m.DB().ExecContext(ctx, `DELETE from personal_access_tokens where id=?;`, id)
|
|
if err != nil {
|
|
zap.S().Errorf("Failed to delete PAT, err: %v", zap.Error(err))
|
|
return model.InternalError(fmt.Errorf("failed to delete PAT"))
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *modelDao) GetPAT(ctx context.Context, patID string) (*model.PAT, basemodel.BaseApiError) {
|
|
pats := []model.PAT{}
|
|
|
|
if err := m.DB().Select(&pats, `SELECT * FROM personal_access_tokens WHERE id=?;`, patID); err != nil {
|
|
zap.S().Errorf("Failed to fetch PAT with ID: %s, err: %v", patID, zap.Error(err))
|
|
return nil, model.InternalError(fmt.Errorf("failed to fetch PAT"))
|
|
}
|
|
|
|
if len(pats) != 1 {
|
|
return nil, &model.ApiError{
|
|
Typ: model.ErrorInternal,
|
|
Err: fmt.Errorf("found zero or multiple PATS with same ID"),
|
|
}
|
|
}
|
|
|
|
return &pats[0], nil
|
|
}
|