#include "disconnect.h"

DisconnectWorker::DisconnectWorker(Handler *handler, Nan::Callback *callback) :
    AsyncWorker(callback), _handler(handler)
{
}

void DisconnectWorker::Execute()
{
  std::string err;

  if (!this->_handler->disconnect(err))
    SetErrorMessage(err.c_str());
}

void DisconnectWorker::HandleOKCallback()
{
  v8::Local<v8::Value> argv[] = { Nan::Null() };

  this->callback->Call(1, argv);
}

void DisconnectWorker::HandleErrorCallback()
{
  v8::Local<v8::Value> argv[] = { v8::String::NewFromUtf8(Nan::GetCurrentContext()->GetIsolate(), this->ErrorMessage()) };

  this->callback->Call(1, argv);
}