func()

in apmproxy/receiver.go [182:209]


func (c *Client) handleTransactionRegistration() func(w http.ResponseWriter, r *http.Request) {
	return func(w http.ResponseWriter, r *http.Request) {
		if r.Header.Get("Content-Type") != txnRegistrationContentType {
			w.WriteHeader(http.StatusUnsupportedMediaType)
			return
		}
		reqID := r.Header.Get("x-elastic-aws-request-id")
		if reqID == "" {
			w.WriteHeader(http.StatusBadRequest)
			return
		}
		rawBytes, err := io.ReadAll(r.Body)
		defer r.Body.Close()
		if err != nil {
			c.logger.Warnf("Failed to read transaction registration body: %v", err)
			w.WriteHeader(http.StatusBadRequest)
			return
		}

		if err := c.batch.OnAgentInit(
			reqID, r.Header.Get("Content-Encoding"), rawBytes,
		); err != nil {
			c.logger.Warnf("Failed to update invocation: %v", err)
			w.WriteHeader(http.StatusUnprocessableEntity)
			return
		}
	}
}