cranberry

Форк
0
/
account_service.go 
39 строк · 800.0 Байт
1
package services
2

3
import (
4
	"database/sql"
5

6
	"gitverse.ru/IvanTimofeev/cranberry/internal/db"
7
	pbapi "gitverse.ru/IvanTimofeev/cranberry/pkg/grpc"
8
)
9

10
type AccountService struct {
11
	db *db.Db
12
}
13

14
func NewAccountService(db *db.Db) *AccountService {
15
	return &AccountService{db: db}
16
}
17

18
func (s *AccountService) CreateAccount(addr string) error {
19
	account := &pbapi.Account{
20
		Addr:    addr,
21
		Balance: 0,
22
	}
23
	err := s.db.RunTransaction(func(tx *sql.Tx) error {
24
		err := s.db.SaveAccount(account, tx)
25
		if err != nil {
26
			return err
27
		}
28
		return nil
29
	})()
30
	return err
31
}
32

33
func (s *AccountService) GetAccount(addr string) (*pbapi.Account, bool, error) {
34
	account, _, err := s.db.GetAccount(addr)
35
	if err != nil {
36
		return nil, false, err
37
	}
38
	return account, true, nil
39
}
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.