@@ -168,24 +168,32 @@ func (s *Server) handleDelete(w http.ResponseWriter, r *http.Request, table sche
168168}
169169
170170func  (s  * Server ) executeQuery (w  http.ResponseWriter , r  * http.Request , query  string , args  []any ) {
171- 	_ , conn , err  :=  httputil .ConnWithRole (r )
172- 	if  err  !=  nil  {
173- 		httputil .Error (w , http .StatusInternalServerError , err .Error ())
171+ 	_ , conn , pgErr  :=  httputil .ConnWithRole (r )
172+ 	if  pgErr  !=  nil  {
173+ 		httputil .Error (w , http .StatusInternalServerError , pgErr .Error ())
174174		return 
175175	}
176176	defer  conn .Release ()
177177
178- 	rows , pgErr  :=  conn .Query (r .Context (), query , args ... )
179- 	if  pgErr  !=  nil  {
180- 		log .Printf ("Query error: %v" , pgErr )
181- 		httputil .Error (w , http .StatusInternalServerError , "Database query error" )
178+ 	pgRole , ok  :=  r .Context ().Value (httputil .OIDCRoleClaimCtxKey ).(string )
179+ 	if  ! ok  ||  pgRole  ==  ""  {
180+ 		log .Println ("pgrole not found in OIDC claims" )
181+ 		httputil .Error (w , http .StatusUnauthorized , "pgrole not found in OIDC claims" )
182+ 		return 
183+ 	}
184+ 
185+ 	rows , err  :=  conn .Query (r .Context (), query , args ... )
186+ 	if  err  !=  nil  {
187+ 		log .Printf ("TODO - map pg-err to http status: query error: %+v" , err )
188+ 		httputil .Error (w , http .StatusInternalServerError , fmt .Sprintf ("%s pgrole: %s" , err .Error (), pgRole )) // debug 
182189		return 
183190	}
184191	defer  rows .Close ()
185192
186- 	results , pgErr  :=  pgx .CollectRows (rows , pgx .RowToMap )
187- 	if  pgErr  !=  nil  {
188- 		httputil .Error (w , http .StatusInternalServerError , "Error collecting results" )
193+ 	results , err  :=  pgx .CollectRows (rows , pgx .RowToMap )
194+ 	if  err  !=  nil  {
195+ 		log .Printf ("TODO - map pg-err to http status: parse error: %v" , err )
196+ 		httputil .Error (w , http .StatusInternalServerError , fmt .Sprintf ("%s pgrole: %s" , err .Error (), pgRole )) // debug 
189197		return 
190198	}
191199
0 commit comments