polycule-connect/polyculeconnect/helpers/helpers.go
Melora Hugues f3060bee3b feat: start replacing dex with zitadel (#48)
Start the process of replacing dex with zitadel, this commit is
absolutely not prod-ready, basically we just added zitatel, and the
necessary elements to make it work to at least getting a client from the
DB

- replace logrus with zap
- start our own storage for the users
- instanciate zitaled on start
- allow getting client using the ID from the DB
2024-08-16 11:29:19 +02:00

31 lines
746 B
Go

package helpers
import (
"context"
"net/http"
"go.uber.org/zap"
)
type ContextKey string
const ResponseInfoKey ContextKey = "response_info"
type ResponseInfo struct {
ReturnCode int
ContentLength int
}
func HandleResponse(w http.ResponseWriter, r *http.Request, returncode int, content []byte, l *zap.SugaredLogger) {
w.WriteHeader(returncode)
n, err := w.Write(content)
if err != nil {
l.Errorf("Failed to write content to response: %q", err.Error())
}
if n != len(content) {
l.Errorf("Failed to write the entire response (%d/%d)", n, len(content))
}
contextedReq := r.WithContext(context.WithValue(r.Context(), ResponseInfoKey, ResponseInfo{ReturnCode: returncode, ContentLength: len(content)}))
*r = *contextedReq
}