Sobes.tech
Senior

func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // pridať transakciu ak err != nil { vrátenie err } partner, err := r.find(partnerID) ak err != nil { vrátenie err } advertiser.Balance -= amount partner.Hold -= amount partner.Balance += amount ak err := r.save(advertiser); err != nil { vrátenie err } ak err := r.save(partner); err != nil { vrátenie err } r.totalPayouts++ vrátenie nil } funkcia (r *PayoutRepository) find(id string) (Partner, error) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) // pridať $1 ak err != nil { ak err == sql.ErrNoRows { vrátenie p, errors.New("partner nenájdený") } vrátenie p, err } vrátenie p, nil }