@@ -41,7 +41,7 @@ func (h *Handler) getTable(w http.ResponseWriter, params map[string]interface{})
4141 // Parse table name
4242 table , ok := params ["tableName" ].(string )
4343 if ! ok {
44- writeError (w , fmt . Errorf ( "Missing table name" ), http . StatusBadRequest )
44+ writeError (w , apiErrBadRequest ( ErrMissingTableName . Error ()) )
4545 return
4646 }
4747
@@ -82,7 +82,7 @@ func (h *Handler) getTable(w http.ResponseWriter, params map[string]interface{})
8282 if err != nil {
8383 // TODO: use better logging
8484 fmt .Printf ("Error querying table: %v\n " , err )
85- writeError (w , fmt . Errorf ( "Something went wrong" ), http . StatusInternalServerError )
85+ writeError (w , apiErrSomethingWentWrong () )
8686 return
8787 }
8888 response := map [string ]interface {}{"rows" : data }
@@ -92,7 +92,7 @@ func (h *Handler) getTable(w http.ResponseWriter, params map[string]interface{})
9292 if err != nil {
9393 // TODO: use better logging
9494 fmt .Printf ("Error getting table info: %v\n " , err )
95- writeError (w , fmt . Errorf ( "Something went wrong" ), http . StatusInternalServerError )
95+ writeError (w , apiErrSomethingWentWrong () )
9696 return
9797 }
9898 response ["tableInfo" ] = tableInfo
@@ -104,35 +104,35 @@ func (h *Handler) getTable(w http.ResponseWriter, params map[string]interface{})
104104func (h * Handler ) deleteRows (w http.ResponseWriter , params map [string ]interface {}) {
105105 table , ok := params ["tableName" ].(string )
106106 if ! ok {
107- writeError (w , fmt . Errorf ( "Missing table name" ), http . StatusBadRequest )
107+ writeError (w , apiErrBadRequest ( ErrMissingTableName . Error ()) )
108108 return
109109 }
110110
111111 ids , ok := convertToStrSlice (params ["ids" ])
112112 if ! ok {
113- writeError (w , fmt . Errorf ( "Invalid or missing ids" ), http . StatusBadRequest )
113+ writeError (w , apiErrBadRequest ( ErrInvalidOrMissingIds . Error ()) )
114114 return
115115 }
116116
117117 exists , err := checkTableExists (h .db , table )
118118 if err != nil {
119119 // TODO: use better logging
120120 fmt .Printf ("Error checking table existence: %v\n " , err )
121- writeError (w , fmt . Errorf ( "Bad Request" ), http . StatusBadRequest )
121+ writeError (w , apiErrSomethingWentWrong () )
122122 return
123123 }
124124 if ! exists {
125125 // TODO: use better logging
126126 fmt .Printf ("Error table does not exist: %s\n " , table )
127- writeError (w , fmt . Errorf ( "Bad Request" ), http . StatusBadRequest )
127+ writeError (w , apiErrBadRequest ( ErrInvalidInput . Error ()) )
128128 return
129129 }
130130
131131 rowsAffected , err := batchDelete (h .db , table , ids )
132132 if err != nil {
133133 // TODO: use better logging
134134 fmt .Printf ("Error deleting rows from table: %v\n " , err )
135- writeError (w , fmt . Errorf ( "Something went wrong" ), http . StatusInternalServerError )
135+ writeError (w , apiErrSomethingWentWrong () )
136136 return
137137 }
138138
@@ -142,19 +142,21 @@ func (h *Handler) deleteRows(w http.ResponseWriter, params map[string]interface{
142142func (h * Handler ) updateRow (w http.ResponseWriter , params map [string ]interface {}) {
143143 table , ok := params ["tableName" ].(string )
144144 if ! ok {
145- writeError (w , fmt . Errorf ( "Missing table name" ), http . StatusBadRequest )
145+ writeError (w , apiErrBadRequest ( ErrMissingTableName . Error ()) )
146146 return
147147 }
148148
149149 row , ok := params ["row" ].(map [string ]interface {})
150150 if ! ok {
151- writeError (w , fmt . Errorf ( "Missing row" ), http . StatusBadRequest )
151+ writeError (w , apiErrBadRequest ( ErrMissingRow . Error ()) )
152152 return
153153 }
154154
155155 err := editRow (h .db , table , row )
156156 if err != nil {
157- writeError (w , fmt .Errorf ("Failed to update row" ), http .StatusInternalServerError )
157+ // TODO: use better logging
158+ fmt .Printf ("Error editing row: %v\n " , err )
159+ writeError (w , apiErrSomethingWentWrong ())
158160 return
159161 }
160162
@@ -478,9 +480,9 @@ func editRow(db *sql.DB, tableName string, row map[string]interface{}) error {
478480 return nil
479481}
480482
481- func writeError (w http.ResponseWriter , err error , status int ) {
482- w .WriteHeader (status )
483- json .NewEncoder (w ).Encode (map [ string ] string { "error" : err . Error ()} )
483+ func writeError (w http.ResponseWriter , err ApiError ) {
484+ w .WriteHeader (err . StatusCode )
485+ json .NewEncoder (w ).Encode (err )
484486}
485487
486488func convertToStrSlice (val interface {}) ([]any , bool ) {
0 commit comments