mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-03-15 00:36:33 +00:00
Refactor order_by match arms.
We can use match to update the q variable. There is also no need to match for _, as this would hide unmatched OrderBy enum values.
This commit is contained in:
parent
1a8e3238e9
commit
32e6a49e9e
@ -1368,7 +1368,7 @@ pub mod test {
|
||||
multicast_group_id: "".into(),
|
||||
limit: 10,
|
||||
offset: 0,
|
||||
order_by: 0,
|
||||
order_by: api::list_devices_request::OrderBy::Name.into(),
|
||||
order_by_desc: true,
|
||||
},
|
||||
);
|
||||
|
@ -658,34 +658,24 @@ pub async fn list(
|
||||
.eq(fields::Uuid::from(multicast_group_id)),
|
||||
);
|
||||
}
|
||||
let descending: bool = order_by_desc;
|
||||
|
||||
match order_by {
|
||||
OrderBy::Name if !descending => q = q.order_by(device::dsl::name),
|
||||
OrderBy::Name if descending => q = q.order_by(device::dsl::name.desc()),
|
||||
OrderBy::DevEui if !descending => q = q.order_by(device::dsl::dev_eui),
|
||||
OrderBy::DevEui if descending => q = q.order_by(device::dsl::dev_eui.desc()),
|
||||
OrderBy::LastSeenAt if !descending => {
|
||||
q = q
|
||||
.order_by(device::dsl::last_seen_at)
|
||||
.then_order_by(device::dsl::name)
|
||||
}
|
||||
OrderBy::LastSeenAt if descending => {
|
||||
q = q
|
||||
q = match order_by_desc {
|
||||
true => match order_by {
|
||||
OrderBy::Name => q.order_by(device::dsl::name.desc()),
|
||||
OrderBy::DevEui => q.order_by(device::dsl::dev_eui.desc()),
|
||||
OrderBy::LastSeenAt => q
|
||||
.order_by(device::dsl::last_seen_at.desc())
|
||||
.then_order_by(device::dsl::name)
|
||||
}
|
||||
OrderBy::DeviceProfileName if !descending => {
|
||||
q = q
|
||||
.order_by(device_profile::dsl::name.asc())
|
||||
.then_order_by(device::dsl::name)
|
||||
}
|
||||
OrderBy::DeviceProfileName if descending => {
|
||||
q = q
|
||||
.order_by(device_profile::dsl::name.desc())
|
||||
.then_order_by(device::dsl::name)
|
||||
}
|
||||
_ => q = q.order_by(device::dsl::name),
|
||||
.then_order_by(device::dsl::name),
|
||||
OrderBy::DeviceProfileName => q.order_by(device_profile::dsl::name.desc()),
|
||||
},
|
||||
false => match order_by {
|
||||
OrderBy::Name => q.order_by(device::dsl::name),
|
||||
OrderBy::DevEui => q.order_by(device::dsl::dev_eui),
|
||||
OrderBy::LastSeenAt => q
|
||||
.order_by(device::dsl::last_seen_at)
|
||||
.then_order_by(device::dsl::name),
|
||||
OrderBy::DeviceProfileName => q.order_by(device_profile::dsl::name),
|
||||
},
|
||||
};
|
||||
|
||||
q.limit(limit)
|
||||
|
@ -361,24 +361,21 @@ pub async fn list(
|
||||
);
|
||||
}
|
||||
|
||||
let descending: bool = order_by_desc;
|
||||
|
||||
match order_by {
|
||||
OrderBy::Name if !descending => q = q.order_by(gateway::dsl::name),
|
||||
OrderBy::Name if descending => q = q.order_by(gateway::dsl::name.desc()),
|
||||
OrderBy::GatewayId if !descending => q = q.order_by(gateway::dsl::gateway_id),
|
||||
OrderBy::GatewayId if descending => q = q.order_by(gateway::dsl::gateway_id.desc()),
|
||||
OrderBy::LastSeenAt if !descending => {
|
||||
q = q
|
||||
.order_by(gateway::dsl::last_seen_at)
|
||||
.then_order_by(gateway::dsl::name)
|
||||
}
|
||||
OrderBy::LastSeenAt if descending => {
|
||||
q = q
|
||||
q = match order_by_desc {
|
||||
true => match order_by {
|
||||
OrderBy::Name => q.order_by(gateway::dsl::name.desc()),
|
||||
OrderBy::GatewayId => q.order_by(gateway::dsl::gateway_id.desc()),
|
||||
OrderBy::LastSeenAt => q
|
||||
.order_by(gateway::dsl::last_seen_at.desc())
|
||||
.then_order_by(gateway::dsl::name)
|
||||
}
|
||||
_ => q = q.order_by(gateway::dsl::name),
|
||||
.then_order_by(gateway::dsl::name),
|
||||
},
|
||||
false => match order_by {
|
||||
OrderBy::Name => q.order_by(gateway::dsl::name),
|
||||
OrderBy::GatewayId => q.order_by(gateway::dsl::gateway_id),
|
||||
OrderBy::LastSeenAt => q
|
||||
.order_by(gateway::dsl::last_seen_at)
|
||||
.then_order_by(gateway::dsl::name),
|
||||
},
|
||||
};
|
||||
|
||||
let items = q
|
||||
|
Loading…
x
Reference in New Issue
Block a user