Skip to content

Commit 4f1adae

Browse files
committed
store: avoid expect
1 parent 8042010 commit 4f1adae

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

graphql/src/store/query.rs

+10-5
Original file line numberDiff line numberDiff line change
@@ -401,15 +401,20 @@ enum OrderByValue {
401401
Child(String, String),
402402
}
403403

404-
fn parse_order_by(enum_value: &String) -> OrderByValue {
404+
fn parse_order_by(enum_value: &String) -> Result<OrderByValue, QueryExecutionError> {
405405
let mut parts = enum_value.split("__");
406-
let first = parts.next().expect("some dark magic happened");
406+
let first = parts.next().ok_or_else(|| {
407+
QueryExecutionError::ValueParseError(
408+
"Invalid order value".to_string(),
409+
enum_value.to_string(),
410+
)
411+
})?;
407412
let second = parts.next();
408413

409-
match second {
414+
Ok(match second {
410415
Some(second) => OrderByValue::Child(first.to_string(), second.to_string()),
411416
None => OrderByValue::Direct(first.to_string()),
412-
}
417+
})
413418
}
414419

415420
struct ObjectOrderDetails {
@@ -436,7 +441,7 @@ fn build_order_by(
436441
schema: &ApiSchema,
437442
) -> Result<Option<(String, ValueType, Option<OrderByChild>)>, QueryExecutionError> {
438443
match field.argument_value("orderBy") {
439-
Some(r::Value::Enum(name)) => match parse_order_by(name) {
444+
Some(r::Value::Enum(name)) => match parse_order_by(name)? {
440445
OrderByValue::Direct(name) => {
441446
let field = sast::get_field(entity, name.as_str()).ok_or_else(|| {
442447
QueryExecutionError::EntityFieldError(entity.name().to_owned(), name.clone())

0 commit comments

Comments
 (0)