1
0
Fork 0
mirror of https://github.com/SinTan1729/chhoto-url synced 2024-12-28 08:28:36 -06:00
chhoto-url/actix/src/database.rs

46 lines
1.1 KiB
Rust
Raw Normal View History

2023-04-02 22:26:23 -05:00
use sqlite::{open, Row};
pub fn find_url(shortlink: &str) -> String {
let db = open("./urls.sqlite").expect("Unable to open database!");
let query = "SELECT long_url FROM urls WHERE short_url = ?";
let statement: Vec<Row> = db
.prepare(query)
.unwrap()
.into_iter()
.bind((1, shortlink))
.unwrap()
.map(|row| row.unwrap())
.collect();
let mut longlink = "";
if statement.len() == 1 {
longlink = statement[0].read::<&str, _>("long_url");
}
String::from(longlink)
}
2023-04-03 11:55:27 -05:00
pub fn getall() -> Vec<String> {
let db = open("./urls.sqlite").expect("Unable to open database!");
let query = "SELECT * FROM urls";
let statement: Vec<Row> = db
.prepare(query)
.unwrap()
.into_iter()
.map(|row| row.unwrap())
.collect();
let mut links: Vec<String> = Vec::new();
for row in statement {
let short_url = row.read::<&str, _>("short_url");
let long_url = row.read::<&str, _>("long_url");
let hits = row.read::<i64, _>("hits");
links.push(format!("{short_url},{long_url},{hits}"));
}
links
}