smutok/internal/store/sqlite_reader.go(view raw)
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
package store
import (
"context"
"database/sql"
"errors"
)
func (s *Sqlite) GetLastSyncTime(ctx context.Context) (int64, error) {
var lut int64
err := s.db.QueryRowContext(ctx, "select last_sync from reader where id = 1 and last_sync is not null").Scan(&lut)
if errors.Is(err, sql.ErrNoRows) {
return 0, ErrNotFound
}
return lut, err
}
func (s *Sqlite) SetLastSyncTime(ctx context.Context, lastSync int64) error {
_, err := s.db.ExecContext(ctx,
`insert into reader (id, last_sync) values (1, ?)
on conflict(id) do update set last_sync = excluded.last_sync`,
lastSync)
return err
}
func (s *Sqlite) GetToken(ctx context.Context) (string, error) {
var tok string
err := s.db.QueryRowContext(ctx, "select token from reader where id = 1 and token is not null").Scan(&tok)
if errors.Is(err, sql.ErrNoRows) {
return "", ErrNotFound
}
return tok, err
}
func (s *Sqlite) SetToken(ctx context.Context, token string) error {
_, err := s.db.ExecContext(ctx,
`insert into reader (id, write_token) values (1, ?)
on conflict(id) do update set token = excluded.token`,
token)
return err
}
func (s *Sqlite) GetWriteToken(ctx context.Context) (string, error) {
var tok string
err := s.db.QueryRowContext(ctx, "select write_token from reader where id = 1 and write_token is not null").Scan(&tok)
if errors.Is(err, sql.ErrNoRows) {
return "", ErrNotFound
}
return tok, err
}
func (s *Sqlite) SetWriteToken(ctx context.Context, token string) error {
_, err := s.db.ExecContext(ctx,
`insert into reader (id, write_token) values (1, ?)
on conflict(id) do update set write_token = excluded.write_token`,
token)
return err
}
|