mirror of
https://github.com/SinTan1729/chhoto-url
synced 2025-04-28 11:56:52 -05:00
chg: Modify shortlink validation logic to utilize the INDEX
It's no longer necessary to separately validate uniqueness since the UNIQUE INDEX does that for us already.
This commit is contained in:
parent
88ddb4299a
commit
e39578fa02
1 changed files with 14 additions and 14 deletions
|
@ -63,8 +63,8 @@ pub fn is_api_ok(http: HttpRequest) -> Response {
|
||||||
// If the API key isn't set, but an API Key header is provided
|
// If the API key isn't set, but an API Key header is provided
|
||||||
if auth::api_header(&http).is_some() {
|
if auth::api_header(&http).is_some() {
|
||||||
Response {
|
Response {
|
||||||
success: false,
|
success: false,
|
||||||
error: true,
|
error: true,
|
||||||
reason: "An API key was provided, but the 'api_key' environment variable is not configured in the Chhoto URL instance".to_string(),
|
reason: "An API key was provided, but the 'api_key' environment variable is not configured in the Chhoto URL instance".to_string(),
|
||||||
pass: false
|
pass: false
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,11 @@ pub fn is_api_ok(http: HttpRequest) -> Response {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Request the DB for searching an URL
|
// Request the DB for searching an URL
|
||||||
pub fn get_longurl(shortlink: String, db: &Connection, needhits: bool) -> (Option<String>, Option<i64>) {
|
pub fn get_longurl(
|
||||||
|
shortlink: String,
|
||||||
|
db: &Connection,
|
||||||
|
needhits: bool,
|
||||||
|
) -> (Option<String>, Option<i64>) {
|
||||||
if validate_link(&shortlink) {
|
if validate_link(&shortlink) {
|
||||||
database::find_url(shortlink.as_str(), db, needhits)
|
database::find_url(shortlink.as_str(), db, needhits)
|
||||||
} else {
|
} else {
|
||||||
|
@ -123,18 +127,14 @@ pub fn add_link(req: String, db: &Connection) -> (bool, String) {
|
||||||
chunks.shortlink = gen_link(style, len);
|
chunks.shortlink = gen_link(style, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
if validate_link(chunks.shortlink.as_str())
|
if validate_link(chunks.shortlink.as_str()) {
|
||||||
&& get_longurl(chunks.shortlink.clone(), db, false).0.is_none()
|
if database::add_link(chunks.shortlink.clone(), chunks.longlink, db) {
|
||||||
{
|
(true, chunks.shortlink)
|
||||||
(
|
} else {
|
||||||
database::add_link(chunks.shortlink.clone(), chunks.longlink, db),
|
(false, String::from("Short URL is already in use!"))
|
||||||
chunks.shortlink,
|
}
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
(
|
(false, String::from("Short URL is not valid!"))
|
||||||
false,
|
|
||||||
String::from("Short URL not valid or already in use!"),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue