Use one database connection throghout
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
use rusqlite::Connection;
|
||||
|
||||
pub fn find_url(shortlink: &str) -> String {
|
||||
let db = Connection::open("./urls.sqlite").expect("Unable to open database!");
|
||||
|
||||
pub fn find_url(shortlink: &str, db: &Connection) -> String {
|
||||
let mut statement = db
|
||||
.prepare_cached("SELECT long_url FROM urls WHERE short_url = ?1")
|
||||
.unwrap();
|
||||
@@ -19,8 +17,7 @@ pub fn find_url(shortlink: &str) -> String {
|
||||
longlink
|
||||
}
|
||||
|
||||
pub fn getall() -> Vec<String> {
|
||||
let db = Connection::open("./urls.sqlite").expect("Unable to open database!");
|
||||
pub fn getall(db: &Connection) -> Vec<String> {
|
||||
let mut statement = db.prepare_cached("SELECT * FROM urls").unwrap();
|
||||
|
||||
let mut data = statement.query([]).unwrap();
|
||||
@@ -36,8 +33,7 @@ pub fn getall() -> Vec<String> {
|
||||
links
|
||||
}
|
||||
|
||||
pub fn add_hit(shortlink: &str) -> () {
|
||||
let db = Connection::open("./urls.sqlite").expect("Unable to open database!");
|
||||
pub fn add_hit(shortlink: &str, db: &Connection) -> () {
|
||||
db.execute(
|
||||
"UPDATE urls SET hits = hits + 1 WHERE short_url = ?1",
|
||||
[shortlink],
|
||||
@@ -45,9 +41,7 @@ pub fn add_hit(shortlink: &str) -> () {
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
pub fn add_link(shortlink: String, longlink: String) -> bool {
|
||||
let db = Connection::open("./urls.sqlite").expect("Unable to open database!");
|
||||
|
||||
pub fn add_link(shortlink: String, longlink: String, db: &Connection) -> bool {
|
||||
match db.execute(
|
||||
"INSERT INTO urls (long_url, short_url, hits) VALUES (?1, ?2, ?3)",
|
||||
(longlink, shortlink, 0),
|
||||
@@ -57,8 +51,22 @@ pub fn add_link(shortlink: String, longlink: String) -> bool {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn delete_link(shortlink: String) -> () {
|
||||
let db = Connection::open("./urls.sqlite").expect("Unable to open database!");
|
||||
pub fn delete_link(shortlink: String, db: &Connection) -> () {
|
||||
db.execute("DELETE FROM urls WHERE short_url = ?1", [shortlink])
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
pub fn open_db(path: String) -> Connection {
|
||||
let db = Connection::open(path).expect("Unable to open database!");
|
||||
db.execute(
|
||||
"CREATE TABLE IF NOT EXISTS urls (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
long_url TEXT NOT NULL,
|
||||
short_url TEXT NOT NULL,
|
||||
hits INTEGER NOT NULL
|
||||
)",
|
||||
[],
|
||||
)
|
||||
.unwrap();
|
||||
db
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user