/**
 * init wrapper and send authorization request
 * 
 * @param array $params module configurations
 * 
 * @return mixed true if authorization was sucessfull, error message in other case
 */
function __initConnectionAndAuthorize($params)
{
    if (!class_exists('STRegistry')) {
        require_once sprintf('%s%2$sclasses%2$swrapper%2$sSTRegistry.php', dirname(__FILE__), DIRECTORY_SEPARATOR);
        require_once sprintf('%s%2$sclasses%2$swrapper%2$sResponseHelper.php', dirname(__FILE__), DIRECTORY_SEPARATOR);
        require_once sprintf('%s%2$sclasses%2$sSTRegistryPrivacyContact.php', dirname(__FILE__), DIRECTORY_SEPARATOR);
    }
    STRegistry::Init($params['apiHost'], $params['apiHost'], $params['apiUseSSL'] === 'on', $params['apiVersion'] ?: '1.0', $params['apiUserAgent']);
    $json = STRegistry::Session()->login($params['apiUsername'], $params['apiPassword']);
    if (!ResponseHelper::isSuccess($json)) {
        return ResponseHelper::fromJSON($json)->message;
    }
    return true;
}
 /**
  * Make search over registrar notifications collection
  * 
  * @param SearchCriteria $criteria  Prepared search filters
  * @param int $limit results limit	
  * @param int $offset start rowset from
  * @param array $sort rowset sort rule array('field' => 'asc|desc')
  * 
  * @return str json response
  */
 public function search(SearchCriteria $criteria, $limit = 100, $offset = 0, array $sort = array(), $cltrid = false)
 {
     $get = $criteria->getCriteria();
     $get['do'] = 'search';
     $get['limit'] = $limit;
     $get['offset'] = $offset;
     foreach ($sort as $field => $direction) {
         $get['sort_field'] = $field;
         $get['sort_direction'] = $direction;
         // sorry. just one field
         break;
     }
     $json = APIRequest::GET('/notifications/', $cltrid ?: APIRequest::defaultClientTransactionID(), STRegistry::Session()->getAuthToken(), $get);
     return $json;
 }
 /**
  * Return registrar billing details
  * 
  * @return str json response
  */
 public function billingRecords($cltrid = false)
 {
     $json = APIRequest::GET(sprintf('/billing/%s', STRegistry::Session()->getLogin()), $cltrid ?: APIRequest::defaultClientTransactionID(), STRegistry::Session()->getAuthToken());
     return $json;
 }