func endpoint()

in crlVerification/main.go [177:235]


func endpoint(resp http.ResponseWriter, req *http.Request) {
	ret := NewReturn()
	code := 200
	defer func() {
		resp.Header().Set("Content-Type", "application/json")
		resp.WriteHeader(code)
		encoder := json.NewEncoder(resp)
		encoder.SetIndent("", "  ")
		if err := encoder.Encode(&ret); err != nil {
			fmt.Println(err)
		}
	}()
	body, err := ioutil.ReadAll(req.Body)
	if err != nil {
		code = 500
		resp.WriteHeader(500)
		ret = Return{
			Result: FAIL,
			Errors: []error{err},
		}
		return
	}
	_ = req.Body.Close()
	i := NewInput()
	err = json.Unmarshal(body, &i)
	if err != nil {
		code = 500
		ret = Return{
			Result: FAIL,
			Errors: []error{err},
		}
		return
	}
	if len(i.errs) != 0 {
		code = 400
		ret = Return{
			Result: FAIL,
			Errors: i.errs,
		}
		return
	}
	if len(i.Crls) == 0 {
		ret = NewReturn()
		ret.Errors = append(ret.Errors, utils.CRLNotGiven{})
		return
	}
	code = 200
	allErrors := make([]error, 0)
	for _, crl := range i.Crls {
		result := Validate(i, crl)
		if len(result.Errors) == 0 {
			ret = result
			return
		}
		allErrors = append(allErrors, result.Errors...)
	}
	ret = NewReturn()
	ret.Errors = allErrors
}