Convert frontend to Vue #3
| @@ -1,15 +1,67 @@ | ||||
| package http | ||||
|  | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | ||||
| 	"git.javil.eu/jacob1123/budgeteer/postgres" | ||||
| 	"github.com/gin-gonic/gin" | ||||
| 	"github.com/google/uuid" | ||||
| ) | ||||
|  | ||||
| type NewTransactionPayload struct { | ||||
| 	Date  JSONDate `json:"date"` | ||||
| 	Payee struct { | ||||
| 		ID   uuid.NullUUID | ||||
| 		Name string | ||||
| 	} `json:"payee"` | ||||
| 	Category struct { | ||||
| 		ID   uuid.NullUUID | ||||
| 		Name string | ||||
| 	} `json:"category"` | ||||
| 	Memo     string    `json:"memo"` | ||||
| 	Amount   string    `json:"amount"` | ||||
| 	BudgetID uuid.UUID `json:"budget_id"` | ||||
| } | ||||
|  | ||||
| type JSONDate time.Time | ||||
|  | ||||
| // Implement Marshaler and Unmarshaler interface | ||||
| func (j *JSONDate) UnmarshalJSON(b []byte) error { | ||||
| 	s := strings.Trim(string(b), "\"") | ||||
| 	t, err := time.Parse("2006-01-02", s) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	*j = JSONDate(t) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (j JSONDate) MarshalJSON() ([]byte, error) { | ||||
| 	return json.Marshal(time.Time(j)) | ||||
| } | ||||
|  | ||||
| // Maybe a Format function for printing your date | ||||
| func (j JSONDate) Format(s string) string { | ||||
| 	t := time.Time(j) | ||||
| 	return t.Format(s) | ||||
| } | ||||
|  | ||||
| func (h *Handler) newTransaction(c *gin.Context) { | ||||
| 	var payload NewTransactionPayload | ||||
| 	err := c.BindJSON(&payload) | ||||
| 	if err != nil { | ||||
| 		c.AbortWithError(http.StatusInternalServerError, err) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	fmt.Printf("%v\n", payload) | ||||
| 	/*	c.JSON(http.StatusOK, payload)*/ | ||||
| 	return | ||||
|  | ||||
| 	transactionMemo, _ := c.GetPostForm("memo") | ||||
| 	transactionAccountID, err := getUUID(c, "account_id") | ||||
| 	if err != nil { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user