async-graphql/src/validation/mod.rs

24 lines
637 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);
let mut visitor = VisitorNil.with(rules::ArgumentsOfCorrectType::default());
visit(&mut visitor, &mut ctx, doc);
if !ctx.errors.is_empty() {
Err(RuleErrors { errors: ctx.errors }.into())
} else {
Ok(())
}
}