feat: add pages to searches

This commit is contained in:
Anna 2018-09-05 01:05:44 -04:00
parent 118910f69d
commit 5347438a4e
2 changed files with 24 additions and 0 deletions

View File

@ -31,6 +31,8 @@ pub struct CharacterSearchBuilder<'a> {
race: Option<Either<Race, Clan>>, race: Option<Either<Race, Clan>>,
// gcid // gcid
grand_company: Option<Vec<GrandCompany>>, grand_company: Option<Vec<GrandCompany>>,
// page
page: Option<u64>,
} }
impl<'a> CharacterSearchBuilder<'a> { impl<'a> CharacterSearchBuilder<'a> {
@ -42,6 +44,7 @@ impl<'a> CharacterSearchBuilder<'a> {
job: None, job: None,
race: None, race: None,
grand_company: None, grand_company: None,
page: None,
} }
} }
@ -85,6 +88,11 @@ impl<'a> CharacterSearchBuilder<'a> {
self self
} }
pub fn page(&mut self, p: u64) -> &mut Self {
self.page = Some(p);
self
}
pub fn send(&self) -> Result<Paginated<CharacterSearchItem>> { pub fn send(&self) -> Result<Paginated<CharacterSearchItem>> {
let text = self.scraper.text(self.as_url())?; let text = self.scraper.text(self.as_url())?;
lodestone_parser::parse_character_search(&text).map_err(Error::Parse) lodestone_parser::parse_character_search(&text).map_err(Error::Parse)
@ -96,6 +104,10 @@ impl<'a> CharacterSearchBuilder<'a> {
{ {
let mut pairs = url.query_pairs_mut(); let mut pairs = url.query_pairs_mut();
if let Some(page) = self.page {
pairs.append_pair("page", &page.to_string());
}
if let Some(ref name) = self.name { if let Some(ref name) = self.name {
pairs.append_pair("q", name); pairs.append_pair("q", name);
} }

View File

@ -25,6 +25,8 @@ pub struct FreeCompanySearchBuilder<'a> {
world: Option<Either<World, DataCenter>>, world: Option<Either<World, DataCenter>>,
// gcid // gcid
grand_company: Option<Vec<GrandCompany>>, grand_company: Option<Vec<GrandCompany>>,
// page
page: Option<u64>,
} }
impl<'a> FreeCompanySearchBuilder<'a> { impl<'a> FreeCompanySearchBuilder<'a> {
@ -34,6 +36,7 @@ impl<'a> FreeCompanySearchBuilder<'a> {
name: None, name: None,
world: None, world: None,
grand_company: None, grand_company: None,
page: None,
} }
} }
@ -57,6 +60,11 @@ impl<'a> FreeCompanySearchBuilder<'a> {
self self
} }
pub fn page(&mut self, p: u64) -> &mut Self {
self.page = Some(p);
self
}
pub fn send(&self) -> Result<Paginated<FreeCompanySearchItem>> { pub fn send(&self) -> Result<Paginated<FreeCompanySearchItem>> {
let text = self.scraper.text(self.as_url())?; let text = self.scraper.text(self.as_url())?;
lodestone_parser::parse_free_company_search(&text).map_err(Error::Parse) lodestone_parser::parse_free_company_search(&text).map_err(Error::Parse)
@ -68,6 +76,10 @@ impl<'a> FreeCompanySearchBuilder<'a> {
{ {
let mut pairs = url.query_pairs_mut(); let mut pairs = url.query_pairs_mut();
if let Some(page) = self.page {
pairs.append_pair("page", &page.to_string());
}
if let Some(ref name) = self.name { if let Some(ref name) = self.name {
pairs.append_pair("q", name); pairs.append_pair("q", name);
} }