in internal/service/server.go [110:148]
func (s *Server) handleRequest(w http.ResponseWriter, r *http.Request) {
//defer recover
defer func(w http.ResponseWriter, r *http.Request) {
if err := recover(); err != nil {
w.WriteHeader(http.StatusInternalServerError)
s.loggerWrapper.Error("HandlePanic:%v\tTraceStack:%s", err, string(debug.Stack()))
}
}(w, r)
if err := s.validateMaxConn(r); err != nil {
http.Error(w, err.Error(), http.StatusTooManyRequests)
return
}
defer atomic.AddInt32(&s.connCount, -1)
if err := s.validateToken(r); err != nil {
http.Error(w, err.Error(), http.StatusForbidden)
return
}
if err := s.validateMethod(r); err != nil {
http.Error(w, err.Error(), http.StatusMethodNotAllowed)
return
}
// Ping
if r.URL.Path == PingPath {
s.handlePing(w, r)
return
}
// Get Secret
if r.URL.Path == QueryStylePath || strings.HasPrefix(r.URL.Path, s.pathPrefix) {
s.handleGetSecret(w, r)
return
}
http.NotFound(w, r)
}