wallet edit

This commit is contained in:
Fran Jurmanovic
2021-07-30 23:40:23 +02:00
parent 1297f48645
commit 149fbfa211
3 changed files with 59 additions and 17 deletions

View File

@@ -18,6 +18,8 @@ func NewWalletsController(as *services.WalletService, s *gin.RouterGroup) *Walle
s.POST("", wc.New) s.POST("", wc.New)
s.GET("", wc.GetAll) s.GET("", wc.GetAll)
s.PUT("/:id", wc.Edit)
s.GET("/:id", wc.Get)
return wc return wc
} }
@@ -37,18 +39,6 @@ func (wc *WalletsController) New(c *gin.Context) {
c.JSON(200, wm) c.JSON(200, wm)
} }
func (wc *WalletsController) Get(c *gin.Context) {
body := new(models.Auth)
embed, _ := c.GetQuery("embed")
auth := c.MustGet("auth")
body.Id = auth.(*models.Auth).Id
wm := wc.WalletService.Get(c, body, embed)
c.JSON(200, wm)
}
func (wc *WalletsController) GetAll(c *gin.Context) { func (wc *WalletsController) GetAll(c *gin.Context) {
body := new(models.Auth) body := new(models.Auth)
auth := c.MustGet("auth") auth := c.MustGet("auth")
@@ -59,5 +49,30 @@ func (wc *WalletsController) GetAll(c *gin.Context) {
wc.WalletService.GetAll(c, body, fr) wc.WalletService.GetAll(c, body, fr)
c.JSON(200, fr) c.JSON(200, fr)
}
func (wc *WalletsController) Edit(c *gin.Context) {
body := new(models.WalletEdit)
if err := c.ShouldBind(body); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
id := c.Param("id")
wm := wc.WalletService.Edit(c, body, id)
c.JSON(200, wm)
}
func (wc *WalletsController) Get(c *gin.Context) {
params := new(models.Params)
id := c.Param("id")
embed, _ := c.GetQuery("embed")
params.Embed = embed
fr := wc.WalletService.Get(c, id, params)
c.JSON(200, fr)
} }

View File

@@ -28,3 +28,8 @@ type WalletTransactions struct {
LastMonth float32 LastMonth float32
NextMonth float32 NextMonth float32
} }
type WalletEdit struct {
Id string `json:"id" form:"id"`
Name string `json:"name" form:"name"`
}

View File

@@ -25,13 +25,36 @@ func (as *WalletService) New(ctx context.Context, am *models.NewWalletBody) *mod
return walletModel return walletModel
} }
func (as *WalletService) Get(ctx context.Context, am *models.Auth, embed string) *models.Wallet { func (as *WalletService) Edit(ctx context.Context, body *models.WalletEdit, id string) *models.Wallet {
db := as.Db.WithContext(ctx)
tm := new(models.Wallet)
tm.Id = id
tm.Name = body.Name
tx, _ := db.Begin()
defer tx.Rollback()
tx.Model(tm).WherePK().UpdateNotZero()
tx.Commit()
return tm
}
func (as *WalletService) Get(ctx context.Context, id string, params *models.Params) *models.Wallet {
db := as.Db.WithContext(ctx) db := as.Db.WithContext(ctx)
wm := new(models.Wallet) wm := new(models.Wallet)
wm.Id = id
query := db.Model(wm).Where("? = ?", pg.Ident("user_id"), am.Id) tx, _ := db.Begin()
common.GenerateEmbed(query, embed).Select() defer tx.Rollback()
qry := tx.Model(wm)
common.GenerateEmbed(qry, params.Embed).WherePK().Select()
tx.Commit()
return wm return wm
} }
@@ -148,7 +171,6 @@ func (as *WalletService) GetHeader(ctx context.Context, am *models.Auth, walletI
wm.Currency = "USD" wm.Currency = "USD"
wm.WalletId = walletId wm.WalletId = walletId
return wm return wm
} }