package main import ( "fmt" "net/http" "github.com/gin-gonic/gin" ) // Transaction struct represents a transaction type Transaction struct { ID int64 `json:"id"` Date string `json:"date"` Description string `json:"description"` Value float64 `json:"value"` Category string `json:"category"` } // Bank struct represents a bank type Bank struct { ID string `json:"id"` Name string `json:"name"` NordigenID string `json:"nordigenId"` } // ResponseError struct represents an error response type ResponseError struct { Message string `json:"message"` } // Handlers func retrieveTransactions(c *gin.Context) { // Handle the logic for retrieving transactions here // limit := c.Query("limit") // offset := c.Query("offset") // bank := c.Query("bank") // sort := c.Query("sort") // Placeholder response transactions := []Transaction{ {ID: 1, Date: "2024-01-24", Description: "Groceries", Value: -50.0, Category: "Food"}, {ID: 2, Date: "2024-01-23", Description: "Salary", Value: 3000.0, Category: "Income"}, } c.JSON(http.StatusOK, transactions) } func retrieveTransactionByID(c *gin.Context) { // Handle the logic for retrieving a transaction by ID here // transactionID := c.Param("transactionId") // Placeholder response transaction := Transaction{ ID: 1, Date: "2024-01-24", Description: "Groceries", Value: -50.0, Category: "Food", } c.JSON(http.StatusOK, transaction) } func retrieveBanks(c *gin.Context) { // Handle the logic for retrieving banks here // Placeholder response banks := []Bank{ {ID: "1", Name: "Bank A", NordigenID: "uuid1"}, {ID: "2", Name: "Bank B", NordigenID: "uuid2"}, } c.JSON(http.StatusOK, banks) } func retrieveBankByID(c *gin.Context) { // Handle the logic for retrieving a bank by ID here bankID := c.Param("bankId") // Placeholder response bank := Bank{ID: bankID, Name: "Bank A", NordigenID: "uuid1"} c.JSON(http.StatusOK, bank) } func main() { router := gin.Default() // Routes router.GET("/transactions", retrieveTransactions) router.GET("/transactions/:transactionId", retrieveTransactionByID) router.GET("/banks", retrieveBanks) router.GET("/banks/:bankId", retrieveBankByID) // Start server port := 8080 fmt.Printf("Server is running on :%d...\n", port) router.Run(fmt.Sprintf(":%d", port)) }