Monorepo for Tangled
at master 52 lines 931 B view raw
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}