@@ -20,16 +20,32 @@ func (api *API) getProjectIntegrationHandler() service.Handler {
20
20
projectKey := vars [permProjectKey ]
21
21
integrationName := vars ["integrationName" ]
22
22
23
- integration , err := integration .LoadProjectIntegrationByName (api .mustDB (), projectKey , integrationName )
24
- if err != nil {
25
- return sdk .WrapError (err , "Cannot load integration %s/%s" , projectKey , integrationName )
23
+ var integ sdk.ProjectIntegration
24
+ var err error
25
+
26
+ clearPassword := FormBool (r , "clearPassword" )
27
+ if clearPassword {
28
+ if ! isService (ctx ) {
29
+ return sdk .ErrForbidden
30
+ }
31
+ integ , err = integration .LoadProjectIntegrationByNameWithClearPassword (api .mustDB (), projectKey , integrationName )
32
+ if err != nil {
33
+ return sdk .WrapError (err , "Cannot load integration %s/%s" , projectKey , integrationName )
34
+ }
35
+ } else {
36
+ integ , err = integration .LoadProjectIntegrationByName (api .mustDB (), projectKey , integrationName )
37
+ if err != nil {
38
+ return sdk .WrapError (err , "Cannot load integration %s/%s" , projectKey , integrationName )
39
+ }
26
40
}
27
- plugins , err := plugin .LoadAllByIntegrationModelID (api .mustDB (), integration .IntegrationModelID )
41
+
42
+ plugins , err := plugin .LoadAllByIntegrationModelID (api .mustDB (), integ .IntegrationModelID )
28
43
if err != nil {
29
- return sdk .WrapError (err , "Cannot load integration %s/%s" , projectKey , integrationName )
44
+ return sdk .WrapError (err , "Cannot load integration plugin %s/%s" , projectKey , integrationName )
30
45
}
31
- integration .GRPCPlugins = plugins
32
- return service .WriteJSON (w , integration , http .StatusOK )
46
+ integ .GRPCPlugins = plugins
47
+
48
+ return service .WriteJSON (w , integ , http .StatusOK )
33
49
}
34
50
}
35
51
0 commit comments