df/bff/db/sqlc/tx_create_person.go
itsscb d021f5db51 rf/modifies bff
ft/adds email_address and phone_number tables
ft/adds email and phone endpoints
ft/adds account_level query
2023-11-21 23:32:20 +01:00

47 lines
1.1 KiB
Go

package db
import (
"context"
"database/sql"
"time"
)
type CreatePersonTxParams struct {
AccountID uint64 `json:"account_id"`
Firstname string `json:"firstname"`
Lastname string `json:"lastname"`
Birthday time.Time `json:"birthday"`
City string `json:"city"`
Zip string `json:"zip"`
Street string `json:"street"`
Relationship sql.NullString `json:"relationship"`
Country string `json:"country"`
Creator string `json:"creator"`
Changer string `json:"changer"`
}
type CreatePersonTxResult struct {
Person Person `json:"person"`
}
func (store *SQLStore) CreatePersonTx(ctx context.Context, arg CreatePersonTxParams) (Person, error) {
var result CreatePersonTxResult
err := store.execTx(ctx, func(q *Queries) error {
var err error
result.Person, err = q.CreatePerson(ctx, CreatePersonParams(arg))
if err != nil {
return err
}
err = q.CloneProviders(ctx, CloneProvidersParams{
Creator: arg.Creator,
PersonID: result.Person.ID,
})
return err
})
return result.Person, err
}