47 lines
946 B
Go
47 lines
946 B
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"time"
|
|
)
|
|
|
|
type UpdateAccountPrivacyTxParams struct {
|
|
ID int64 `json:"ID"`
|
|
Changer string `json:"changer"`
|
|
PrivacyAccepted bool `json:"privacy_accepted"`
|
|
}
|
|
|
|
type UpdateAccountPrivacyTxResult struct {
|
|
Account Account `json:"account"`
|
|
}
|
|
|
|
func (store *SQLStore) UpdateAccountPrivacyTx(ctx context.Context, arg UpdateAccountPrivacyTxParams) (Account, error) {
|
|
var result UpdateAccountPrivacyTxResult
|
|
param := UpdateAccountPrivacyParams{
|
|
ID: arg.ID,
|
|
Changer: arg.Changer,
|
|
}
|
|
|
|
if arg.PrivacyAccepted {
|
|
param.PrivacyAcceptedDate = sql.NullTime{
|
|
Valid: true,
|
|
Time: time.Now(),
|
|
}
|
|
} else {
|
|
param.PrivacyAcceptedDate = sql.NullTime{
|
|
Valid: true,
|
|
Time: time.Time{},
|
|
}
|
|
|
|
}
|
|
|
|
err := store.execTx(ctx, func(q *Queries) error {
|
|
var err error
|
|
result.Account, err = q.UpdateAccountPrivacy(ctx, param)
|
|
return err
|
|
})
|
|
|
|
return result.Account, err
|
|
}
|