From 68f27e5dc1f699c5c3855795d88f3a126e349436 Mon Sep 17 00:00:00 2001 From: Harrison Cramer Date: Sun, 6 Aug 2023 14:56:00 -0400 Subject: [PATCH] Use job wrapper for INFO call --- cmd/client.go | 1 + cmd/info.go | 2 +- lua/gitlab/init.lua | 41 ++++++++++++----------------------------- lua/gitlab/job.lua | 2 +- 4 files changed, 15 insertions(+), 31 deletions(-) diff --git a/cmd/client.go b/cmd/client.go index 8b7d9e8..e1f51d4 100644 --- a/cmd/client.go +++ b/cmd/client.go @@ -104,6 +104,7 @@ func (c *Client) handleError(w http.ResponseWriter, err error, message string, s response := ErrorResponse{ Message: message, Details: err.Error(), + Status: status, } json.NewEncoder(w).Encode(response) } diff --git a/cmd/info.go b/cmd/info.go index 1788dc4..0cbd5e4 100644 --- a/cmd/info.go +++ b/cmd/info.go @@ -54,7 +54,7 @@ func InfoHandler(w http.ResponseWriter, r *http.Request) { msg, err := c.Info() if err != nil { - c.handleError(w, err, "Could not get info", http.StatusBadRequest) + c.handleError(w, err, "Could not get project info and initialize gitlab.nvim plugin", http.StatusBadRequest) return } diff --git a/lua/gitlab/init.lua b/lua/gitlab/init.lua index dc11124..6eb8ea0 100644 --- a/lua/gitlab/init.lua +++ b/lua/gitlab/init.lua @@ -44,38 +44,21 @@ M.setup = function(args) .. " " .. state.LOG_PATH - vim.fn.jobstart( - command, - { - on_stdout = function(job_id) - if job_id <= 0 then - vim.notify("Could not start gitlab.nvim binary", vim.log.levels.ERROR) - return - else - local response_ok, response = pcall( - curl.get, - "localhost:" .. state.PORT .. "/info", - { timeout = 750 } - ) - if response == nil or not response_ok then - vim.notify("The gitlab.nvim server did not respond", vim.log.levels.ERROR) - print("Ran command: " .. command) - return - end - local body = response.body - local parsed_ok, data = pcall(vim.json.decode, body) - if parsed_ok ~= true then - vim.notify("The gitlab.nvim server returned an invalid response to the /info endpoint", - vim.log.levels.ERROR) - return - end + + vim.fn.jobstart(command, { + on_stdout = function(job_id) + if job_id <= 0 then + vim.notify("Could not start gitlab.nvim binary", vim.log.levels.ERROR) + return + else + job.run_job("info", "GET", nil, function(data) state.INFO = data keymaps.set_keymap_keys(args.keymaps) keymaps.set_keymaps() - end - end, - } - ) + end) + end + end, + }) end -- Builds the Go binary diff --git a/lua/gitlab/job.lua b/lua/gitlab/job.lua index f060250..d7ee6dd 100644 --- a/lua/gitlab/job.lua +++ b/lua/gitlab/job.lua @@ -28,7 +28,7 @@ M.run_job = function(endpoint, method, body, callback) vim.notify(message, vim.log.levels.INFO) else local message = string.format("%s: %s", data.message, data.details) - vim.notify(message, vim.log.levels.DEBUG) + vim.notify(message, vim.log.levels.ERROR) end else vim.notify("Could not parse command output!", vim.log.levels.ERROR)