def METHOD_NAME(event_id):
    if 'reset' in request.args:
        updates = Speaker.query.filter(Speaker.event_id == event_id).update(
            {Speaker.order: 0}, synchronize_session=False
        )
        db.session.commit()
        return jsonify({'success': True, 'updates': updates})
    data, errors = SpeakerReorderSchema(many=True).load(request.json)
    if errors:
        raise UnprocessableEntityError(
            {'pointer': '/data', 'errors': errors}, 'Data in incorrect format'
        )
    speaker_ids = {item['speaker'] for item in data}
    event_ids = (
        db.session.query(distinct(Speaker.event_id))
        .filter(Speaker.id.in_(speaker_ids))
        .all()
    )
    if len(event_ids) != 1 or event_ids[0][0] != event_id:
        raise ForbiddenError(
            {'pointer': 'event_id'},
            'All speakers should be of single event which user has co-organizer access to',
        )
    result = group_by(data, 'order')
    updates = {}
    for (order, items) in result.items():
        speaker_ids = {item['speaker'] for item in items}
        result = Speaker.query.filter(Speaker.id.in_(speaker_ids)).update(
            {Speaker.order: order}, synchronize_session=False
        )
        updates[order] = result
    db.session.commit()
    return jsonify({'success': True, 'updates': updates})