accept int or string in api
This commit is contained in:
16
src/api.rs
16
src/api.rs
@@ -1029,18 +1029,14 @@ async fn videos_post(
|
|||||||
}
|
}
|
||||||
let page: u8 = video_request
|
let page: u8 = video_request
|
||||||
.page
|
.page
|
||||||
.as_deref()
|
.as_ref()
|
||||||
.unwrap_or("1")
|
.and_then(|value| value.to_u8())
|
||||||
.to_string()
|
.unwrap_or(1);
|
||||||
.parse()
|
|
||||||
.unwrap();
|
|
||||||
let perPage: u8 = video_request
|
let perPage: u8 = video_request
|
||||||
.perPage
|
.perPage
|
||||||
.as_deref()
|
.as_ref()
|
||||||
.unwrap_or("10")
|
.and_then(|value| value.to_u8())
|
||||||
.to_string()
|
.unwrap_or(10);
|
||||||
.parse()
|
|
||||||
.unwrap();
|
|
||||||
let featured = video_request
|
let featured = video_request
|
||||||
.featured
|
.featured
|
||||||
.as_deref()
|
.as_deref()
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use crate::util::requester::Requester;
|
use crate::util::requester::Requester;
|
||||||
|
use serde;
|
||||||
|
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||||
|
#[serde(untagged)]
|
||||||
|
pub enum FlexibleNumber {
|
||||||
|
String(String),
|
||||||
|
Int(u64),
|
||||||
|
}
|
||||||
|
impl FlexibleNumber {
|
||||||
|
pub fn to_u8(&self) -> Option<u8> {
|
||||||
|
match self {
|
||||||
|
FlexibleNumber::String(value) => value.parse::<u8>().ok(),
|
||||||
|
FlexibleNumber::Int(value) => u8::try_from(*value).ok(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||||
pub struct VideosRequest {
|
pub struct VideosRequest {
|
||||||
@@ -21,8 +37,8 @@ pub struct VideosRequest {
|
|||||||
pub channel: Option<String>, //"youtube",
|
pub channel: Option<String>, //"youtube",
|
||||||
pub sort: Option<String>, //"new",
|
pub sort: Option<String>, //"new",
|
||||||
pub query: Option<String>, //"kittens",
|
pub query: Option<String>, //"kittens",
|
||||||
pub page: Option<String>, //1,
|
pub page: Option<FlexibleNumber>, //1,
|
||||||
pub perPage: Option<String>, //10,
|
pub perPage: Option<FlexibleNumber>, //10,
|
||||||
// Your server's global options will be sent in the videos request
|
// Your server's global options will be sent in the videos request
|
||||||
// pub flavor: "mint chocolate chip"
|
// pub flavor: "mint chocolate chip"
|
||||||
pub featured: Option<String>, // "featured",
|
pub featured: Option<String>, // "featured",
|
||||||
|
|||||||
Reference in New Issue
Block a user