diff --git a/src/env.v b/src/env.v index 26919f8..1e601bd 100644 --- a/src/env.v +++ b/src/env.v @@ -17,7 +17,7 @@ pub: download_dir string api_key string repo_dir string - repos_file string + repos_file string } pub struct BuildConfig { diff --git a/src/server/git.v b/src/server/git.v index d506c7e..6a1d929 100644 --- a/src/server/git.v +++ b/src/server/git.v @@ -20,14 +20,13 @@ fn read_repos(path string) ?[]GitRepo { f.close() } - f.write_string('[]') ? + f.write_string('{}') ? return [] } content := os.read_file(path) ? - res := json.decode([]GitRepo, content) ? - return res + return json.decode([]GitRepo, content) } fn write_repos(path string, repos []GitRepo) ? { @@ -37,6 +36,7 @@ fn write_repos(path string, repos []GitRepo) ? { f.close() } + dump(repos) value := json.encode(repos) f.write_string(value) ? } @@ -91,39 +91,10 @@ pub fn (mut app App) post_repo() web.Result { repos << new_repo lock app.git_mutex { - write_repos(app.conf.repos_file, repos) or { return app.server_error(500) } + write_repos(app.conf.repos_file, repos) or { + return app.server_error(500) + } } return app.ok('Repo added successfully.') } - -['/api/repos'; delete] -pub fn (mut app App) delete_repo() web.Result { - if !app.is_authorized() { - return app.text('Unauthorized.') - } - - if !('url' in app.query && 'branch' in app.query) { - return app.server_error(400) - } - - repo_to_remove := GitRepo{ - url: app.query['url'] - branch: app.query['branch'] - } - - mut repos := rlock app.git_mutex { - read_repos(app.conf.repos_file) or { - app.lerror('Failed to read repos file.') - - return app.server_error(500) - } - } - filtered := repos.filter(it != repo_to_remove) - - lock app.git_mutex { - write_repos(app.conf.repos_file, filtered) or { return app.server_error(500) } - } - - return app.ok('Repo removed successfully.') -} diff --git a/src/util.v b/src/util.v index 24d33fc..65d5294 100644 --- a/src/util.v +++ b/src/util.v @@ -88,3 +88,4 @@ pub fn pretty_bytes(bytes int) string { return '${n:.2}${util.prefixes[i]}' } +