[mirror] yet another tui rss reader github.com/olexsmir/smutok
at main 1.7 kB view raw
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}