Some small bug fixes #296

Merged
Jef Roosens merged 4 commits from Chewing_Bever/vieter:289-fix into dev 2022-11-07 21:56:44 +01:00
6 changed files with 68 additions and 10 deletions

View File

@ -11,6 +11,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* Migrated codebase to V 0.3.2
### Fixed
* Arch value for target is now properly set if not provided
* All API endpoints now return proper JSON on success
* CLI no longer exits with non-zero status code when removing/patching
target
* Allow NULL values for branch in database
## [0.4.0](https://git.rustybever.be/vieter-v/vieter/src/tag/0.4.0)
### Added

View File

@ -227,8 +227,7 @@ fn remove(conf Config, id string) ! {
if id_int != 0 {
c := client.new(conf.address, conf.api_key)
res := c.remove_target(id_int)!
println(res.message)
c.remove_target(id_int)!
}
}
@ -245,9 +244,7 @@ fn patch(conf Config, id string, params map[string]string) ! {
id_int := id.int()
if id_int != 0 {
c := client.new(conf.address, conf.api_key)
res := c.patch_target(id_int, params)!
println(res.message)
c.patch_target(id_int, params)!
}
}

View File

@ -17,11 +17,13 @@ const (
$embed_file('migrations/001-initial/up.sql'),
$embed_file('migrations/002-rename-to-targets/up.sql'),
$embed_file('migrations/003-target-url-type/up.sql'),
$embed_file('migrations/004-nullable-branch/up.sql'),
]
migrations_down = [
$embed_file('migrations/001-initial/down.sql'),
$embed_file('migrations/002-rename-to-targets/down.sql'),
$embed_file('migrations/003-target-url-type/down.sql'),
$embed_file('migrations/004-nullable-branch/down.sql'),
]
)
@ -60,7 +62,7 @@ pub fn init(db_path string) !VieterDb {
res := conn.exec_none(part)
if res != sqlite.sqlite_done {
return error('An error occurred while applying migration $version_num')
return error('An error occurred while applying migration $version_num: SQLite error code $res')
}
}

View File

@ -0,0 +1,26 @@
-- This down won't really work because it'll throw NOT NULL errors, but I'm
-- just putting it here for future reference (still not sure whether I'm even
-- gonna use these)
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE Target RENAME TO _Target_old;
CREATE TABLE Target (
id INTEGER PRIMARY KEY,
url TEXT NOT NULL,
branch TEXT NOT NULL,
repo TEXT NOT NULL,
schedule TEXT,
kind TEXT NOT NULL DEFAULT 'git'
);
INSERT INTO Target (id, url, branch, repo, schedule, kind)
SELECT id, url, branch, repo, schedule, kind FROM _Target_old;
DROP TABLE _Target_old;
COMMIT;
PRAGMA foreign_keys=on;

View File

@ -0,0 +1,23 @@
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE Target RENAME TO _Target_old;
CREATE TABLE Target (
id INTEGER PRIMARY KEY,
url TEXT NOT NULL,
branch TEXT,
repo TEXT NOT NULL,
schedule TEXT,
kind TEXT NOT NULL DEFAULT 'git'
);
INSERT INTO Target (id, url, branch, repo, schedule, kind)
SELECT id, url, branch, repo, schedule, kind FROM _Target_old;
DROP TABLE _Target_old;
COMMIT;
PRAGMA foreign_keys=on;

View File

@ -32,7 +32,7 @@ fn (mut app App) v1_post_target() web.Result {
// If a repo is created without specifying the arch, we assume it's meant
// for the default architecture.
if 'arch' !in params {
if 'arch' !in params || params['arch'] == '' {
params['arch'] = app.conf.default_arch
}
@ -47,7 +47,7 @@ fn (mut app App) v1_post_target() web.Result {
id := app.db.add_target(new_repo)
return app.json(http.Status.ok, new_data_response(id))
return app.json(.ok, new_data_response(id))
}
// v1_delete_target removes a given target from the server's list.
@ -55,7 +55,7 @@ fn (mut app App) v1_post_target() web.Result {
fn (mut app App) v1_delete_target(id int) web.Result {
app.db.delete_target(id)
return app.status(.ok)
return app.json(.ok, new_response(''))
}
// v1_patch_target updates a target's data with the given query params.
@ -69,5 +69,7 @@ fn (mut app App) v1_patch_target(id int) web.Result {
app.db.update_target_archs(id, arch_objs)
}
return app.status(.ok)
repo := app.db.get_target(id) or { return app.status(.internal_server_error) }
return app.json(.ok, new_data_response(repo))
}