package expense import ( "net/http" "nos-comptes/handler" "nos-comptes/internal/storage/dao/postgresql" "nos-comptes/internal/storage/model" "nos-comptes/internal/utils" "github.com/gin-gonic/gin" ) type Context struct { service *Service db *Database *handler.Context } func (c *Context) CreateAnExpense(context *gin.Context) { } func (c *Context) DeleteExpense(context *gin.Context) { } func (c *Context) GetAllExpenses(gc *gin.Context) { accountId := gc.Param("accountId") accounts, err := c.service.GetAllExpensesOfAnAccount(accountId) if e, ok := err.(*model.APIError); ok { utils.GetLoggerFromCtx(gc).WithError(err).WithField("type", e.Type).Error("error GetAllExpenses: get expenses") utils.JSONErrorWithMessage(gc.Writer, *e, e.Description) } else if err != nil { utils.GetLoggerFromCtx(gc).WithError(err).Error("error while get expenses") utils.JSONError(gc.Writer, model.ErrInternalServer) return } if len(accounts) == 0 { utils.JSON(gc.Writer, http.StatusNoContent, nil) } else { utils.JSON(gc.Writer, http.StatusOK, accounts) } } func (c *Context) GetAnExpenses(context *gin.Context) { } func NewHandler(ctx *handler.Context, db *postgresql.DatabasePostgreSQL) *Context { database := NewDatabase(db) service := NewService(database) return &Context{service: service, db: database, Context: ctx} }