コード例 #1
0
def user_data(request):
    """
    Context processor for Navbar
    :param request:
    :return: username and organisation name
    """
    if request.user.is_authenticated:
        try:
            fyle_sdk_connector = FyleSdkConnector(request.user.refresh_token)
            user_details = fyle_sdk_connector.extract_employee_details()
            return {'username': user_details.get('full_name'), 'org': user_details.get('org_name')}
        except Exception as e:
            return {}
    return {}
コード例 #2
0
def org_name(request):
    """
    Context processor for Settings tab
    :param request:
    :return: organisation name for current active fyle account
    """
    if request.user.is_authenticated:
        try:
            fyle_sdk_connector = FyleSdkConnector(request.user.refresh_token)
            fyle_org_name = fyle_sdk_connector.extract_employee_details().get('org_name')
            return {'current_org_name': fyle_org_name, 'connected': True}
        except Exception:
            return {}
    return {}
コード例 #3
0
def schedule_backup(request, backup):
    """
    Schedule this backup using JobsInfra
    :param request: request object
    :param backup: backup object
    """
    try:
        fyle_sdk_connector = FyleSdkConnector(request.user.refresh_token)
        fyle_sdk_connection = fyle_sdk_connector.connection
        jobs = FyleJobsSDK(fyle_sdk_connection)
        object_type = request.POST.get('object_type')
        created_job = jobs.trigger_now(
            callback_url='{0}{1}/'.format(settings.FYLE_JOBS_CALLBACK_URL,
                                          object_type),
            callback_method='POST',
            object_id=backup.id,
            payload={'backup_id': backup.id},
            job_description='Fetch backup_id {0} for user: {1}'.format(
                backup.id, request.user
            ))
        if created_job is None:
            logger.error('Backup_id: %s not scheduled. Task creation failed.', backup.id)
            backup.current_state = 'FAILED'
            backup.save()
            return False
        backup.task_id = created_job['id']
        backup.save()
        return True
    except Exception as excp:
        logger.error('Exception occured while scheduling backup_id: %s', backup.id)
        raise
コード例 #4
0
def schedule_backup(request, backup):
    """
    Schedule this backup using JobsInfra
    :param request: request object
    :param backup: backup object
    """
    try:
        fyle_sdk_connector = FyleSdkConnector(request.user.refresh_token)
        fyle_sdk_connection = fyle_sdk_connector.connection
        jobs = fyle_sdk_connection.Jobs
        org_user_id = fyle_sdk_connection.Employees.get_my_profile()[
            'data']['id']
        object_type = request.POST.get('object_type')
        created_job = jobs.trigger_now(
            callback_url='{0}{1}/'.format(settings.FYLE_JOBS_CALLBACK_URL,
                                          object_type),
            callback_method='POST',
            org_user_id=org_user_id,
            job_description='Fetch backup_id {0} for user: {1}'.format(
                backup.id, request.user
            ),
            object_id=backup.id,
            payload={'backup_id': backup.id}
        )
        backup.task_id = created_job['id']
        backup.save()
        return True
    except Exception:
        error = traceback.format_exc()
        logger.error(
            'Exception occured while scheduling backup_id: %s, Traceback: %s', backup.id, error)
コード例 #5
0
 def get(self, request):
     code = request.GET.get('code')
     error = request.GET.get('error')
     if code and error is None:
         fyle_oauth = FyleOAuth2()
         refresh_token = fyle_oauth.get_refresh_token(code)
         fyle_sdk_connector = FyleSdkConnector(refresh_token)
         fyle_org_id = fyle_sdk_connector.extract_employee_details().get(
             'org_id')
         user = UserProfile.objects.get(email=request.user)
         user.refresh_token = refresh_token
         user.fyle_org_id = fyle_org_id
         user.save()
         return redirect('/main/expenses/')
     messages.error(
         request, 'Please Authorize Fyle Backup Application\
                    to access your Fyle Account.')
     return redirect('/')
コード例 #6
0
 def get(self, request, backup_id):
     try:
         logger.info('Got a notify request from user %s for backup_id: %s',
                     request.user, backup_id)
         backup = Backups.objects.get(id=backup_id,
                                      user_id__email=request.user)
         fyle_connection = FyleSdkConnector(backup.fyle_refresh_token)
         object_type = ObjectLookup(backup.object_type).label.lower()
         notify_user(fyle_connection, backup.file_path, backup.fyle_org_id,
                     object_type)
         messages.success(
             request, 'We have sent you the download\
                          link by email.')
         return redirect('/main/{0}/'.format(object_type))
     except Backups.DoesNotExist:
         messages.error(request, 'Did not find a backup for this id.')
     except Exception as excp:
         logger.error(
             'Error while notifying user for backup_id: %s. Error: %s',
             backup_id, excp)
         messages.error(request, 'Something went wrong. Please try again!')
     return redirect('/main/expenses/')