···
20
+
type SpindleMember struct {
22
+
Did syntax.DID // owner of the record
23
+
Rkey string // rkey of the record
25
+
Subject syntax.DID // the member being added
func GetSpindles(e Execer, filters ...filter) ([]Spindle, error) {
···
_, err := e.Exec(query, args...)
147
+
func AddSpindleMember(e Execer, member SpindleMember) error {
149
+
`insert or ignore into spindle_members (did, rkey, instance, subject) values (?, ?, ?, ?)`,
158
+
func RemoveSpindleMember(e Execer, filters ...filter) error {
159
+
var conditions []string
161
+
for _, filter := range filters {
162
+
conditions = append(conditions, filter.Condition())
163
+
args = append(args, filter.Arg()...)
167
+
if conditions != nil {
168
+
whereClause = " where " + strings.Join(conditions, " and ")
171
+
query := fmt.Sprintf(`delete from spindle_members %s`, whereClause)
173
+
_, err := e.Exec(query, args...)
177
+
func GetSpindleMembers(e Execer, filters ...filter) ([]SpindleMember, error) {
178
+
var members []SpindleMember
180
+
var conditions []string
182
+
for _, filter := range filters {
183
+
conditions = append(conditions, filter.Condition())
184
+
args = append(args, filter.Arg()...)
188
+
if conditions != nil {
189
+
whereClause = " where " + strings.Join(conditions, " and ")
192
+
query := fmt.Sprintf(
193
+
`select id, did, rkey, instance, subject, created
194
+
from spindle_members
201
+
rows, err := e.Query(query, args...)
209
+
var member SpindleMember
210
+
var createdAt string
212
+
if err := rows.Scan(
223
+
member.Created, err = time.Parse(time.RFC3339, createdAt)
225
+
member.Created = time.Now()
228
+
members = append(members, member)
231
+
return members, nil