[mirror] yet another tui rss reader
github.com/olexsmir/smutok
1package store
2
3import (
4 "context"
5 "database/sql"
6 "errors"
7)
8
9func (s *Sqlite) GetLastSyncTime(ctx context.Context) (int64, error) {
10 var lut int64
11 err := s.db.QueryRowContext(ctx, "select last_sync from reader where id = 1 and last_sync is not null").
12 Scan(&lut)
13 if errors.Is(err, sql.ErrNoRows) {
14 return 0, ErrNotFound
15 }
16 return lut, err
17}
18
19func (s *Sqlite) SetLastSyncTime(ctx context.Context, lastSync int64) error {
20 _, err := s.db.ExecContext(ctx,
21 `insert into reader (id, last_sync) values (1, ?)
22 on conflict(id) do update set last_sync = excluded.last_sync`,
23 lastSync)
24 return err
25}
26
27func (s *Sqlite) GetToken(ctx context.Context) (string, error) {
28 var tok string
29 err := s.db.QueryRowContext(ctx, "select token from reader where id = 1 and token is not null").
30 Scan(&tok)
31 if errors.Is(err, sql.ErrNoRows) {
32 return "", ErrNotFound
33 }
34 return tok, err
35}
36
37func (s *Sqlite) SetToken(ctx context.Context, token string) error {
38 _, err := s.db.ExecContext(ctx,
39 `insert into reader (id, token) values (1, ?)
40 on conflict(id) do update set token = excluded.token`,
41 token)
42 return err
43}
44
45func (s *Sqlite) GetWriteToken(ctx context.Context) (string, error) {
46 var tok string
47 err := s.db.QueryRowContext(ctx, "select write_token from reader where id = 1 and write_token is not null").
48 Scan(&tok)
49 if errors.Is(err, sql.ErrNoRows) {
50 return "", ErrNotFound
51 }
52 return tok, err
53}
54
55func (s *Sqlite) SetWriteToken(ctx context.Context, token string) error {
56 _, err := s.db.ExecContext(ctx,
57 `insert into reader (id, write_token) values (1, ?)
58 on conflict(id) do update set write_token = excluded.write_token`,
59 token)
60 return err
61}