Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. @shared_task
  2. def upload_to_dropbox(document_id, file_name, file_path, member_id):
  3. document = apps.get_model('members', 'Document').objects.get(pk=document_id)
  4. dbx = dropbox.Dropbox(settings.DROPBOX_APP_TOKEN)
  5. file_name = re.sub(r'uploads|/|documents', '', file_name)
  6. file_name = ''.join([
  7. '/documents/',
  8. str(document.created_at.strftime('%d-%m-%Y')), '/', 'member:' + str(member_id), '/',
  9. file_name
  10. ])
  11.  
  12. with open(os.path.join(settings.MEDIA_ROOT, file_path), 'rb') as f:
  13. data = f.read()
  14. try:
  15. res = dbx.files_upload(data, file_name, dropbox.files.WriteMode.overwrite, mute=True)
  16. except dropbox.exceptions.ApiError:
  17. return False
  18.  
  19. document.dropbox = res.id
  20. document.save()
  21.  
  22. return True
  23.  
  24.  
  25. @shared_task
  26. def upload_deposit_to_dropbox(type, deposit_id, file_name, file_path, member_id):
  27. deposit = Deposit.objects.get(id=deposit_id)
  28.  
  29. if type == 'bank':
  30. deposit = deposit.bank
  31. dropbox_path = '/bank-deposits/'
  32. file_name = re.sub(r'uploads|/|bank-deposits', '', file_name)
  33. elif type == 'card':
  34. deposit = deposit.card
  35. dropbox_path = '/credit-card-deposits/'
  36. file_name = re.sub(r'uploads|/|credit-card-transactions', '', file_name)
  37. else:
  38. return False
  39.  
  40. dbx = dropbox.Dropbox(settings.DROPBOX_APP_TOKEN)
  41.  
  42. file_name = ''.join([
  43. dropbox_path,
  44. str(deposit.created_at.strftime('%d-%m-%Y')), '/', 'member:' + str(member_id), '/',
  45. file_name
  46. ])
  47.  
  48. with open(os.path.join(settings.MEDIA_ROOT, file_path), 'rb') as f:
  49. data = f.read()
  50. try:
  51. res = dbx.files_upload(data, file_name, dropbox.files.WriteMode.overwrite, mute=True)
  52. except dropbox.exceptions.ApiError:
  53. return False
  54.  
  55. deposit.voucher_dropbox = res.id
  56. deposit.save(update_fields=['voucher_dropbox'])
  57.  
  58. return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement