Skip to content

Commit 526e785

Browse files
committed
controllers/helpers/pagination: Remove tuple struct support for seek!
1 parent 6317184 commit 526e785

File tree

1 file changed

+14
-81
lines changed

1 file changed

+14
-81
lines changed

src/controllers/helpers/pagination.rs

Lines changed: 14 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -401,13 +401,7 @@ impl<T, C> PaginatedQueryWithCountSubq<T, C> {
401401
}
402402
}
403403

404-
#[allow(unused_macro_rules)]
405404
macro_rules! seek {
406-
// Tuple struct
407-
(@variant_struct $vis:vis $variant:ident($($(#[$field_meta:meta])? $ty:ty),*)) => {
408-
#[derive(Debug, Default, Deserialize, Serialize, PartialEq)]
409-
$vis struct $variant($($(#[$field_meta])? pub(super) $ty),*);
410-
};
411405
// Field struct
412406
(@variant_struct $vis:vis $variant:ident {
413407
$($(#[$field_meta:meta])? $field:ident: $ty:ty),*
@@ -616,12 +610,9 @@ mod tests {
616610
use chrono::naive::serde::ts_microseconds;
617611
seek! {
618612
pub(super) enum Seek {
619-
Id(i32)
620-
New(#[serde(with="ts_microseconds")] chrono::NaiveDateTime, i32)
621-
RecentDownloads(Option<i64>, i32)
622-
NamedId{id: i32}
623-
NamedNew{#[serde(with="ts_microseconds")] dt: chrono::NaiveDateTime, id: i32}
624-
NamedRecentDownloads{ downloads: Option<i64>, id: i32 }
613+
Id{id: i32}
614+
New{#[serde(with="ts_microseconds")] dt: chrono::NaiveDateTime, id: i32}
615+
RecentDownloads{ downloads: Option<i64>, id: i32 }
625616
}
626617
}
627618
}
@@ -641,9 +632,9 @@ mod tests {
641632
assert_eq!(decoded, expect);
642633
};
643634

644-
// Tuple struct
635+
let id = 1234;
645636
let seek = Seek::Id;
646-
let payload = SeekPayload::Id(Id(1234));
637+
let payload = SeekPayload::Id(Id { id });
647638
let query = format!("seek={}", encode_seek(&payload).unwrap());
648639
assert_decode_after(seek, &query, Some(payload));
649640

@@ -652,57 +643,21 @@ mod tests {
652643
.and_hms_opt(9, 10, 11)
653644
.unwrap();
654645
let seek = Seek::New;
655-
let payload = SeekPayload::New(New(dt, 1234));
646+
let payload = SeekPayload::New(New { dt, id });
656647
let query = format!("seek={}", encode_seek(&payload).unwrap());
657648
assert_decode_after(seek, &query, Some(payload));
658649

650+
let downloads = Some(5678);
659651
let seek = Seek::RecentDownloads;
660-
let payload = SeekPayload::RecentDownloads(RecentDownloads(Some(5678), 1234));
652+
let payload = SeekPayload::RecentDownloads(RecentDownloads { downloads, id });
661653
let query = format!("seek={}", encode_seek(&payload).unwrap());
662654
assert_decode_after(seek, &query, Some(payload));
663655

664656
let seek = Seek::Id;
665657
assert_decode_after(seek, "", None);
666658

667659
let seek = Seek::Id;
668-
let payload = SeekPayload::RecentDownloads(RecentDownloads(Some(5678), 1234));
669-
let query = format!("seek={}", encode_seek(payload).unwrap());
670-
let pagination = PaginationOptions::builder()
671-
.enable_seek(true)
672-
.gather(&mock(&query))
673-
.unwrap();
674-
let error = seek.after(&pagination.page).unwrap_err();
675-
assert_eq!(error.to_string(), "invalid seek parameter");
676-
let response = error.response();
677-
assert_eq!(response.status(), StatusCode::BAD_REQUEST);
678-
679-
// Field struct
680-
let id = 1234;
681-
let seek = Seek::NamedId;
682-
let payload = SeekPayload::NamedId(NamedId { id });
683-
let query = format!("seek={}", encode_seek(&payload).unwrap());
684-
assert_decode_after(seek, &query, Some(payload));
685-
686-
let dt: NaiveDateTime = NaiveDate::from_ymd_opt(2016, 7, 8)
687-
.unwrap()
688-
.and_hms_opt(9, 10, 11)
689-
.unwrap();
690-
let seek = Seek::NamedNew;
691-
let payload = SeekPayload::NamedNew(NamedNew { dt, id });
692-
let query = format!("seek={}", encode_seek(&payload).unwrap());
693-
assert_decode_after(seek, &query, Some(payload));
694-
695-
let downloads = Some(5678);
696-
let seek = Seek::NamedRecentDownloads;
697-
let payload = SeekPayload::NamedRecentDownloads(NamedRecentDownloads { downloads, id });
698-
let query = format!("seek={}", encode_seek(&payload).unwrap());
699-
assert_decode_after(seek, &query, Some(payload));
700-
701-
let seek = Seek::NamedId;
702-
assert_decode_after(seek, "", None);
703-
704-
let seek = Seek::NamedId;
705-
let payload = SeekPayload::NamedRecentDownloads(NamedRecentDownloads { downloads, id });
660+
let payload = SeekPayload::RecentDownloads(RecentDownloads { downloads, id });
706661
let query = format!("seek={}", encode_seek(payload).unwrap());
707662
let pagination = PaginationOptions::builder()
708663
.enable_seek(true)
@@ -721,52 +676,30 @@ mod tests {
721676
);
722677
assert_eq!(
723678
encode_seek(NewTuple(dt, id)).unwrap(),
724-
encode_seek(SeekPayload::NamedNew(NamedNew { dt, id })).unwrap()
679+
encode_seek(SeekPayload::New(New { dt, id })).unwrap()
725680
);
726681
}
727682

728683
#[test]
729684
fn test_seek_macro_conv() {
730685
use chrono::{NaiveDate, NaiveDateTime};
731686
use seek::*;
732-
733-
// Tuple struct
734-
assert_eq!(Seek::from(SeekPayload::Id(Id(1234))), Seek::Id);
735-
736-
let dt: NaiveDateTime = NaiveDate::from_ymd_opt(2016, 7, 8)
737-
.unwrap()
738-
.and_hms_opt(9, 10, 11)
739-
.unwrap();
740-
assert_eq!(Seek::from(SeekPayload::New(New(dt, 1234))), Seek::New);
741-
742-
assert_eq!(
743-
Seek::from(SeekPayload::RecentDownloads(RecentDownloads(None, 1234))),
744-
Seek::RecentDownloads
745-
);
746-
747-
// Field struct
748687
let id = 1234;
749-
assert_eq!(
750-
Seek::from(SeekPayload::NamedId(NamedId { id })),
751-
Seek::NamedId
752-
);
688+
assert_eq!(Seek::from(SeekPayload::Id(Id { id })), Seek::Id);
753689

754690
let dt: NaiveDateTime = NaiveDate::from_ymd_opt(2016, 7, 8)
755691
.unwrap()
756692
.and_hms_opt(9, 10, 11)
757693
.unwrap();
758-
assert_eq!(
759-
Seek::from(SeekPayload::NamedNew(NamedNew { dt, id })),
760-
Seek::NamedNew
761-
);
694+
assert_eq!(Seek::from(SeekPayload::New(New { dt, id })), Seek::New);
762695

763696
let downloads = None;
764697
assert_eq!(
765-
Seek::from(SeekPayload::NamedRecentDownloads(NamedRecentDownloads {
698+
Seek::from(SeekPayload::RecentDownloads(RecentDownloads {
766699
downloads,
767700
id
768701
})),
769-
Seek::NamedRecentDownloads
702+
Seek::RecentDownloads
770703
);
771704
}
772705

0 commit comments

Comments
 (0)