@@ -3,6 +3,7 @@ package project
3
3
import (
4
4
"context"
5
5
"fmt"
6
+ "net/http"
6
7
"regexp"
7
8
"strings"
8
9
@@ -57,13 +58,22 @@ func projectEnvironmentResource() *schema.Resource {
57
58
projectKey := data .Get ("project_key" ).(string )
58
59
var envs []ProjectEnvironment
59
60
60
- _ , err := m .(util.ProvderMetadata ).Client .R ().
61
+ var projectError ProjectErrorsResponse
62
+ resp , err := m .(util.ProvderMetadata ).Client .R ().
61
63
SetPathParam ("projectKey" , projectKey ).
62
64
SetResult (& envs ).
65
+ SetError (& projectError ).
63
66
Get (projectEnvironmentUrl )
64
67
if err != nil {
65
68
return diag .FromErr (err )
66
69
}
70
+ if resp .StatusCode () == http .StatusNotFound {
71
+ data .SetId ("" )
72
+ return nil
73
+ }
74
+ if resp .IsError () {
75
+ return diag .Errorf ("%s" , projectError .String ())
76
+ }
67
77
68
78
var matchedEnv * ProjectEnvironment
69
79
for _ , env := range envs {
@@ -91,13 +101,18 @@ func projectEnvironmentResource() *schema.Resource {
91
101
Name : fmt .Sprintf ("%s-%s" , projectKey , data .Get ("name" ).(string )),
92
102
}
93
103
94
- _ , err := m .(util.ProvderMetadata ).Client .R ().
104
+ var projectError ProjectErrorsResponse
105
+ resp , err := m .(util.ProvderMetadata ).Client .R ().
95
106
SetPathParam ("projectKey" , projectKey ).
96
107
SetBody (projectEnvironment ).
108
+ SetError (& projectError ).
97
109
Post (projectEnvironmentUrl )
98
110
if err != nil {
99
111
return diag .FromErr (err )
100
112
}
113
+ if resp .IsError () {
114
+ return diag .Errorf ("%s" , projectError .String ())
115
+ }
101
116
102
117
data .SetId (projectEnvironment .Id ())
103
118
@@ -112,16 +127,21 @@ func projectEnvironmentResource() *schema.Resource {
112
127
NewName : fmt .Sprintf ("%s-%s" , projectKey , newName ),
113
128
}
114
129
115
- _ , err := m .(util.ProvderMetadata ).Client .R ().
130
+ var projectError ProjectErrorsResponse
131
+ resp , err := m .(util.ProvderMetadata ).Client .R ().
116
132
SetPathParams (map [string ]string {
117
133
"projectKey" : projectKey ,
118
134
"environmentName" : fmt .Sprintf ("%s-%s" , projectKey , oldName ),
119
135
}).
120
136
SetBody (projectEnvironmentUpdate ).
137
+ SetError (& projectError ).
121
138
Post (projectEnvironmentUrl + "/{environmentName}/rename" )
122
139
if err != nil {
123
140
return diag .FromErr (err )
124
141
}
142
+ if resp .IsError () {
143
+ return diag .Errorf ("%s" , projectError .String ())
144
+ }
125
145
126
146
data .SetId (projectEnvironmentUpdate .Id ())
127
147
data .Set ("name" , newName )
@@ -131,15 +151,21 @@ func projectEnvironmentResource() *schema.Resource {
131
151
132
152
var deleteProjectEnvironment = func (ctx context.Context , data * schema.ResourceData , m interface {}) diag.Diagnostics {
133
153
projectKey := data .Get ("project_key" ).(string )
134
- _ , err := m .(util.ProvderMetadata ).Client .R ().
154
+
155
+ var projectError ProjectErrorsResponse
156
+ resp , err := m .(util.ProvderMetadata ).Client .R ().
135
157
SetPathParams (map [string ]string {
136
158
"projectKey" : projectKey ,
137
159
"environmentName" : fmt .Sprintf ("%s-%s" , projectKey , data .Get ("name" )),
138
160
}).
161
+ SetError (& projectError ).
139
162
Delete (projectEnvironmentUrl + "/{environmentName}" )
140
163
if err != nil {
141
164
return diag .FromErr (err )
142
165
}
166
+ if resp .IsError () && resp .StatusCode () != http .StatusNotFound {
167
+ return diag .Errorf ("%s" , projectError .String ())
168
+ }
143
169
144
170
data .SetId ("" )
145
171
0 commit comments