cranberry
1package services2
3import (4"database/sql"5
6"gitverse.ru/IvanTimofeev/cranberry/internal/db"7pbapi "gitverse.ru/IvanTimofeev/cranberry/pkg/grpc"8)
9
10type AccountService struct {11db *db.Db12}
13
14func NewAccountService(db *db.Db) *AccountService {15return &AccountService{db: db}16}
17
18func (s *AccountService) CreateAccount(addr string) error {19account := &pbapi.Account{20Addr: addr,21Balance: 0,22}23err := s.db.RunTransaction(func(tx *sql.Tx) error {24err := s.db.SaveAccount(account, tx)25if err != nil {26return err27}28return nil29})()30return err31}
32
33func (s *AccountService) GetAccount(addr string) (*pbapi.Account, bool, error) {34account, _, err := s.db.GetAccount(addr)35if err != nil {36return nil, false, err37}38return account, true, nil39}
40