@@ -35,7 +35,17 @@ func RvInfoHandler() http.HandlerFunc {
3535// GetOwnerRedirect implements the rvInfo GET endpoint (OpenAPI interface method)
3636func (s * Server ) GetOwnerRedirect (w http.ResponseWriter , r * http.Request ) {
3737 slog .Debug ("Fetching rvInfo" )
38- rvInfoJSON , err := db .FetchRvInfoJSON ()
38+
39+ var rvInfoJSON []byte
40+ var err error
41+
42+ // Use struct database if available, otherwise fall back to global db
43+ if s .db != nil {
44+ rvInfoJSON , err = s .db .FetchRvInfoJSON ()
45+ } else {
46+ rvInfoJSON , err = db .FetchRvInfoJSON ()
47+ }
48+
3949 if err != nil {
4050 if errors .Is (err , gorm .ErrRecordNotFound ) {
4151 slog .Error ("No rvInfo found" )
@@ -53,12 +63,29 @@ func (s *Server) GetOwnerRedirect(w http.ResponseWriter, r *http.Request) {
5363
5464// PostOwnerRedirect implements the rvInfo POST endpoint (OpenAPI interface method)
5565func (s * Server ) PostOwnerRedirect (w http.ResponseWriter , r * http.Request ) {
66+ slog .Debug ("PostOwnerRedirect: Starting handler" )
67+
5668 rvInfo , ok := ReadRequestBody (w , r )
5769 if ! ok {
70+ slog .Error ("PostOwnerRedirect: Failed to read request body" )
5871 return
5972 }
73+
74+ slog .Debug ("PostOwnerRedirect: Read request body" , "size" , len (rvInfo ))
75+
76+ // Use struct database if available, otherwise fall back to global db
77+ var err error
78+ if s .db != nil {
79+ slog .Debug ("PostOwnerRedirect: Using struct database" )
80+ err = s .db .InsertRvInfo (rvInfo )
81+ } else {
82+ slog .Debug ("PostOwnerRedirect: Using global database (fallback)" )
83+ err = db .InsertRvInfo (rvInfo )
84+ }
85+
86+ slog .Debug ("PostOwnerRedirect: Insert operation completed" , "error" , err )
6087
61- if err := db . InsertRvInfo ( rvInfo ); err != nil {
88+ if err != nil {
6289 if HandleDBError (w , r , "rvInfo" , err ) {
6390 return
6491 }
@@ -77,6 +104,8 @@ func (s *Server) PostOwnerRedirect(w http.ResponseWriter, r *http.Request) {
77104 w .Header ().Set ("Content-Type" , ContentTypeJSON )
78105 w .WriteHeader (http .StatusCreated )
79106 w .Write (rvInfo )
107+
108+ slog .Debug ("PostOwnerRedirect: Successfully completed, response sent" )
80109}
81110
82111// PutOwnerRedirect implements the rvInfo PUT endpoint (OpenAPI interface method)
@@ -86,7 +115,15 @@ func (s *Server) PutOwnerRedirect(w http.ResponseWriter, r *http.Request) {
86115 return
87116 }
88117
89- if err := db .UpdateRvInfo (rvInfo ); err != nil {
118+ // Use struct database if available, otherwise fall back to global db
119+ var err error
120+ if s .db != nil {
121+ err = s .db .UpdateRvInfo (rvInfo )
122+ } else {
123+ err = db .UpdateRvInfo (rvInfo )
124+ }
125+
126+ if err != nil {
90127 if errors .Is (err , gorm .ErrRecordNotFound ) {
91128 slog .Error ("rvInfo does not exist, cannot update" )
92129 WriteErrorResponse (w , r , http .StatusNotFound , "rvInfo does not exist" , "No rvInfo found to update" , "rvInfo does not exist" )
0 commit comments