Skip to content

Commit d02218f

Browse files
committed
change ordering to use fieldref instead of string
1 parent 8692126 commit d02218f

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

cot/src/db/query.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use crate::db::{
3333
pub struct Query<T> {
3434
filter: Option<Expr>,
3535
limit: Option<u64>,
36-
order_by: Option<(String, Order)>,
36+
order_by: Option<(FieldRef<T>, Order)>,
3737
offset: Option<u64>,
3838
phantom_data: PhantomData<fn() -> T>,
3939
}
@@ -167,10 +167,10 @@ impl<T: Model> Query<T> {
167167
/// age: i32,
168168
/// }
169169
///
170-
/// let query = Query::<User>::new().order_by("age", Order::Asc); // or Order::Desc
170+
/// let query = Query::<User>::new().order_by(User::age, Order::Asc); // or Order::Desc
171171
/// ```
172-
pub fn order_by(&mut self, order_by: (String, Order)) -> &mut Self {
173-
self.order_by = Some(self.order_by);
172+
pub fn order_by(&mut self, order_by: (FieldRef<T>, Order)) -> &mut Self {
173+
self.order_by = Some(order_by);
174174
self
175175
}
176176

@@ -271,7 +271,8 @@ impl<T: Model> Query<T> {
271271

272272
pub(super) fn add_order_by_to_statement(&self, statement: &mut sea_query::SelectStatement) {
273273
if let Some(order_by) = self.order_by {
274-
statement.order_by(order_by.0, order_by.1);
274+
let column_name = order_by.0.identifier;
275+
statement.order_by(column_name, order_by.1);
275276
}
276277
}
277278

@@ -1062,7 +1063,7 @@ impl Expr {
10621063
/// with some common operators like `=`, `!=`, `+`, `-`, `*`, and `/`.
10631064
#[derive(Debug)]
10641065
pub struct FieldRef<T> {
1065-
identifier: Identifier,
1066+
pub identifier: Identifier,
10661067
phantom_data: PhantomData<T>,
10671068
}
10681069

0 commit comments

Comments
 (0)