first commit of restructured project
This commit is contained in:
52
trahn-trade-backend/internal/api/sr_routes.go
Normal file
52
trahn-trade-backend/internal/api/sr_routes.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
type srLatestResponse struct {
|
||||
Support float64 `json:"support"`
|
||||
Resistance float64 `json:"resistance"`
|
||||
Midpoint float64 `json:"midpoint"`
|
||||
AvgPrice *float64 `json:"avgPrice"`
|
||||
Method string `json:"method"`
|
||||
LookbackDays int `json:"lookbackDays"`
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
}
|
||||
|
||||
func (s *Server) handleSRLatest(w http.ResponseWriter, r *http.Request) {
|
||||
sr, err := s.srRepo.GetLatest(r.Context())
|
||||
if err != nil {
|
||||
fmt.Printf("Error fetching latest S/R: %v\n", err)
|
||||
writeError(w, http.StatusInternalServerError, "failed to fetch S/R data")
|
||||
return
|
||||
}
|
||||
if sr == nil {
|
||||
writeError(w, http.StatusNotFound, "no S/R data available")
|
||||
return
|
||||
}
|
||||
|
||||
writeJSON(w, http.StatusOK, srLatestResponse{
|
||||
Support: sr.Support,
|
||||
Resistance: sr.Resistance,
|
||||
Midpoint: sr.Midpoint,
|
||||
AvgPrice: sr.AvgPrice,
|
||||
Method: sr.Method,
|
||||
LookbackDays: sr.LookbackDays,
|
||||
Timestamp: sr.Timestamp,
|
||||
})
|
||||
}
|
||||
|
||||
func (s *Server) handleSRHistory(w http.ResponseWriter, r *http.Request) {
|
||||
limit := parseLimit(r, 100)
|
||||
|
||||
history, err := s.srRepo.GetHistory(r.Context(), limit)
|
||||
if err != nil {
|
||||
fmt.Printf("Error fetching S/R history: %v\n", err)
|
||||
writeError(w, http.StatusInternalServerError, "failed to fetch S/R history")
|
||||
return
|
||||
}
|
||||
writeJSON(w, http.StatusOK, history)
|
||||
}
|
||||
Reference in New Issue
Block a user