Compare commits

..

8 Commits

Author SHA1 Message Date
Jef Roosens 71c77e90bc
refactor(cron): expression parser now uses bitfields (closes #148)
ci/woodpecker/pr/docs Pipeline was successful Details
ci/woodpecker/pr/lint Pipeline was successful Details
ci/woodpecker/pr/build Pipeline was successful Details
ci/woodpecker/pr/docker Pipeline was successful Details
ci/woodpecker/pr/man Pipeline was successful Details
ci/woodpecker/pr/test Pipeline was successful Details
2022-11-19 17:03:45 +01:00
Jef Roosens 54f40b7638
chore(repo): added readme 2022-11-19 17:01:40 +01:00
Jef Roosens 9493796160
refactor(package): split module into two files 2022-11-19 17:01:40 +01:00
Jef Roosens 3636dd92db Merge pull request 'Some small bug fixes' (#296) from Chewing_Bever/vieter:289-fix into dev
ci/woodpecker/push/docs Pipeline was successful Details
ci/woodpecker/push/lint Pipeline was successful Details
ci/woodpecker/push/arch Pipeline was successful Details
ci/woodpecker/push/build Pipeline was successful Details
ci/woodpecker/push/man Pipeline was successful Details
ci/woodpecker/push/test Pipeline was successful Details
ci/woodpecker/push/docker Pipeline was successful Details
ci/woodpecker/push/deploy Pipeline failed Details
Reviewed-on: #296
2022-11-07 21:56:43 +01:00
Jef Roosens 17e58c91ed chore: updated changelog; ran formatter
ci/woodpecker/pr/docs Pipeline was successful Details
ci/woodpecker/pr/lint Pipeline was successful Details
ci/woodpecker/pr/build Pipeline was successful Details
ci/woodpecker/pr/man Pipeline was successful Details
ci/woodpecker/pr/docker Pipeline was successful Details
ci/woodpecker/pr/test Pipeline was successful Details
2022-11-07 21:40:59 +01:00
Jef Roosens fc4dc30f74 fix(api): always return JSON response on success (fixes #276)
ci/woodpecker/pr/docs Pipeline was successful Details
ci/woodpecker/pr/lint Pipeline failed Details
ci/woodpecker/pr/test Pipeline was successful Details
ci/woodpecker/pr/build Pipeline failed Details
ci/woodpecker/pr/docker unknown status Details
ci/woodpecker/pr/man unknown status Details
2022-11-07 21:35:49 +01:00
Jef Roosens 5542be0418 fix(api): set arch if not provided or empty (fixes #278) 2022-11-07 21:13:40 +01:00
Jef Roosens 9a552f5302 fix(server): remove NOT NULL constraint on branch (fixes #289) 2022-11-07 21:11:10 +01:00
6 changed files with 68 additions and 10 deletions

View File

@ -12,6 +12,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* Migrated codebase to V 0.3.2
* Cron expression parser now uses bitfields instead of bool arrays
### 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))
}