From 93690ed67e719f63c066616612609e27aea36369 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sun, 27 Jul 2025 19:18:53 +0000 Subject: [PATCH] Initial go code (#2) Reviewed-on: https://git.kundeng.us/phoenix/textsender-api/pulls/2 Co-authored-by: phoenix Co-committed-by: phoenix --- .gitea/workflows/workflow.yaml | 42 ++++++++++++++++++++++++++++++++++ .gitignore | 1 + go.mod | 3 +++ main.go | 40 ++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 .gitea/workflows/workflow.yaml create mode 100644 go.mod create mode 100644 main.go diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml new file mode 100644 index 0000000..879494a --- /dev/null +++ b/.gitea/workflows/workflow.yaml @@ -0,0 +1,42 @@ +name: Go + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + runs-on: ubuntu-24.04 # You can change this to macos-latest or windows-latest if needed + + steps: + - uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: '1.24.5' # You can specify a specific version or 'stable' + + - name: Build + run: go build -v ./... + + - name: Test + run: go test -v ./... + + - name: Run gofmt (optional) + # Uncomment to check code formatting with gofmt + run: | + if [ -n "$(gofmt -l.)" ]; then + echo "Go code is not formatted. Please run 'gofmt -w.' to fix it." + exit 1 + fi + + - name: Run golint (optional) + # Uncomment to check code style with golint + run: | + if [ -n "$(golint./...)" ]; then + echo "Go code has style issues. Please run 'golint./...' to see them." + exit 1 + fi + diff --git a/.gitignore b/.gitignore index e69de29..9edf61c 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/textsender-api diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..f073a1b --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module git.kundeng.us/phoenix/textsender-api + +go 1.24.5 diff --git a/main.go b/main.go new file mode 100644 index 0000000..0243302 --- /dev/null +++ b/main.go @@ -0,0 +1,40 @@ +package main + +import "encoding/json" +import "fmt" +import "log" +import "net/http" + +type MessageItem struct { + Id int `json:"id"` + Message string `json:"message"` +} + +const PORT = 8080 + +func main() { + fmt.Println("textsender-api") + + http.HandleFunc("/api/v1/message/draft", draftMessageHandler) + + log.Println("Starting server", PORT) + log.Fatal(http.ListenAndServe(":8080", nil)) +} + +func draftMessageHandler(w http.ResponseWriter, r *http.Request) { + da := MessageItem{ + Id: 1, + Message: "The Word", + } + + respondWithJSON(w, http.StatusOK, da) +} + +// Helper function to send JSON responses +func respondWithJSON(w http.ResponseWriter, statusCode int, data interface{}) { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(statusCode) + if err := json.NewEncoder(w).Encode(data); err != nil { + log.Printf("Error encoding JSON: %v", err) + } +}