예제 #1
0
func IsLangMap(langMap interface{}) bool {
	schema := GetXAPISchemaInstance()

	res, err := schema.Get(XAPIVersion10x, "langmap").Validate(gojsonschema.NewGoLoader(langMap))
	if err != nil {
		logger.Warn(err)
		return false
	}

	return res.Valid()
}
예제 #2
0
// validate は与えられた body が kind であることを検査する。
func validate(version XAPIVersion, kind string, body map[string]interface{}) error {
	if s, ok := (*schema)[version]; ok {
		res, err := s[kind].Validate(gojsonschema.NewGoLoader(body))
		if err != nil {
			logger.Warn("Validation error: ", err)
			return err
		}

		if !res.Valid() {
			emessage := "The document is not valid. see errors: \n"

			for _, desc := range res.Errors() {
				emessage += fmt.Sprintf("- %s", desc)
			}
			return errors.New(emessage)
		}
	} else {
		return errors.New("Invalid XAPI version given.")
	}

	return nil
}