async-graphql/src/validation/mod.rs

26 lines
695 B
Rust
Raw Normal View History

2020-03-08 12:35:36 +00:00
use crate::error::RuleErrors;
use crate::registry::Registry;
use crate::validation::context::ValidatorContext;
use crate::validation::visitor::{visit, VisitorNil};
use crate::Result;
use graphql_parser::query::Document;
mod context;
mod rules;
mod utils;
mod visitor;
pub fn check_rules(registry: &Registry, doc: &Document) -> Result<()> {
let mut ctx = ValidatorContext::new(registry);
2020-03-08 12:58:22 +00:00
let mut visitor = VisitorNil
.with(rules::ArgumentsOfCorrectType::default())
.with(rules::DefaultValuesOfCorrectType);
2020-03-08 12:35:36 +00:00
visit(&mut visitor, &mut ctx, doc);
if !ctx.errors.is_empty() {
Err(RuleErrors { errors: ctx.errors }.into())
} else {
Ok(())
}
}