func HandleFlag()

in integration-test/webserver/main.go [44:82]


func HandleFlag(flagStr string) (int, map[string]interface{}) {
	statusCode := 200
	responseBody := make(map[string]interface{})
	if flagStr == "" {
		return statusCode, responseBody
	}

	flags := strings.Split(flagStr, "-")
	statusCodeAndHealthStateFlags := []rune(flags[0])

	// E.g '3' -> StatusCode: 300
	statusCode = HandleStatusCodeFlag(string(statusCodeAndHealthStateFlags[0]))

	// E.g '2h' -> StatusCode: 200, ResponseBody: { "ApplicationHealthState" : "Healthy" }
	if healthStateOrTimeoutFlag := ApplicationHealthStateFlagPresent(flags); healthStateOrTimeoutFlag != "" {
		switch healthStateOrTimeoutFlag {
		case ResponseTimeoutFlag:
			log.Printf("Sleeping for %d seconds", ResponseTimeoutInSeconds)
			time.Sleep(ResponseTimeoutInSeconds * time.Second)
		default:
			key, value := HandleApplicationHealthStateFlag(healthStateOrTimeoutFlag)
			responseBody[key] = value
		}
	}

	// E.g '2h-valid' -> StatusCode: 200, ResponseBody: { "ApplicationHealthState" : "Healthy", "CustomMetrics": "<a raw json string>" }
	if customMetricFlag := CustomMetricsFlagPresent(flags); customMetricFlag != "" {
		key, value := HandleCustomMetricFlag(customMetricFlag)
		responseBody[key] = value
	}

	if len(responseBody) == 0 {
		log.Printf("Sending no response body with status code %v", statusCode)
	} else {
		log.Printf("Sending response body with status code %v: %v", statusCode, responseBody)
	}

	return statusCode, responseBody
}