func()

in api/approval.go [100:124]


func (p *PRRHandler) Parse(in io.Reader) (*PRRApproval, error) {
	scanner := bufio.NewScanner(in)
	var body bytes.Buffer
	for scanner.Scan() {
		line := scanner.Text() + "\n"
		body.WriteString(line)
	}

	approval := &PRRApproval{}
	if err := scanner.Err(); err != nil {
		return approval, errors.Wrap(err, "reading file")
	}

	if err := yaml.UnmarshalStrict(body.Bytes(), &approval); err != nil {
		p.Errors = append(p.Errors, errors.Wrap(err, "error unmarshalling YAML"))
		return approval, errors.Wrap(err, "unmarshalling YAML")
	}

	if valErr := approval.Validate(); valErr != nil {
		p.Errors = append(p.Errors, errors.Wrap(valErr, "validating PRR"))
		return approval, errors.Wrap(valErr, "validating PRR")
	}

	return approval, nil
}