func()

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)
}