df/db/sqlc/tx_update_account_privacy.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
}