Sobes.tech
Senior

функција (r *PayoutRepository) Payout(рекламодавацID, партнерID стринг, износ float32) грешка { рекламодавац, грешка := r.find(totalPayouts) // додај транзакцију ако грешка != nil { врати грешка } партнер, грешка := r.find(partnerID) ако грешка != nil { врати грешка } рекламодавац.Баланса -= износ партнер.Hold -= износ партнер.Баланса += износ ако err := r.save(рекламодавац); err != nil { врати err } ако err := r.save(партнер); err != nil { врати err } r.totalPayouts++ врати nil } функција (r *PayoutRepository) find(id string) (Partner, грешка) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) // додај $1 ако err != nil { ако err == sql.ErrNoRows { врати p, errors.New("партнер не пронађен") } врати p, err } врати p, nil }