request(options, function(error, response, body) {
        if (error) {
            logger.error(context, 'Connection error sending registrations to the Context Broker: %s', error);
            callback(error);
        } else if (response && body && response.statusCode === 200) {
            var errorField = getErrorField(body);

            if (errorField) {
                logger.error(context, 'Registration error connecting to the Context Broker: %j', errorField);
                callback(new errors.BadRequest(JSON.stringify(errorField)));
            } else {
                logger.debug(context, 'Registration success.');
                callback(null, body);
            }
        } else {
            var errorObj;

            logger.error(context, 'Protocol error connecting to the Context Broker: %j', errorObj);

            if (unregister) {
                errorObj = new errors.UnregistrationError(deviceData.id, deviceData.type);
            } else {
                errorObj = new errors.RegistrationError(deviceData.id, deviceData.type);
            }

            callback(errorObj);
        }
    });
    request(options, function(error, response, body) {
        if (error) {
            logger.debug(context, 'Error found updating value in Context Broker: %s', error);
            callback(error);
        } else if (body.orionError) {
            logger.debug(context, 'Orion error found updating value in Context Broker: %j', body.orionError);
            callback(new errors.BadRequest(body.orionError.details));
        } else if (response && body && response.statusCode === 200) {
            var errorField = getErrorField(body);

            if (errorField) {
                logger.error(context, 'Update value error connecting to the Context Broker: %j', errorField);
                callback(new errors.BadRequest(JSON.stringify(errorField)));
            } else {
                logger.debug(context, 'Value updated successfully');
                callback(null, body);
            }
        } else if (response && response.statusCode === 403) {
            logger.debug(context, 'Access forbidden updating value');
            callback(new errors.AccessForbidden(
                token,
                options.headers['fiware-service'],
                options.headers['fiware-servicepath']));
        } else {
            logger.debug(context, 'Unknown error updating value');
            callback(new errors.EntityUpdateError(entityName, typeInformation.type));
        }
    });
/**
 * Retrieve a device from the registry based on its entity name.
 *
 * @param {String} deviceName       Name of the entity associated to a device.
 */
function getDeviceByName(deviceName, callback) {
    if (registry) {
        registry.getByName(deviceName, callback);
    } else {
        logger.error(context, 'Tried to get device information before a registry was available');
        callback(new errors.RegistryNotAvailable());
    }
}
/**
 * Retrieve a device from the device registry.
 *
 * @param {String} deviceId         ID of the device to be found.
 */
function getDevice(deviceId, callback) {
    if (registry) {
        registry.get(deviceId, callback);
    } else {
        logger.error(context, 'Tried to list devices before a registry was available');
        callback(new errors.RegistryNotAvailable());
    }
}
/**
 * Return a list of all the devices registered in the system. This function can be invoked in two different ways:
 * with just one parameter (the callback) or with three parameters (including limit and offset).
 *
 * @param {String} service
 * @param {String} subservice
 * @param {Number} limit        Maximum number of entries to return.
 * @param {Number} offset       Number of entries to skip for pagination.
 */
function listDevices(service, subservice, limit, offset, callback) {
    if (!callback) {
        callback = limit;
    }

    if (registry) {
        registry.list(service, subservice, limit, offset, callback);
    } else {
        logger.error(context, 'Tried to list devices before a registry was available');
        callback(new errors.RegistryNotAvailable());
    }
}
Exemple #6
0
 function domainErrorHandler(err) {
     logger.error(err);
     cleanDomain();
 }