Sobes.tech
Senior

func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // pridėti transakciją jei err != null { grąžinti err } partner, err := r.find(partnerID) jei err != null { grąžinti err } reklamuotojas.Balance -= amount partner.Hold -= amount partner.Balance += amount jei err := r.save(reklamuotojas); err != null { grąžinti err } jei err := r.save(partner); err != null { grąžinti err } r.totalPayouts++ grąžinti null } funkcija (r *PayoutRepository) find(id string) (Partner, error) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) // pridėti $1 jei err != null { jei err == sql.ErrNoRows { grąžinti p, errors.New("partneris nerastas") } grąžinti p, err } grąžinti p, null }