From ec3c24399cc5589a577c9b5bff8924ba3bbd4d84 Mon Sep 17 00:00:00 2001 From: Bryan Phelps Date: Wed, 2 Feb 2022 00:38:28 +0000 Subject: [PATCH 1/5] Update test to verify return value is non-nil --- coderd/projects_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coderd/projects_test.go b/coderd/projects_test.go index 98261ba105cf7..059eea9daf89d 100644 --- a/coderd/projects_test.go +++ b/coderd/projects_test.go @@ -47,6 +47,7 @@ func TestProjects(t *testing.T) { _ = server.RandomInitialUser(t) projects, err := server.Client.Projects(context.Background(), "") require.NoError(t, err) + require.NotNil(t, projects) require.Len(t, projects, 0) }) @@ -77,6 +78,7 @@ func TestProjects(t *testing.T) { projects, err := server.Client.Projects(context.Background(), user.Organization) require.NoError(t, err) + require.NotNil(t, projects) require.Len(t, projects, 0) }) From 7ec0abc8fc5e61e7cb8242da7084599156a8fa57 Mon Sep 17 00:00:00 2001 From: Bryan Phelps Date: Wed, 2 Feb 2022 00:38:36 +0000 Subject: [PATCH 2/5] Get tests green --- coderd/projects.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coderd/projects.go b/coderd/projects.go index b7e161adcd7bc..ada5eb60fc6ca 100644 --- a/coderd/projects.go +++ b/coderd/projects.go @@ -42,6 +42,7 @@ func (api *api) projects(rw http.ResponseWriter, r *http.Request) { projects, err := api.Database.GetProjectsByOrganizationIDs(r.Context(), organizationIDs) if errors.Is(err, sql.ErrNoRows) { err = nil + projects = []database.Project{} } if err != nil { httpapi.Write(rw, http.StatusInternalServerError, httpapi.Response{ @@ -59,6 +60,7 @@ func (api *api) projectsByOrganization(rw http.ResponseWriter, r *http.Request) projects, err := api.Database.GetProjectsByOrganizationIDs(r.Context(), []string{organization.ID}) if errors.Is(err, sql.ErrNoRows) { err = nil + projects = []database.Project{} } if err != nil { httpapi.Write(rw, http.StatusInternalServerError, httpapi.Response{ From 886d647c9bccaab6aff91f9f508f32e05221d817 Mon Sep 17 00:00:00 2001 From: Bryan Phelps Date: Wed, 2 Feb 2022 00:41:40 +0000 Subject: [PATCH 3/5] Remove now-unnecessary hack in projects page --- site/pages/projects/index.tsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/site/pages/projects/index.tsx b/site/pages/projects/index.tsx index 42df98f666ddf..bf67deb52502b 100644 --- a/site/pages/projects/index.tsx +++ b/site/pages/projects/index.tsx @@ -19,13 +19,9 @@ const ProjectsPage: React.FC = () => { const styles = useStyles() const router = useRouter() const { me, signOut } = useUser(true) - const { data, error } = useSWR("/api/v2/projects") + const { data: projects, error } = useSWR("/api/v2/projects") const { data: orgs, error: orgsError } = useSWR("/api/v2/users/me/organizations") - // TODO: The API call is currently returning `null`, which isn't ideal - // - it breaks checking for data presence with SWR. - const projects = data || [] - if (error) { return } From dc9ccea89d2414456607a783951d29fe1480481d Mon Sep 17 00:00:00 2001 From: Bryan Phelps Date: Wed, 2 Feb 2022 02:40:45 +0000 Subject: [PATCH 4/5] Try setting projects outside - is it possible sqlc is returning nil,nil? --- coderd/projects.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/coderd/projects.go b/coderd/projects.go index ada5eb60fc6ca..84540ad08fd8c 100644 --- a/coderd/projects.go +++ b/coderd/projects.go @@ -42,7 +42,6 @@ func (api *api) projects(rw http.ResponseWriter, r *http.Request) { projects, err := api.Database.GetProjectsByOrganizationIDs(r.Context(), organizationIDs) if errors.Is(err, sql.ErrNoRows) { err = nil - projects = []database.Project{} } if err != nil { httpapi.Write(rw, http.StatusInternalServerError, httpapi.Response{ @@ -50,6 +49,10 @@ func (api *api) projects(rw http.ResponseWriter, r *http.Request) { }) return } + // Don't return 'null' + if projects == nil { + projects = []database.Project{} + } render.Status(r, http.StatusOK) render.JSON(rw, r, projects) } @@ -60,7 +63,6 @@ func (api *api) projectsByOrganization(rw http.ResponseWriter, r *http.Request) projects, err := api.Database.GetProjectsByOrganizationIDs(r.Context(), []string{organization.ID}) if errors.Is(err, sql.ErrNoRows) { err = nil - projects = []database.Project{} } if err != nil { httpapi.Write(rw, http.StatusInternalServerError, httpapi.Response{ @@ -68,6 +70,10 @@ func (api *api) projectsByOrganization(rw http.ResponseWriter, r *http.Request) }) return } + // Don't return 'null' + if projects == nil { + projects = []database.Project{} + } render.Status(r, http.StatusOK) render.JSON(rw, r, projects) } From 9cb53dd5e63d50938b0a3734a71d1285cca50aa8 Mon Sep 17 00:00:00 2001 From: Bryan Phelps Date: Wed, 9 Feb 2022 04:21:13 +0000 Subject: [PATCH 5/5] Remove extra newline --- coderd/projects.go | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/coderd/projects.go b/coderd/projects.go index b41c097055186..f50c192e6a006 100644 --- a/coderd/projects.go +++ b/coderd/projects.go @@ -58,11 +58,9 @@ func (api *api) projects(rw http.ResponseWriter, r *http.Request) { }) return } - if projects == nil { projects = []database.Project{} } - render.Status(r, http.StatusOK) render.JSON(rw, r, projects) } @@ -80,17 +78,9 @@ func (api *api) projectsByOrganization(rw http.ResponseWriter, r *http.Request) }) return } -<<<<<<< HEAD - // Don't return 'null' - if projects == nil { - projects = []database.Project{} - } -||||||| 2afad8b -======= if projects == nil { projects = []database.Project{} } ->>>>>>> main render.Status(r, http.StatusOK) render.JSON(rw, r, projects) }