def save_source_dbs()

in backend/bms_app/source_db/services.py [0:0]


def save_source_dbs(parsed_dbs_data, overwrite, project_id):
    added = updated = skipped = 0

    for raw_db_data in parsed_dbs_data:
        source_db = db.session.query(SourceDB) \
            .filter(
                SourceDB.server == raw_db_data['server'],
                SourceDB.db_name == raw_db_data['db_name'],
                SourceDB.project_id == project_id)\
            .first()

        if source_db:
            if overwrite:
                deployment_exists = db.session.query(OperationDetails) \
                    .filter(Mapping.db_id == source_db.id) \
                    .filter(Mapping.id == OperationDetails.mapping_id) \
                    .count()

                if not deployment_exists:
                    update_db(source_db, raw_db_data)
                    updated += 1
                else:
                    skipped += 1
            else:
                skipped += 1
        else:
            add_db(raw_db_data, project_id)
            added += 1

    return {
        'added': added,
        'updated': updated,
        'skipped': skipped
    }