'Submit photos for verification.
This end-point is used for the following cases:
* Initial verification through the pay-and-verify flow.
* Initial verification initiated from a checkpoint within a course.
* Re-verification initiated from a checkpoint within a course.
POST Parameters:
face_image (str): base64-encoded image data of the user\'s face.
photo_id_image (str): base64-encoded image data of the user\'s photo ID.
full_name (str): The user\'s full name, if the user is requesting a name change as well.
course_key (str): Identifier for the course, if initiated from a checkpoint.
checkpoint (str): Location of the checkpoint in the course.'

@method_decorator(login_required)
@method_decorator(outer_atomic(read_committed=True))
def post(self, request):

    initial_verification = SoftwareSecurePhotoVerification.get_initial_verification(request.user)
    (params, response) = self._validate_parameters(request, bool(initial_verification))
    if (response is not None):
        return response
    if ('full_name' in params):
        response = self._update_full_name(request.user, params['full_name'])
        if (response is not None):
            return response
    (face_image, photo_id_image, response) = self._decode_image_data(params['face_image'], params.get('photo_id_image'))
    if (photo_id_image is not None):
        initial_verification = None
    if (response is not None):
        return response
    attempt = self._submit_attempt(request.user, face_image, photo_id_image, initial_verification)
    self._fire_event(request.user, 'edx.bi.verify.submitted', {'category': 'verification'})
    self._send_confirmation_email(request.user)
    return JsonResponse({})
