diff --git a/go-stdlib/go.mod b/go-stdlib/go.mod new file mode 100644 index 0000000..11f0110 --- /dev/null +++ b/go-stdlib/go.mod @@ -0,0 +1,3 @@ +module money-transfer + +go 1.24.2 diff --git a/go-stdlib/main.go b/go-stdlib/main.go new file mode 100644 index 0000000..a413229 --- /dev/null +++ b/go-stdlib/main.go @@ -0,0 +1,48 @@ +package main + +import ( + "encoding/json" + "fmt" + "io" + "net/http" +) + +type Transfer struct { + Amount int `json:"amount"` + Sender int `json:"sender"` + Receiver int `json:"receiver"` +} + +var accounts = map[int]int{ + 1: 1000, + 2: 1000, +} + +func main() { + fmt.Println("Starting server on port 8080") + http.HandleFunc("/transfer", transfer) + err := http.ListenAndServe(":8081", nil) + if err != nil { + fmt.Println("Error starting server:", err) + } +} + +func transfer(w http.ResponseWriter, r *http.Request) { + body, err := io.ReadAll(r.Body) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + var transfer Transfer + err = json.Unmarshal(body, &transfer) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + fmt.Println("Transfer received:", transfer) + + w.WriteHeader(1000) + w.Write([]byte("Transfer successful")) +} \ No newline at end of file