protected override void InnerExecute(string[] arguments)
{
var request = new RestRequest("applications/{slug}/drains", Method.GET)
.AddUrlSegment("slug", ApplicationId)
.AddHeader("Authorization", string.Format("BEARER {0}", _accessToken));
request.RequestFormat = DataFormat.Json;
var drains = _restClient.Execute<List<Drain>>(request);
var drain = drains.Data.FirstOrDefault(x => x.Value == arguments[0]);
if (drain == null)
{
throw new CommandException("No drains with that URL is associated with this application");
}
var url = new Uri(drain.Url);
var destroyRequest = new RestRequest(url, Method.DELETE)
{
RequestFormat = DataFormat.Json,
}
.AddHeader("Authorization", string.Format("BEARER {0}", _accessToken));
var destroyResponse = _restClient.Execute(destroyRequest);
if (destroyResponse.StatusCode != HttpStatusCode.NoContent)
{
throw new CommandException("Couldn't remove drain");
}
}