Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfd79d2c

Browse files
coadlerkylecarbs
authored andcommitted
chore: organize http handlers (#1486)
They're currently randomly in a bunch of different files. This cleans upthe handler functions to be in the file of the type they return.
1 parentca72c6a commitfd79d2c

14 files changed

+1386
-1384
lines changed

‎coderd/organizations.go

Lines changed: 0 additions & 615 deletions
Large diffs are not rendered by default.

‎coderd/organizations_test.go

Lines changed: 29 additions & 274 deletions
Original file line numberDiff line numberDiff line change
@@ -5,328 +5,83 @@ import (
55
"net/http"
66
"testing"
77

8-
"github.com/google/uuid"
98
"github.com/stretchr/testify/require"
109

1110
"github.com/coder/coder/coderd/coderdtest"
12-
"github.com/coder/coder/coderd/database"
1311
"github.com/coder/coder/codersdk"
14-
"github.com/coder/coder/provisioner/echo"
1512
)
1613

17-
funcTestProvisionerDaemonsByOrganization(t*testing.T) {
14+
funcTestOrganizationsByUser(t*testing.T) {
1815
t.Parallel()
19-
t.Run("NoAuth",func(t*testing.T) {
20-
t.Parallel()
21-
client:=coderdtest.New(t,nil)
22-
_,err:=client.ProvisionerDaemonsByOrganization(context.Background(),uuid.New())
23-
require.Error(t,err)
24-
})
25-
26-
t.Run("Get",func(t*testing.T) {
27-
t.Parallel()
28-
client:=coderdtest.New(t,nil)
29-
user:=coderdtest.CreateFirstUser(t,client)
30-
_,err:=client.ProvisionerDaemonsByOrganization(context.Background(),user.OrganizationID)
31-
require.NoError(t,err)
32-
})
33-
}
34-
35-
funcTestPostTemplateVersionsByOrganization(t*testing.T) {
36-
t.Parallel()
37-
t.Run("InvalidTemplate",func(t*testing.T) {
38-
t.Parallel()
39-
client:=coderdtest.New(t,nil)
40-
user:=coderdtest.CreateFirstUser(t,client)
41-
templateID:=uuid.New()
42-
_,err:=client.CreateTemplateVersion(context.Background(),user.OrganizationID, codersdk.CreateTemplateVersionRequest{
43-
TemplateID:templateID,
44-
StorageMethod:database.ProvisionerStorageMethodFile,
45-
StorageSource:"hash",
46-
Provisioner:database.ProvisionerTypeEcho,
47-
})
48-
varapiErr*codersdk.Error
49-
require.ErrorAs(t,err,&apiErr)
50-
require.Equal(t,http.StatusNotFound,apiErr.StatusCode())
51-
})
52-
53-
t.Run("FileNotFound",func(t*testing.T) {
54-
t.Parallel()
55-
client:=coderdtest.New(t,nil)
56-
user:=coderdtest.CreateFirstUser(t,client)
57-
_,err:=client.CreateTemplateVersion(context.Background(),user.OrganizationID, codersdk.CreateTemplateVersionRequest{
58-
StorageMethod:database.ProvisionerStorageMethodFile,
59-
StorageSource:"hash",
60-
Provisioner:database.ProvisionerTypeEcho,
61-
})
62-
varapiErr*codersdk.Error
63-
require.ErrorAs(t,err,&apiErr)
64-
require.Equal(t,http.StatusNotFound,apiErr.StatusCode())
65-
})
66-
67-
t.Run("WithParameters",func(t*testing.T) {
68-
t.Parallel()
69-
client:=coderdtest.New(t,nil)
70-
user:=coderdtest.CreateFirstUser(t,client)
71-
data,err:=echo.Tar(&echo.Responses{
72-
Parse:echo.ParseComplete,
73-
Provision:echo.ProvisionComplete,
74-
ProvisionDryRun:echo.ProvisionComplete,
75-
})
76-
require.NoError(t,err)
77-
file,err:=client.Upload(context.Background(),codersdk.ContentTypeTar,data)
78-
require.NoError(t,err)
79-
_,err=client.CreateTemplateVersion(context.Background(),user.OrganizationID, codersdk.CreateTemplateVersionRequest{
80-
StorageMethod:database.ProvisionerStorageMethodFile,
81-
StorageSource:file.Hash,
82-
Provisioner:database.ProvisionerTypeEcho,
83-
ParameterValues: []codersdk.CreateParameterRequest{{
84-
Name:"example",
85-
SourceValue:"value",
86-
SourceScheme:database.ParameterSourceSchemeData,
87-
DestinationScheme:database.ParameterDestinationSchemeProvisionerVariable,
88-
}},
89-
})
90-
require.NoError(t,err)
91-
})
92-
}
93-
94-
funcTestPostTemplatesByOrganization(t*testing.T) {
95-
t.Parallel()
96-
t.Run("Create",func(t*testing.T) {
97-
t.Parallel()
98-
client:=coderdtest.New(t,nil)
99-
user:=coderdtest.CreateFirstUser(t,client)
100-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
101-
_=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
102-
})
103-
104-
t.Run("AlreadyExists",func(t*testing.T) {
105-
t.Parallel()
106-
client:=coderdtest.New(t,nil)
107-
user:=coderdtest.CreateFirstUser(t,client)
108-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
109-
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
110-
_,err:=client.CreateTemplate(context.Background(),user.OrganizationID, codersdk.CreateTemplateRequest{
111-
Name:template.Name,
112-
VersionID:version.ID,
113-
})
114-
varapiErr*codersdk.Error
115-
require.ErrorAs(t,err,&apiErr)
116-
require.Equal(t,http.StatusConflict,apiErr.StatusCode())
117-
})
118-
119-
t.Run("NoVersion",func(t*testing.T) {
120-
t.Parallel()
121-
client:=coderdtest.New(t,nil)
122-
user:=coderdtest.CreateFirstUser(t,client)
123-
_,err:=client.CreateTemplate(context.Background(),user.OrganizationID, codersdk.CreateTemplateRequest{
124-
Name:"test",
125-
VersionID:uuid.New(),
126-
})
127-
varapiErr*codersdk.Error
128-
require.ErrorAs(t,err,&apiErr)
129-
require.Equal(t,http.StatusNotFound,apiErr.StatusCode())
130-
})
131-
}
132-
133-
funcTestTemplatesByOrganization(t*testing.T) {
134-
t.Parallel()
135-
t.Run("ListEmpty",func(t*testing.T) {
136-
t.Parallel()
137-
client:=coderdtest.New(t,nil)
138-
user:=coderdtest.CreateFirstUser(t,client)
139-
templates,err:=client.TemplatesByOrganization(context.Background(),user.OrganizationID)
140-
require.NoError(t,err)
141-
require.NotNil(t,templates)
142-
require.Len(t,templates,0)
143-
})
144-
145-
t.Run("List",func(t*testing.T) {
146-
t.Parallel()
147-
client:=coderdtest.New(t,nil)
148-
user:=coderdtest.CreateFirstUser(t,client)
149-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
150-
coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
151-
templates,err:=client.TemplatesByOrganization(context.Background(),user.OrganizationID)
152-
require.NoError(t,err)
153-
require.Len(t,templates,1)
154-
})
155-
t.Run("ListMultiple",func(t*testing.T) {
156-
t.Parallel()
157-
client:=coderdtest.New(t,nil)
158-
user:=coderdtest.CreateFirstUser(t,client)
159-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
160-
coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
161-
coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
162-
templates,err:=client.TemplatesByOrganization(context.Background(),user.OrganizationID)
163-
require.NoError(t,err)
164-
require.Len(t,templates,2)
165-
})
16+
client:=coderdtest.New(t,nil)
17+
_=coderdtest.CreateFirstUser(t,client)
18+
orgs,err:=client.OrganizationsByUser(context.Background(),codersdk.Me)
19+
require.NoError(t,err)
20+
require.NotNil(t,orgs)
21+
require.Len(t,orgs,1)
16622
}
16723

168-
funcTestTemplateByOrganizationAndName(t*testing.T) {
24+
funcTestOrganizationByUserAndName(t*testing.T) {
16925
t.Parallel()
170-
t.Run("NotFound",func(t*testing.T) {
26+
t.Run("NoExist",func(t*testing.T) {
17127
t.Parallel()
17228
client:=coderdtest.New(t,nil)
173-
user:=coderdtest.CreateFirstUser(t,client)
174-
_,err:=client.TemplateByName(context.Background(),user.OrganizationID,"something")
29+
coderdtest.CreateFirstUser(t,client)
30+
_,err:=client.OrganizationByName(context.Background(),codersdk.Me,"nothing")
17531
varapiErr*codersdk.Error
17632
require.ErrorAs(t,err,&apiErr)
17733
require.Equal(t,http.StatusNotFound,apiErr.StatusCode())
17834
})
17935

180-
t.Run("Found",func(t*testing.T) {
181-
t.Parallel()
182-
client:=coderdtest.New(t,nil)
183-
user:=coderdtest.CreateFirstUser(t,client)
184-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
185-
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
186-
_,err:=client.TemplateByName(context.Background(),user.OrganizationID,template.Name)
187-
require.NoError(t,err)
188-
})
189-
}
190-
191-
funcTestPostWorkspacesByOrganization(t*testing.T) {
192-
t.Parallel()
193-
t.Run("InvalidTemplate",func(t*testing.T) {
194-
t.Parallel()
195-
client:=coderdtest.New(t,nil)
196-
user:=coderdtest.CreateFirstUser(t,client)
197-
_,err:=client.CreateWorkspace(context.Background(),user.OrganizationID, codersdk.CreateWorkspaceRequest{
198-
TemplateID:uuid.New(),
199-
Name:"workspace",
200-
})
201-
require.Error(t,err)
202-
varapiErr*codersdk.Error
203-
require.ErrorAs(t,err,&apiErr)
204-
require.Equal(t,http.StatusBadRequest,apiErr.StatusCode())
205-
})
206-
207-
t.Run("NoTemplateAccess",func(t*testing.T) {
36+
t.Run("NoMember",func(t*testing.T) {
20837
t.Parallel()
20938
client:=coderdtest.New(t,nil)
21039
first:=coderdtest.CreateFirstUser(t,client)
211-
21240
other:=coderdtest.CreateAnotherUser(t,client,first.OrganizationID)
21341
org,err:=other.CreateOrganization(context.Background(),codersdk.Me, codersdk.CreateOrganizationRequest{
21442
Name:"another",
21543
})
21644
require.NoError(t,err)
217-
version:=coderdtest.CreateTemplateVersion(t,other,org.ID,nil)
218-
template:=coderdtest.CreateTemplate(t,other,org.ID,version.ID)
219-
220-
_,err=client.CreateWorkspace(context.Background(),first.OrganizationID, codersdk.CreateWorkspaceRequest{
221-
TemplateID:template.ID,
222-
Name:"workspace",
223-
})
224-
require.Error(t,err)
45+
_,err=client.OrganizationByName(context.Background(),codersdk.Me,org.Name)
22546
varapiErr*codersdk.Error
22647
require.ErrorAs(t,err,&apiErr)
22748
require.Equal(t,http.StatusUnauthorized,apiErr.StatusCode())
22849
})
22950

230-
t.Run("AlreadyExists",func(t*testing.T) {
231-
t.Parallel()
232-
client:=coderdtest.New(t,nil)
233-
coderdtest.NewProvisionerDaemon(t,client)
234-
user:=coderdtest.CreateFirstUser(t,client)
235-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
236-
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
237-
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
238-
workspace:=coderdtest.CreateWorkspace(t,client,user.OrganizationID,template.ID)
239-
_,err:=client.CreateWorkspace(context.Background(),user.OrganizationID, codersdk.CreateWorkspaceRequest{
240-
TemplateID:template.ID,
241-
Name:workspace.Name,
242-
})
243-
require.Error(t,err)
244-
varapiErr*codersdk.Error
245-
require.ErrorAs(t,err,&apiErr)
246-
require.Equal(t,http.StatusConflict,apiErr.StatusCode())
247-
})
248-
249-
t.Run("Create",func(t*testing.T) {
250-
t.Parallel()
251-
client:=coderdtest.New(t,nil)
252-
coderdtest.NewProvisionerDaemon(t,client)
253-
user:=coderdtest.CreateFirstUser(t,client)
254-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
255-
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
256-
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
257-
_=coderdtest.CreateWorkspace(t,client,user.OrganizationID,template.ID)
258-
})
259-
}
260-
261-
funcTestWorkspacesByOrganization(t*testing.T) {
262-
t.Parallel()
263-
t.Run("ListEmpty",func(t*testing.T) {
51+
t.Run("Valid",func(t*testing.T) {
26452
t.Parallel()
26553
client:=coderdtest.New(t,nil)
26654
user:=coderdtest.CreateFirstUser(t,client)
267-
_,err:=client.WorkspacesByOrganization(context.Background(),user.OrganizationID)
55+
org,err:=client.Organization(context.Background(),user.OrganizationID)
26856
require.NoError(t,err)
269-
})
270-
t.Run("List",func(t*testing.T) {
271-
t.Parallel()
272-
client:=coderdtest.New(t,nil)
273-
coderdtest.NewProvisionerDaemon(t,client)
274-
user:=coderdtest.CreateFirstUser(t,client)
275-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
276-
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
277-
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
278-
_=coderdtest.CreateWorkspace(t,client,user.OrganizationID,template.ID)
279-
workspaces,err:=client.WorkspacesByOrganization(context.Background(),user.OrganizationID)
57+
_,err=client.OrganizationByName(context.Background(),codersdk.Me,org.Name)
28058
require.NoError(t,err)
281-
require.Len(t,workspaces,1)
28259
})
28360
}
28461

285-
funcTestWorkspacesByOwner(t*testing.T) {
62+
funcTestPostOrganizationsByUser(t*testing.T) {
28663
t.Parallel()
287-
t.Run("ListEmpty",func(t*testing.T) {
288-
t.Parallel()
289-
client:=coderdtest.New(t,nil)
290-
user:=coderdtest.CreateFirstUser(t,client)
291-
_,err:=client.WorkspacesByOwner(context.Background(),user.OrganizationID,codersdk.Me)
292-
require.NoError(t,err)
293-
})
294-
t.Run("List",func(t*testing.T) {
64+
t.Run("Conflict",func(t*testing.T) {
29565
t.Parallel()
29666
client:=coderdtest.New(t,nil)
297-
coderdtest.NewProvisionerDaemon(t,client)
29867
user:=coderdtest.CreateFirstUser(t,client)
299-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
300-
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
301-
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
302-
_=coderdtest.CreateWorkspace(t,client,user.OrganizationID,template.ID)
303-
workspaces,err:=client.WorkspacesByOwner(context.Background(),user.OrganizationID,codersdk.Me)
68+
org,err:=client.Organization(context.Background(),user.OrganizationID)
30469
require.NoError(t,err)
305-
require.Len(t,workspaces,1)
306-
})
307-
}
308-
309-
funcTestWorkspaceByOwnerAndName(t*testing.T) {
310-
t.Parallel()
311-
t.Run("NotFound",func(t*testing.T) {
312-
t.Parallel()
313-
client:=coderdtest.New(t,nil)
314-
user:=coderdtest.CreateFirstUser(t,client)
315-
_,err:=client.WorkspaceByOwnerAndName(context.Background(),user.OrganizationID,codersdk.Me,"something")
70+
_,err=client.CreateOrganization(context.Background(),codersdk.Me, codersdk.CreateOrganizationRequest{
71+
Name:org.Name,
72+
})
31673
varapiErr*codersdk.Error
31774
require.ErrorAs(t,err,&apiErr)
318-
require.Equal(t,http.StatusNotFound,apiErr.StatusCode())
75+
require.Equal(t,http.StatusConflict,apiErr.StatusCode())
31976
})
320-
t.Run("Get",func(t*testing.T) {
77+
78+
t.Run("Create",func(t*testing.T) {
32179
t.Parallel()
32280
client:=coderdtest.New(t,nil)
323-
coderdtest.NewProvisionerDaemon(t,client)
324-
user:=coderdtest.CreateFirstUser(t,client)
325-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
326-
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
327-
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
328-
workspace:=coderdtest.CreateWorkspace(t,client,user.OrganizationID,template.ID)
329-
_,err:=client.WorkspaceByOwnerAndName(context.Background(),user.OrganizationID,codersdk.Me,workspace.Name)
81+
_=coderdtest.CreateFirstUser(t,client)
82+
_,err:=client.CreateOrganization(context.Background(),codersdk.Me, codersdk.CreateOrganizationRequest{
83+
Name:"new",
84+
})
33085
require.NoError(t,err)
33186
})
33287
}

‎coderd/provisionerdaemons.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,23 @@ import (
3232
sdkproto"github.com/coder/coder/provisionersdk/proto"
3333
)
3434

35+
func (api*api)provisionerDaemonsByOrganization(rw http.ResponseWriter,r*http.Request) {
36+
daemons,err:=api.Database.GetProvisionerDaemons(r.Context())
37+
iferrors.Is(err,sql.ErrNoRows) {
38+
err=nil
39+
}
40+
iferr!=nil {
41+
httpapi.Write(rw,http.StatusInternalServerError, httpapi.Response{
42+
Message:fmt.Sprintf("get provisioner daemons: %s",err),
43+
})
44+
return
45+
}
46+
ifdaemons==nil {
47+
daemons= []database.ProvisionerDaemon{}
48+
}
49+
httpapi.Write(rw,http.StatusOK,daemons)
50+
}
51+
3552
// Serves the provisioner daemon protobuf API over a WebSocket.
3653
func (api*api)provisionerDaemonsListen(rw http.ResponseWriter,r*http.Request) {
3754
api.websocketWaitMutex.Lock()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp