@@ -81,6 +81,12 @@ func fetchAndCacheSchema(url string, verbose bool) (io.Reader, error) {
8181}
8282
8383func formatErrorMessage (reqType string , errUnformatted error ) (err error ) {
84+ // Check if the error is nil
85+ if errUnformatted == nil {
86+ return nil
87+ }
88+
89+ // Convert the error to a string
8490 errMsg := errUnformatted .Error ()
8591
8692 // Define constants
@@ -230,15 +236,22 @@ func resolveSchemaError(reqMap map[string]interface{}, verbose bool) (err error)
230236 } else if reqTypeStr == "" {
231237 err = fmt .Errorf ("no request type specified" )
232238 } else {
233- var reqSchema * jsonschema.Schema
234- reqSchema , err = jsonschema .Compile (filepath .Join (cacheDir , reqTypeStr + ".req.notecard.api.json" ))
235- if err == nil {
236- err = reqSchema .Validate (reqMap )
237- if ! verbose {
238- err = formatErrorMessage (reqTypeStr , err )
239+ // Validate against the specific request schema
240+ schemaPath := filepath .Join (cacheDir , reqTypeStr + ".req.notecard.api.json" )
241+ if _ , err = os .Stat (schemaPath ); os .IsNotExist (err ) {
242+ err = fmt .Errorf ("unknown request type: %s" , reqTypeStr )
243+ } else if err == nil {
244+ var reqSchema * jsonschema.Schema
245+ reqSchema , err = jsonschema .Compile (schemaPath )
246+ if err == nil {
247+ err = reqSchema .Validate (reqMap )
248+ if err != nil && ! verbose {
249+ err = formatErrorMessage (reqTypeStr , err )
250+ }
239251 }
240252 }
241253 }
254+
242255 return err
243256}
244257
0 commit comments