(apiName string, keepCache bool)
| 183 | } |
| 184 | |
| 185 | func DeleteAPI(apiName string, keepCache bool) (*schema.DeleteResponse, error) { |
| 186 | deployedResource, err := GetDeployedResourceByNameOrNil(apiName) |
| 187 | if err != nil { |
| 188 | return nil, err |
| 189 | } |
| 190 | if deployedResource == nil { |
| 191 | // Delete anyways just to be sure everything is deleted |
| 192 | routines.RunWithPanicHandler(func() { |
| 193 | err := parallel.RunFirstErr( |
| 194 | func() error { |
| 195 | return realtimeapi.DeleteAPI(apiName, keepCache) |
| 196 | }, |
| 197 | func() error { |
| 198 | return batchapi.DeleteAPI(apiName, keepCache) |
| 199 | }, |
| 200 | func() error { |
| 201 | return trafficsplitter.DeleteAPI(apiName, keepCache) |
| 202 | }, |
| 203 | func() error { |
| 204 | return taskapi.DeleteAPI(apiName, keepCache) |
| 205 | }, |
| 206 | func() error { |
| 207 | return asyncapi.DeleteAPI(apiName, keepCache) |
| 208 | }, |
| 209 | ) |
| 210 | if err != nil { |
| 211 | telemetry.Error(err) |
| 212 | } |
| 213 | }) |
| 214 | return nil, ErrorAPINotDeployed(apiName) |
| 215 | } |
| 216 | |
| 217 | switch deployedResource.Kind { |
| 218 | case userconfig.RealtimeAPIKind: |
| 219 | err := checkIfUsedByTrafficSplitter(apiName) |
| 220 | if err != nil { |
| 221 | return nil, err |
| 222 | } |
| 223 | err = realtimeapi.DeleteAPI(apiName, keepCache) |
| 224 | if err != nil { |
| 225 | return nil, err |
| 226 | } |
| 227 | case userconfig.TrafficSplitterKind: |
| 228 | err := trafficsplitter.DeleteAPI(apiName, keepCache) |
| 229 | if err != nil { |
| 230 | return nil, err |
| 231 | } |
| 232 | case userconfig.BatchAPIKind: |
| 233 | err := batchapi.DeleteAPI(apiName, keepCache) |
| 234 | if err != nil { |
| 235 | return nil, err |
| 236 | } |
| 237 | case userconfig.TaskAPIKind: |
| 238 | err := taskapi.DeleteAPI(apiName, keepCache) |
| 239 | if err != nil { |
| 240 | return nil, err |
| 241 | } |
| 242 | case userconfig.AsyncAPIKind: |
no test coverage detected