diff --git a/src/lib.rs b/src/lib.rs index da30c57..fc1e37e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,9 +1,27 @@ -use graphql_parser::schema::{Document, ParseError}; +use graphql_parser::query; +use graphql_parser::schema; pub mod error_codes { pub const ERROR_SCHEMA_INVALID: i32 = 1; + pub const ERROR_QUERY_INVALID: i32 = 2; } -pub fn parse_schema(schema: &str) -> Result, ParseError> { - graphql_parser::parse_schema::(schema) +pub fn load_schema(schema: &str) -> schema::Document { + let schema = schema::parse_schema::(schema).unwrap_or_else(|err| { + eprintln!("Error parsing schema: {}", err); + std::process::exit(error_codes::ERROR_SCHEMA_INVALID); + }); + dbg!("schema: {:#?}", &schema); + + schema +} + +pub fn parse_query(query: &str) -> query::Document { + let query = query::parse_query::(query).unwrap_or_else(|err| { + eprintln!("Error parsing query: {}", err); + std::process::exit(error_codes::ERROR_QUERY_INVALID); + }); + dbg!("query: {:#?}", &query); + + query } diff --git a/src/main.rs b/src/main.rs index a82a618..b35e807 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,11 +12,7 @@ fn main() { process::exit(error_codes::ERROR_SCHEMA_FILE_INVALID); }); - let schema = minigraf::parse_schema(&schema_file).unwrap_or_else(|err| { - eprintln!("Error parsing schema file: {}", err); - process::exit(minigraf::error_codes::ERROR_SCHEMA_INVALID); - }); - dbg!("schema: {:#?}", schema); + minigraf::load_schema(&schema_file); } mod error_codes {