/*
function push that send a message inside the socket connection to the warehouse server
@constraints : constraints send to the warehouse for checking.
#socket : socket client connection on adress.
#msg : message passed inside the socket connection, using the messageBuilder fonction
function pushConstraints(constraints, param = config) {
    let emitterConstraints = new EventEmitter();
    portSocket = param.portSocket;
    addressWarehouse = param.warehouseAddress;
    urlSocket = `http://${addressWarehouse}:${portSocket}`;
    handshake(param).then(() => {
        let socket = io.connect(urlSocket);
        let msg = messageBuilder(constraints, 'pushConstraints');
        socket.on('connect', function () {
            socket.emit('pushConstraints', msg);
        })
            .on('resultsConstraints', (messageResults) => {
            if (messageResults.value === 'found') {
                logger_1.logger.log('info', `Job trace found in Warehouse`);
                logger_1.logger.log('debug', `Message receive from server (check constraints) \n ${JSON.stringify(messageResults)}`);
                let workPath = messageResults.data[0].workDir;
                fStdout_fSterr_Check(workPath).on('checkOK', (nameOut, nameErr) => {
                    logger_1.logger.log('success', `Found ${messageResults.data.length} jobs traces`);
                    emitterConstraints.emit('foundDocs', nameOut, nameErr, workPath);
                })
                    .on('checkNotOK', () => {
                    emitterConstraints.emit('notFoundDocs');
                });
            }
            ;
            if (messageResults.value === 'notFound') {
                logger_1.logger.log('info', `Job trace not found in Warehouse`);
                logger_1.logger.log('debug', `Message receive from server (check constraints) \n ${JSON.stringify(messageResults)}`);
                emitterConstraints.emit('notFoundDocs', messageResults);
            }
            if (messageResults.value === 'errorConstraints')
                emitterConstraints.emit('errorDocs', messageResults);
        });
    })
        .catch(() => {
        emitterConstraints.emit('cantConnect');
    });
    return emitterConstraints;
}