def endre_kontakt_action_strategy(soknad, action, data):
    if data is None:
        abort(400, __error__=['Data mangler'])

    validator = BaseValidator(data)
    validator.validate_is_defined('person_id', label="Kontaktperson")
    validator.validate_is_norwegian_phone_number("telefon", label="Telefonnummer")
    validator.validate_is_email('epost', label='Epost')

    person_id = data.get('person_id', None)
    if person_id is not None and not is_person_member_of_organisation(soknad.organisation_id, person_id):
        validator.add_error('person_id', 'Ugyldig person')

    if validator.has_errors():
        abort(400, __error__=validator.errors)

    soknad.person_id = person_id
    soknad.epost = data.get('epost')
    soknad.telefon = data.get('telefon')

    SoknadRepo.save(soknad)