Skip to content

Commit 636002e

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

File tree

1 file changed

+14
-80
lines changed

1 file changed

+14
-80
lines changed

src/controllers/helpers/pagination.rs

Lines changed: 14 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -403,11 +403,6 @@ impl<T, C> PaginatedQueryWithCountSubq<T, C> {
403403

404404
#[allow(unused_macro_rules)]
405405
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-
};
411406
// Field struct
412407
(@variant_struct $vis:vis $variant:ident {
413408
$($(#[$field_meta:meta])? $field:ident: $ty:ty),*
@@ -616,12 +611,9 @@ mod tests {
616611
use chrono::naive::serde::ts_microseconds;
617612
seek! {
618613
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 }
614+
Id{id: i32}
615+
New{#[serde(with="ts_microseconds")] dt: chrono::NaiveDateTime, id: i32}
616+
RecentDownloads{ downloads: Option<i64>, id: i32 }
625617
}
626618
}
627619
}
@@ -641,9 +633,9 @@ mod tests {
641633
assert_eq!(decoded, expect);
642634
};
643635

644-
// Tuple struct
636+
let id = 1234;
645637
let seek = Seek::Id;
646-
let payload = SeekPayload::Id(Id(1234));
638+
let payload = SeekPayload::Id(Id { id });
647639
let query = format!("seek={}", encode_seek(&payload).unwrap());
648640
assert_decode_after(seek, &query, Some(payload));
649641

@@ -652,57 +644,21 @@ mod tests {
652644
.and_hms_opt(9, 10, 11)
653645
.unwrap();
654646
let seek = Seek::New;
655-
let payload = SeekPayload::New(New(dt, 1234));
647+
let payload = SeekPayload::New(New { dt, id });
656648
let query = format!("seek={}", encode_seek(&payload).unwrap());
657649
assert_decode_after(seek, &query, Some(payload));
658650

651+
let downloads = Some(5678);
659652
let seek = Seek::RecentDownloads;
660-
let payload = SeekPayload::RecentDownloads(RecentDownloads(Some(5678), 1234));
653+
let payload = SeekPayload::RecentDownloads(RecentDownloads { downloads, id });
661654
let query = format!("seek={}", encode_seek(&payload).unwrap());
662655
assert_decode_after(seek, &query, Some(payload));
663656

664657
let seek = Seek::Id;
665658
assert_decode_after(seek, "", None);
666659

667660
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 });
661+
let payload = SeekPayload::RecentDownloads(RecentDownloads { downloads, id });
706662
let query = format!("seek={}", encode_seek(payload).unwrap());
707663
let pagination = PaginationOptions::builder()
708664
.enable_seek(true)
@@ -721,52 +677,30 @@ mod tests {
721677
);
722678
assert_eq!(
723679
encode_seek(NewTuple(dt, id)).unwrap(),
724-
encode_seek(SeekPayload::NamedNew(NamedNew { dt, id })).unwrap()
680+
encode_seek(SeekPayload::New(New { dt, id })).unwrap()
725681
);
726682
}
727683

728684
#[test]
729685
fn test_seek_macro_conv() {
730686
use chrono::{NaiveDate, NaiveDateTime};
731687
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
748688
let id = 1234;
749-
assert_eq!(
750-
Seek::from(SeekPayload::NamedId(NamedId { id })),
751-
Seek::NamedId
752-
);
689+
assert_eq!(Seek::from(SeekPayload::Id(Id { id })), Seek::Id);
753690

754691
let dt: NaiveDateTime = NaiveDate::from_ymd_opt(2016, 7, 8)
755692
.unwrap()
756693
.and_hms_opt(9, 10, 11)
757694
.unwrap();
758-
assert_eq!(
759-
Seek::from(SeekPayload::NamedNew(NamedNew { dt, id })),
760-
Seek::NamedNew
761-
);
695+
assert_eq!(Seek::from(SeekPayload::New(New { dt, id })), Seek::New);
762696

763697
let downloads = None;
764698
assert_eq!(
765-
Seek::from(SeekPayload::NamedRecentDownloads(NamedRecentDownloads {
699+
Seek::from(SeekPayload::RecentDownloads(RecentDownloads {
766700
downloads,
767701
id
768702
})),
769-
Seek::NamedRecentDownloads
703+
Seek::RecentDownloads
770704
);
771705
}
772706

0 commit comments

Comments
 (0)