mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-01 23:40:45 +00:00
Sort NULL values as smallest value (devices and gateways last seen).
Fixes #683.
This commit is contained in:
parent
26cca09ce8
commit
46bb01ccdc
@ -730,17 +730,37 @@ pub async fn list(
|
||||
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::LastSeenAt => {
|
||||
#[cfg(feature = "postgres")]
|
||||
{
|
||||
q.order_by(device::dsl::last_seen_at.desc().nulls_last())
|
||||
.then_order_by(device::dsl::name)
|
||||
}
|
||||
|
||||
#[cfg(feature = "sqlite")]
|
||||
{
|
||||
q.order_by(device::dsl::last_seen_at.desc())
|
||||
.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::LastSeenAt => {
|
||||
#[cfg(feature = "postgres")]
|
||||
{
|
||||
q.order_by(device::dsl::last_seen_at.asc().nulls_first())
|
||||
.then_order_by(device::dsl::name)
|
||||
}
|
||||
|
||||
#[cfg(feature = "sqlite")]
|
||||
{
|
||||
q.order_by(device::dsl::last_seen_at.asc())
|
||||
.then_order_by(device::dsl::name)
|
||||
}
|
||||
}
|
||||
OrderBy::DeviceProfileName => q.order_by(device_profile::dsl::name),
|
||||
},
|
||||
};
|
||||
|
@ -365,16 +365,36 @@ pub async fn list(
|
||||
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),
|
||||
OrderBy::LastSeenAt => {
|
||||
#[cfg(feature = "postgres")]
|
||||
{
|
||||
q.order_by(gateway::dsl::last_seen_at.desc().nulls_last())
|
||||
.then_order_by(gateway::dsl::name)
|
||||
}
|
||||
|
||||
#[cfg(feature = "sqlite")]
|
||||
{
|
||||
q.order_by(gateway::dsl::last_seen_at.desc())
|
||||
.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),
|
||||
OrderBy::LastSeenAt => {
|
||||
#[cfg(feature = "postgres")]
|
||||
{
|
||||
q.order_by(gateway::dsl::last_seen_at.asc().nulls_first())
|
||||
.then_order_by(gateway::dsl::name)
|
||||
}
|
||||
|
||||
#[cfg(feature = "sqlite")]
|
||||
{
|
||||
q.order_by(gateway::dsl::last_seen_at.asc())
|
||||
.then_order_by(gateway::dsl::name)
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user