func()

in lambda/rapi/handler/agentregister.go [64:90]


func (h *agentRegisterHandler) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
	agentName := request.Header.Get(LambdaAgentName)
	if agentName == "" {
		rendering.RenderForbiddenWithTypeMsg(writer, request, errAgentNameInvalid, "Empty extension name")
		return
	}

	var responseModifiers []responseModifier
	for _, f := range parseRegistrationFeatures(request) {
		if f == accountFeature {
			responseModifiers = append(responseModifiers, h.respondWithAccountID())
		}
	}

	registerRequest, err := parseRegister(request)
	if err != nil {
		rendering.RenderForbiddenWithTypeMsg(writer, request, errInvalidRequestFormat, "%s", err.Error())
		return
	}

	agent, found := h.registrationService.FindExternalAgentByName(agentName)
	if found {
		h.registerExternalAgent(agent, registerRequest, writer, request, responseModifiers...)
	} else {
		h.registerInternalAgent(agentName, registerRequest, writer, request, responseModifiers...)
	}
}