function isSinkerSettingsComplete()

in Website/Packages/datax-pipeline/src/modules/flowDefinition/flowSelectors.js [426:468]


function isSinkerSettingsComplete(sinker) {
    let validations = [];
    validations.push(sinker && sinker.properties);
    validations.push(Helpers.isNumberAndStringOnly(sinker.id));

    switch (sinker.type) {
        case Models.sinkerTypeEnum.cosmosdb:
            validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
            validations.push(sinker.properties.db && Helpers.isNumberAndStringOnly(sinker.properties.db));
            validations.push(sinker.properties.collection && Helpers.isNumberAndStringOnly(sinker.properties.collection));
            break;

        case Models.sinkerTypeEnum.eventHub:
            validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
            break;

        case Models.sinkerTypeEnum.blob:
            validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
            validations.push(sinker.properties.containerName && Helpers.isNumberAndStringOnly(sinker.properties.containerName));
            validations.push(sinker.properties.blobPrefix && sinker.properties.blobPrefix.trim() !== '');
            validations.push(sinker.properties.blobPartitionFormat && sinker.properties.blobPartitionFormat.trim() !== '');
            break;

        case Models.sinkerTypeEnum.sql:
            validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
            validations.push(sinker.properties.tableName && sinker.properties.connectionString.trim() !== '');
            break;

        case Models.sinkerTypeEnum.metric:
            // no additional validation needed, this is a system provided sinker type
            break;

        case Models.sinkerTypeEnum.local:
            validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
            break;

        default:
            // if unknown type, return validation failure so newly onboarded sinker will look into what needs to be validated
            validations.push(false);
            break;
    }
    return validations.every(value => value);
}