2023-01-30 22:21:16 +01:00
|
|
|
use dagger_core::introspection::{FullType, FullTypeInputFields, TypeRef, __TypeKind};
|
2023-01-29 12:58:57 +01:00
|
|
|
|
|
|
|
use crate::models::Scalars;
|
|
|
|
|
|
|
|
pub fn is_scalar_type(t: &FullType) -> bool {
|
2023-01-30 22:21:16 +01:00
|
|
|
if let Some(__TypeKind::SCALAR) = t.kind {
|
2023-01-29 12:58:57 +01:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
false
|
|
|
|
}
|
|
|
|
|
2023-01-29 22:17:36 +01:00
|
|
|
pub fn is_scalar_type_ref(t: &TypeRef) -> bool {
|
2023-01-30 22:21:16 +01:00
|
|
|
if let Some(__TypeKind::SCALAR) = t.kind {
|
2023-01-29 22:17:36 +01:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
false
|
|
|
|
}
|
|
|
|
|
2023-01-29 20:14:52 +01:00
|
|
|
pub fn is_enum_type(t: &FullType) -> bool {
|
2023-01-30 22:21:16 +01:00
|
|
|
if let Some(__TypeKind::ENUM) = t.kind {
|
2023-01-29 20:14:52 +01:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
false
|
|
|
|
}
|
|
|
|
|
2023-01-29 22:17:36 +01:00
|
|
|
pub fn is_input_object_type(t: &FullType) -> bool {
|
2023-01-30 22:21:16 +01:00
|
|
|
if let Some(__TypeKind::INPUT_OBJECT) = t.kind {
|
2023-01-29 22:17:36 +01:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
false
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn is_required_type(t: &FullTypeInputFields) -> bool {
|
|
|
|
match t.input_value.type_.kind {
|
|
|
|
Some(__TypeKind::NON_NULL) => return false,
|
|
|
|
Some(_) => return true,
|
|
|
|
_ => return false,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn is_required_type_ref(t: &TypeRef) -> bool {
|
|
|
|
match t.kind {
|
|
|
|
Some(__TypeKind::NON_NULL) => return false,
|
|
|
|
Some(_) => return true,
|
|
|
|
_ => return false,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn is_list_type(t: &TypeRef) -> bool {
|
2023-01-30 22:21:16 +01:00
|
|
|
if let Some(__TypeKind::LIST) = t.kind {
|
2023-01-29 22:17:36 +01:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
false
|
|
|
|
}
|
|
|
|
|
2023-01-30 20:44:48 +01:00
|
|
|
pub fn is_object_type(t: &FullType) -> bool {
|
2023-01-30 22:21:16 +01:00
|
|
|
if let Some(__TypeKind::OBJECT) = t.kind {
|
2023-01-30 20:44:48 +01:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
false
|
|
|
|
}
|
|
|
|
|
2023-01-29 12:58:57 +01:00
|
|
|
pub fn is_custom_scalar_type(t: &FullType) -> bool {
|
|
|
|
if is_scalar_type(t) {
|
|
|
|
// TODO: Insert scalar
|
|
|
|
let _ = match t.name.as_ref().map(|s| s.as_str()) {
|
|
|
|
Some("ID") => Scalars::ID("ID".into()),
|
|
|
|
Some("Int") => Scalars::Int(0),
|
|
|
|
Some("String") => Scalars::String("ID".into()),
|
|
|
|
Some("Float") => Scalars::Float(0.0),
|
|
|
|
Some("Boolean") => Scalars::Boolean(false),
|
|
|
|
Some("Date") => Scalars::Date("ID".into()),
|
|
|
|
Some("DateTime") => Scalars::DateTime("ID".into()),
|
|
|
|
Some("Time") => Scalars::Time("ID".into()),
|
|
|
|
Some("Decimal") => Scalars::Decimal(0.0),
|
|
|
|
Some(_) => return true,
|
|
|
|
None => return false,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
false
|
|
|
|
}
|
2023-01-29 22:17:36 +01:00
|
|
|
|
|
|
|
pub fn is_custom_scalar_type_ref(t: &TypeRef) -> bool {
|
|
|
|
if is_scalar_type_ref(t) {
|
|
|
|
// TODO: Insert scalar
|
|
|
|
let _ = match t.name.as_ref().map(|s| s.as_str()) {
|
|
|
|
Some("ID") => Scalars::ID("ID".into()),
|
|
|
|
Some("Int") => Scalars::Int(0),
|
|
|
|
Some("String") => Scalars::String("ID".into()),
|
|
|
|
Some("Float") => Scalars::Float(0.0),
|
|
|
|
Some("Boolean") => Scalars::Boolean(false),
|
|
|
|
Some("Date") => Scalars::Date("ID".into()),
|
|
|
|
Some("DateTime") => Scalars::DateTime("ID".into()),
|
|
|
|
Some("Time") => Scalars::Time("ID".into()),
|
|
|
|
Some("Decimal") => Scalars::Decimal(0.0),
|
|
|
|
Some(_) => return true,
|
|
|
|
None => return false,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
false
|
|
|
|
}
|