Monorepo for Tangled
1package db
2
3import (
4 "database/sql"
5
6 "tangled.org/core/appview/models"
7)
8
9func GetPunchcardPreference(e Execer, did string) (models.PunchcardPreference, error) {
10 preference := models.PunchcardPreference{
11 Did: did,
12 }
13
14 hideMine := 0
15 hideOthers := 0
16
17 err := e.QueryRow(
18 `select id, hide_mine, hide_others from punchcard_preferences where user_did = ?`,
19 did,
20 ).Scan(&preference.ID, &hideMine, &hideOthers)
21 if err == sql.ErrNoRows {
22 return preference, nil
23 }
24
25 preference.HideMine = hideMine > 0
26 preference.HideOthers = hideOthers > 0
27
28 if err != nil {
29 return preference, err
30 }
31
32 return preference, nil
33}
34
35func UpsertPunchcardPreference(e Execer, did string, hideMine, hideOthers bool) error {
36 _, err := e.Exec(
37 `insert or replace into punchcard_preferences (
38 user_did,
39 hide_mine,
40 hide_others
41 )
42 values (?, ?, ?)`,
43 did,
44 hideMine,
45 hideOthers,
46 )
47 if err != nil {
48 return err
49 }
50
51 return nil
52}