From 7772195f852769aeefa0ab6eebe4218c87f9b885 Mon Sep 17 00:00:00 2001 From: simon987 Date: Thu, 25 Jun 2020 21:43:03 -0400 Subject: [PATCH] Add client method to get project list --- client/client.go | 10 ++++++++++ client/models.go | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/client/client.go b/client/client.go index 575ab0f..bcb5182 100644 --- a/client/client.go +++ b/client/client.go @@ -6,6 +6,7 @@ import ( "encoding/json" "fmt" "github.com/simon987/task_tracker/api" + "github.com/simon987/task_tracker/storage" "io/ioutil" "net/http" "strconv" @@ -142,6 +143,15 @@ func (c taskTrackerClient) GetProjectSecret(projectId int) (string, error) { return jsonResp.Content.Secret, err } +func (c taskTrackerClient) GetProjectList() ([]storage.Project, error) { + + httpResp := c.get("/project/list") + var jsonResp ProjectListResponse + err := unmarshalResponse(httpResp, &jsonResp) + + return jsonResp.Content.Projects, err +} + func (c taskTrackerClient) RequestAccess(req api.CreateWorkerAccessRequest) (api.JsonResponse, error) { httpResp := c.post("/project/request_access", req) diff --git a/client/models.go b/client/models.go index e2e66d3..e8a1b19 100644 --- a/client/models.go +++ b/client/models.go @@ -52,3 +52,11 @@ type ProjectSecretResponse struct { Secret string `json:"secret"` } `json:"content"` } + +type ProjectListResponse struct { + Ok bool `json:"ok"` + Message string `json:"message"` + Content struct { + Projects []storage.Project `json:"projects,omitempty"` + } `json:"content"` +}