remove panics after failed execution

This commit is contained in:
Carlosokumu 2024-09-03 13:19:32 +03:00
parent 560714838f
commit 0c360c0cc4
Signed by untrusted user: carlos
GPG Key ID: 7BD6BC8160A5C953

View File

@ -41,6 +41,7 @@ const (
Offerings = "OFFERINGS" Offerings = "OFFERINGS"
Recipient = "RECIPIENT" Recipient = "RECIPIENT"
Amount = "AMOUNT" Amount = "AMOUNT"
AccountCreated = "ACCOUNTCREATED"
) )
func toBytes(s string) []byte { func toBytes(s string) []byte {
@ -146,27 +147,37 @@ func (h *Handlers) CreateAccount(ctx context.Context, sym string, input []byte)
if err != nil { if err != nil {
return res, err return res, err
} }
accountResp, err := h.accountService.CreateAccount() _, err = h.db.Fetch([]byte(AccountCreated))
if err != nil { if err != nil {
res.FlagSet = append(res.FlagSet, flags["flag_account_creation_failed"]) if errors.Is(err, gdbm.ErrItemNotFound) {
return res, err accountResp, err := h.accountService.CreateAccount()
} if err != nil {
data := map[string]string{ res.FlagSet = append(res.FlagSet, flags["flag_account_creation_failed"])
TrackingIdKey: accountResp.Result.TrackingId, return res, err
PublicKeyKey: accountResp.Result.PublicKey, }
CustodialIdKey: accountResp.Result.CustodialId.String(), data := map[string]string{
} TrackingIdKey: accountResp.Result.TrackingId,
PublicKeyKey: accountResp.Result.PublicKey,
CustodialIdKey: accountResp.Result.CustodialId.String(),
}
for key, value := range data { for key, value := range data {
err := h.db.Store(toBytes(key), toBytes(value), true) err := h.db.Store(toBytes(key), toBytes(value), true)
if err != nil { if err != nil {
return res, err
}
}
key := []byte(AccountCreated)
value := []byte("1")
h.db.Store(key, value, true)
res.FlagSet = append(res.FlagSet, flags["flag_account_created"])
return res, err
} else {
return res, err return res, err
} }
} else {
return res, nil
} }
res.FlagSet = append(res.FlagSet, flags["flag_account_created"])
return res, err
} }
// SavePin persists the user's PIN choice into the filesystem // SavePin persists the user's PIN choice into the filesystem
@ -609,11 +620,11 @@ func (h *Handlers) TransactionReset(ctx context.Context, sym string, input []byt
err = h.db.Delete([]byte(Amount)) err = h.db.Delete([]byte(Amount))
if err != nil && !errors.Is(err, gdbm.ErrItemNotFound) { if err != nil && !errors.Is(err, gdbm.ErrItemNotFound) {
panic(err) return res,err
} }
err = h.db.Delete([]byte(Recipient)) err = h.db.Delete([]byte(Recipient))
if err != nil && !errors.Is(err, gdbm.ErrItemNotFound) { if err != nil && !errors.Is(err, gdbm.ErrItemNotFound) {
panic(err) return res,err
} }
res.FlagReset = append(res.FlagReset, flags["flag_invalid_recipient"], flags["flag_invalid_recipient_with_invite"]) res.FlagReset = append(res.FlagReset, flags["flag_invalid_recipient"], flags["flag_invalid_recipient_with_invite"])
@ -634,7 +645,7 @@ func (h *Handlers) ResetTransactionAmount(ctx context.Context, sym string, input
err = h.db.Delete([]byte(Amount)) err = h.db.Delete([]byte(Amount))
if err != nil && !errors.Is(err, gdbm.ErrItemNotFound) { if err != nil && !errors.Is(err, gdbm.ErrItemNotFound) {
panic(err) return res,err
} }
res.FlagReset = append(res.FlagReset, flags["flag_invalid_amount"]) res.FlagReset = append(res.FlagReset, flags["flag_invalid_amount"])