feat(server): allow filtering of builds per repo
parent
7e01dbafec
commit
393e641a76
|
@ -4,7 +4,7 @@ import time
|
|||
|
||||
pub struct BuildLog {
|
||||
id int [primary; sql: serial]
|
||||
repo GitRepo [nonull]
|
||||
repo_id int [nonull]
|
||||
start_time time.Time [nonull]
|
||||
end_time time.Time [nonull]
|
||||
exit_code int [nonull]
|
||||
|
@ -19,6 +19,16 @@ pub fn (db &VieterDb) get_build_logs() []BuildLog {
|
|||
return res
|
||||
}
|
||||
|
||||
// get_build_logs_for_repo returns all BuildLog's in the database for a given
|
||||
// repo.
|
||||
pub fn (db &VieterDb) get_build_logs_for_repo(repo_id int) []BuildLog {
|
||||
res := sql db.conn {
|
||||
select from BuildLog where repo_id == repo_id 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 {
|
||||
|
|
|
@ -15,7 +15,11 @@ fn (mut app App) get_logs() web.Result {
|
|||
return app.json(http.Status.unauthorized, new_response('Unauthorized.'))
|
||||
}
|
||||
|
||||
logs := app.db.get_build_logs()
|
||||
logs := if 'repo' in app.query {
|
||||
app.db.get_build_logs_for_repo(app.query['repo'].int())
|
||||
} else {
|
||||
app.db.get_build_logs()
|
||||
}
|
||||
|
||||
return app.json(http.Status.ok, new_data_response(logs))
|
||||
}
|
||||
|
@ -56,13 +60,15 @@ fn (mut app App) post_log() web.Result {
|
|||
|
||||
arch := app.query['arch']
|
||||
|
||||
repo := app.db.get_git_repo(app.query['repo'].int()) or {
|
||||
return app.json(http.Status.bad_request, new_response('Unknown repo.'))
|
||||
repo := app.query['repo'].int()
|
||||
|
||||
if repo == 0 {
|
||||
return app.json(http.Status.bad_request, new_response('Invalid Git repo.'))
|
||||
}
|
||||
|
||||
// Store log in db
|
||||
log := db.BuildLog{
|
||||
repo: repo
|
||||
repo_id: repo
|
||||
start_time: start_time
|
||||
end_time: end_time
|
||||
exit_code: exit_code
|
||||
|
@ -70,7 +76,7 @@ fn (mut app App) post_log() web.Result {
|
|||
|
||||
app.db.add_build_log(log)
|
||||
|
||||
repo_logs_dir := os.join_path(app.conf.data_dir, logs_dir_name, repo.id.str(), arch)
|
||||
repo_logs_dir := os.join_path(app.conf.data_dir, logs_dir_name, repo.str(), arch)
|
||||
|
||||
// Create the logs directory of it doesn't exist
|
||||
if !os.exists(repo_logs_dir) {
|
||||
|
|
Loading…
Reference in New Issue