db: added BuildLog & required methods

pull/169/head
Jef Roosens 2022-05-07 14:16:30 +02:00
parent 230920576d
commit 58c1ecd25e
Signed by: Jef Roosens
GPG Key ID: B75D4F293C7052DB
3 changed files with 49 additions and 1 deletions

View File

@ -12,6 +12,7 @@ pub fn init(db_path string) ?VieterDb {
sql conn {
create table GitRepo
create table BuildLog
}
return VieterDb{

View File

@ -94,7 +94,7 @@ pub fn (db &VieterDb) get_git_repo(repo_id int) ?GitRepo {
// If a select statement fails, it returns a zeroed object. By
// checking one of the required fields, we can see whether the query
// returned a result or not.
if res.url == '' {
if res.id == 0 {
return none
}

47
src/db/logs.v 100644
View File

@ -0,0 +1,47 @@
module db
import time
pub struct BuildLog {
id int [primary; sql: serial]
repo GitRepo [nonull]
start_time time.Time [nonull]
end_time time.Time [nonull]
exit_code int [nonull]
}
// get_build_logs returns all BuildLog's in the database.
pub fn (db &VieterDb) get_build_logs() []BuildLog {
res := sql db.conn {
select from BuildLog order by id
}
return res
}
// get_build_log tries to return a specific BuildLog.
pub fn (db &VieterDb) get_build_log(id int) ?BuildLog {
res := sql db.conn {
select from BuildLog where id == id
}
if res.id == 0 {
return none
}
return res
}
// add_build_log inserts the given BuildLog into the database.
pub fn (db &VieterDb) add_build_log(log BuildLog) {
sql db.conn {
insert log into BuildLog
}
}
// delete_build_log delete the BuildLog with the given ID from the database.
pub fn (db &VieterDb) delete_build_log(id int) {
sql db.conn {
delete from BuildLog where id == id
}
}