#include "getDomainByName.h"

GetDomainByNameWorker::GetDomainByNameWorker(Handler *handler, const std::string &name, Nan::Callback *callback) :
    AsyncWorker(callback), _handler(handler), _name(name)
{
}

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

  if (!this->_handler->getDomainByName(this->_domain, this->_name, err))
    SetErrorMessage(err.c_str());
}

void GetDomainByNameWorker::HandleOKCallback()
{
  v8::Local<v8::Value> argv[] = { Nan::Null(), this->_domain.toObject() };

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

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

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