diff options
Diffstat (limited to 'server/guest/store.go')
-rw-r--r-- | server/guest/store.go | 73 |
1 files changed, 34 insertions, 39 deletions
diff --git a/server/guest/store.go b/server/guest/store.go index 56a8c2c..e111ea0 100644 --- a/server/guest/store.go +++ b/server/guest/store.go @@ -18,23 +18,21 @@ func NewStore(database *pgxpool.Pool) *Store { } } -func (store Store) Find(name Name) (Guest, error) { - guestRows, err := store.database.Query(context.Background(), - "select * from guest") +func (s *Store) Find(name Name) (Guest, error) { + guestRows, err := s.database.Query(context.Background(), "select * from guest") if err != nil { return Guest{}, err } defer guestRows.Close() - guest, found := createGuest(name, guestRows) + guest, found := s.createGuest(name, guestRows) - partyRows, err := store.database.Query(context.Background(), - "select * from party") + partyRows, err := s.database.Query(context.Background(), "select * from party") if err != nil { return Guest{}, err } defer partyRows.Close() - guest, err = addParty(guest, partyRows) + guest, err = s.addParty(guest, partyRows) if err != nil { return Guest{}, err } @@ -45,7 +43,7 @@ func (store Store) Find(name Name) (Guest, error) { return Guest{}, errors.New("guest not found") } -func createGuest(name Name, guestRows pgx.Rows) (Guest, bool) { +func (s *Store) createGuest(name Name, guestRows pgx.Rows) (Guest, bool) { var guest Guest for guestRows.Next() { err := guestRows.Scan(&guest.Id, &guest.FirstName, &guest.LastName, @@ -61,7 +59,7 @@ func createGuest(name Name, guestRows pgx.Rows) (Guest, bool) { return Guest{}, false } -func addParty(guestWithoutParty Guest, partyRows pgx.Rows) (Guest, error) { +func (s *Store) addParty(guestWithoutParty Guest, partyRows pgx.Rows) (Guest, error) { guestWithParty := guestWithoutParty for partyRows.Next() { var guestId string @@ -77,34 +75,32 @@ func addParty(guestWithoutParty Guest, partyRows pgx.Rows) (Guest, error) { return guestWithParty, nil } -func (store Store) Get() ([]Guest, error) { - guestRows, err := store.database.Query(context.Background(), - "select * from guest") +func (s *Store) Get() ([]Guest, error) { + guestRows, err := s.database.Query(context.Background(), "select * from guest") if err != nil { return nil, err } defer guestRows.Close() - guestsWithoutParty, err := store.createGuestSlice(guestRows) + guestsWithoutParty, err := s.createGuestSlice(guestRows) if err != nil { return []Guest{}, err } - partyRows, err := store.database.Query(context.Background(), - "select * from party") + partyRows, err := s.database.Query(context.Background(), "select * from party") if err != nil { return []Guest{}, err } defer partyRows.Close() - guestsWithParty, err := addPartySlice(guestsWithoutParty, partyRows) + guestsWithParty, err := s.addPartySlice(guestsWithoutParty, partyRows) if err != nil { return []Guest{}, err } return guestsWithParty, nil } -func (store Store) createGuestSlice(guestRows pgx.Rows) ([]Guest, error) { +func (s *Store) createGuestSlice(guestRows pgx.Rows) ([]Guest, error) { guests := []Guest{} for guestRows.Next() { var guest Guest @@ -118,8 +114,7 @@ func (store Store) createGuestSlice(guestRows pgx.Rows) ([]Guest, error) { return guests, nil } -func addPartySlice(guestsWithoutParty []Guest, - partyRows pgx.Rows) ([]Guest, error) { +func (s *Store) addPartySlice(guestsWithoutParty []Guest, partyRows pgx.Rows) ([]Guest, error) { guestsWithParty := guestsWithoutParty for partyRows.Next() { var guestId string @@ -137,51 +132,51 @@ func addPartySlice(guestsWithoutParty []Guest, return guestsWithParty, nil } -func (store Store) Add(guest Guest) error { - if err := store.insertGuest(guest); err != nil { +func (s *Store) Add(guest Guest) error { + if err := s.insertGuest(guest); err != nil { return err } - return store.insertParty(guest) + return s.insertParty(guest) } -func (store Store) insertGuest(guest Guest) error { +func (s *Store) insertGuest(guest Guest) error { statement := `insert into guest (id, first_name, last_name, attendance, email, message, party_size) values ($1, $2, $3, $4, $5, $6, $7)` - _, err := store.database.Exec(context.Background(), statement, guest.Id, + _, err := s.database.Exec(context.Background(), statement, guest.Id, guest.FirstName, guest.LastName, guest.Attendance, guest.Email, guest.Message, guest.PartySize) return err } -func (store Store) Update(guest Guest) error { - if err := store.updateGuest(guest); err != nil { +func (s *Store) Update(guest Guest) error { + if err := s.updateGuest(guest); err != nil { return err } - if err := store.deleteParty(guest.Id); err != nil { + if err := s.deleteParty(guest.Id); err != nil { return err } - return store.insertParty(guest) + return s.insertParty(guest) } -func (store Store) updateGuest(guest Guest) error { +func (s *Store) updateGuest(guest Guest) error { statement := `update guest set attendance = $1, email = $2, message = $3, party_size = $4 where id = $5` - _, err := store.database.Exec(context.Background(), statement, + _, err := s.database.Exec(context.Background(), statement, guest.Attendance, guest.Email, guest.Message, guest.PartySize, guest.Id) return err } -func (store Store) deleteParty(guestId string) error { +func (s *Store) deleteParty(guestId string) error { statement := "delete from party where guest_id = $1" - _, err := store.database.Exec(context.Background(), statement, guestId) + _, err := s.database.Exec(context.Background(), statement, guestId) return err } -func (store Store) insertParty(guest Guest) error { +func (s *Store) insertParty(guest Guest) error { statement := `insert into party (guest_id, first_name, last_name) values ($1, $2, $3)` for _, pg := range guest.PartyList { - _, err := store.database.Exec(context.Background(), statement, guest.Id, + _, err := s.database.Exec(context.Background(), statement, guest.Id, pg.FirstName, pg.LastName) if err != nil { return err @@ -190,18 +185,18 @@ func (store Store) insertParty(guest Guest) error { return nil } -func (store Store) Delete(guestId string) error { - if err := store.deleteGuest(guestId); err != nil { +func (s *Store) Delete(guestId string) error { + if err := s.deleteGuest(guestId); err != nil { return err } - if err := store.deleteParty(guestId); err != nil { + if err := s.deleteParty(guestId); err != nil { return err } return nil } -func (store Store) deleteGuest(guestId string) error { +func (s *Store) deleteGuest(guestId string) error { statement := "delete from guest where id = $1" - _, err := store.database.Exec(context.Background(), statement, guestId) + _, err := s.database.Exec(context.Background(), statement, guestId) return err } |