def getAttachmentLogic(request, message_id, attachment_id, ss=None): if (request.method != 'POST'): return err_GE002() attachment = get_object_or_404(MessageAttachment, message__uuid=message_id, uuid=attachment_id) message = attachment.message if ((message.sender and request.user.pk != message.sender.pk) and not ((request.user.pk,) in message.recipients.values_list('id') or (request.user.pk,) in message.ccs.values_list('id'))): return err403(request, err_msg="You don't seem to be a valid recipient for this file.") # Get/set up data for KMS. request.session['key'] = request.device_assn.secret try: clearkey = decrypt_cipherkey(request, attachment, ss=ss) except KeyInvalidException: return err_GE021() url = attachment.decrypt_url(request, key=clearkey) if (url[0:4] == 'file'): response = HttpResponse(content_type=attachment.content_type) attachment.get_file(request, response, key=clearkey) return response elif (url[0:4] == 'http'): # This is likely a fully qualified URL if (not attachment.encrypted): return HttpResponseRedirect(url) else: # Download and decrypt this attachment. pass else: raise Exception('A seemingly invalid URL has been stored: %s, for ' 'MessageAttachment %s.' % (url, attachment_id,))
def testGetReferPDF(self): sender = self.user msg = Message(sender=sender, sender_site=None, subject="pandas") msg.urgent = False msg.message_type = 'NM' msg.callback_number = '2561234561' msg.save() refer = MessageRefer() refer.message = msg refer.gender = 'M' refer.status = 'AC' refer.phone_number = 8529631475 refer.alternative_phone_number = 1472583695 refer.home_phone_number = 8472583695 refer.save() response = self.client.get(reverse('MHLogin.api.v1.views_messaging.getReferPDF', \ args=(refer.uuid,)), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code) response = self.client.post(reverse('MHLogin.api.v1.views_messaging.getReferPDF', \ args=(refer.uuid,)), **self.extra) self.assertEqual(response.status_code, 400, response.status_code) with self.assertRaises(Exception): self.client.post(reverse( 'MHLogin.api.v1.views_messaging.getReferPDF', args=(refer.uuid,)), \ data={'secret': 'ABeohIU4Sy48bQ/w07cLKBJ6gv49ptEF0YY48VXSMr4='}, **self.extra)
def brokerEditProfileLogic(request): if (request.method != 'POST'): return err_GE002() old_url = None broker = request.role_user if broker.user.photo: old_url = broker.user.photo.name broker_form = BrokerForm(request.POST, instance=broker) if not broker_form.is_valid(): return err_GE031(broker_form) user_form = BrokerUserForm(request.POST, request.FILES, instance=broker.user) if not user_form.is_valid(): return err_GE031(user_form) broker_form.save() user_form.save() new_url = None if broker.user.photo: new_url = broker.user.photo.name ImageHelper.generate_image(old_url, new_url) return HttpJSONSuccessResponse()
def brokerEditProfileLogic(request): if (request.method != 'POST'): return err_GE002() old_url = None broker = request.role_user if broker.user.photo: old_url = broker.user.photo.name broker_form = BrokerForm(request.POST, instance=broker) if not broker_form.is_valid(): return err_GE031(broker_form) user_form = BrokerUserForm(request.POST, request.FILES, instance=broker.user) if not user_form.is_valid(): return err_GE031(user_form) broker_form.save() user_form.save() new_url = None if broker.user.photo: new_url = broker.user.photo.name ImageHelper.generate_image(old_url, new_url) return HttpJSONSuccessResponse()
def testCreateOfficeStaff(self): data = { 'username':get_random_username(), 'first_name':'c', 'last_name':'tian', 'mobile_phone':9001111111, 'gender':'M', 'email':'*****@*****.**', 'lat':0.0, 'longit':0.0, 'address1':'address1', 'address2':'address2', 'city':'Chicago', 'state':'IL', 'zip':60601, 'user_type':1, 'office_lat':41.885805, 'office_longit':-87.6229106, 'staff_type':3, } response = self.client.post(reverse('MHLogin.api.v1.views_users.createOfficeStaff'), data, **self.extra) self.assertEqual(response.status_code, 200, response.status_code) self.assertEqual(response.content, HttpJSONSuccessResponse().content, response.status_code) response = self.client.post(reverse('MHLogin.api.v1.views_users.createOfficeStaff'), **self.extra) self.assertEqual(json.loads(response.content)['errno'], 'GE031', response.status_code) response = self.client.get(reverse('MHLogin.api.v1.views_users.createOfficeStaff'), data, **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code)
def composeReferLogic(request, api_secret=None, ss=None): if (request.method != 'POST'): return err_GE002() form = MessageReferForm(request.POST, request.FILES) if (not form.is_valid()): return err_GE031(form) sender = request.user sender_role_user = request.role_user subject = u'Refer' body = form.cleaned_data['reason_of_refer'] recipients = form.cleaned_data['user_recipients'] attachments = [] if ('attachments' in request.FILES): attachments = request.FILES.getlist('attachments') createNewMessage(request, sender, sender_role_user, recipients, body, ccs=None, subject=subject, uploads=attachments, file_data_list=None, refer_data=form.cleaned_data, api_secret=api_secret, ss=ss) return HttpJSONSuccessResponse()
def testComposeRefer(self): response = self.client.get(reverse( 'MHLogin.api.v1.views_messaging.composeRefer'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code) response = self.client.post(reverse( 'MHLogin.api.v1.views_messaging.composeRefer'), **self.extra) self.assertEqual(response.status_code, 400, response.status_code)
def testPracticeSearch(self): response = self.client.post(reverse\ ('MHLogin.api.v1.views_practices.practiceSearch'), **self.extra) self.assertEqual(response.status_code, 200, response.status_code) response = self.client.get\ (reverse('MHLogin.api.v1.views_practices.practiceSearch'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code)
def changePasswordLogic(request): if (request.method != 'POST'): return err_GE002() form = ChangePasswordForm(request.mhluser, request.POST) if (not form.is_valid()): return err_GE031(form) change_pass_common(form, request) return HttpJSONSuccessResponse()
def changePasswordLogic(request): if (request.method != 'POST'): return err_GE002() form = ChangePasswordForm(request.mhluser, request.POST) if (not form.is_valid()): return err_GE031(form) change_pass_common(form, request) return HttpJSONSuccessResponse()
def smartPhoneCallLogic(request, *args, **kwargs): if (request.method != 'POST'): return err_GE002() if (not request.mhluser.mobile_phone): return err_TE005() called_number = '' called_mhluser = None form = USNumberForm(request.POST) if(not form.is_valid()): return err_GE031(form) if('user_id' in kwargs): user_id = kwargs['user_id'] called_mhluser = MHLUser.objects.filter(pk=user_id) if (not called_mhluser): return err_GE010() called_mhluser = called_mhluser[0] if (not called_mhluser.mobile_phone): return err_TE005() called_number = called_mhluser.mobile_phone if('practice_id' in kwargs): practice_id = kwargs['practice_id'] called_practice = PracticeLocation.objects.filter(id=practice_id) if not called_practice: return err_GE010() called_number = called_practice[0].practice_phone if called_practice[0].backline_phone: called_number = called_practice[0].backline_phone if (not called_number): return err_TE006() elif('number' in request.POST): called_number = form.cleaned_data['number'] elif('number' in kwargs): called_number = kwargs['number'] if not called_mhluser and not called_number: return err_TE003() log = Click2Call_Log() log.caller = request.mhluser log.called_user = called_mhluser log.called_number = called_number log.caller_number = form.cleaned_data['caller_number'] role_user = request.role_user if role_user and hasattr(role_user, "current_site") and role_user.current_site: log.current_site = role_user.current_site log.source = 'APP' log.save() data = { 'number': ''.join(['+1',str(settings.TWILIO_C2C_NUMBER)]) } return HttpJSONSuccessResponse(data=data)
def practiceSearch(request): if (request.method != 'POST'): return err_GE002() form = PracticeSearchForm(request.POST) if (not form.is_valid()): return err_GE031(form) data = getPracticeList(form.cleaned_data, org_type_id=RESERVED_ORGANIZATION_TYPE_ID_PRACTICE) return HttpJSONSuccessResponse(data=data)
def siteSearch(request): if (request.method != 'POST'): return err_GE002() form = SiteSearchForm(request.POST) if (not form.is_valid()): return err_GE031(form) data = getSiteList(form.cleaned_data) return HttpJSONSuccessResponse(data=data)
def createProvider(request): if (request.method != 'POST'): return err_GE002() form = CreateProviderForm(request.POST) if (not form.is_valid()): return err_GE031(form) createNewProvider(form, request.role_user) return HttpJSONSuccessResponse()
def testSiteSearch(self): response = self.client.post( reverse('MHLogin.api.v1.views_sites.siteSearch'), **self.extra) self.assertEqual(response.status_code, 200, response.status_code) response = self.client.get( reverse('MHLogin.api.v1.views_sites.siteSearch'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code)
def searchStaff(request): if (request.method != 'POST'): return err_GE002() form = StaffSearchForm(request.POST) if (not form.is_valid()): return err_GE031(form) data = getStaffList(form.cleaned_data) return HttpJSONSuccessResponse(data=data)
def listTasksLogic(request): if (request.method != 'POST'): return err_GE002() form = TaskListForm(request.POST) if (not form.is_valid()): return err_GE031(form) data = getFollowUpList(form.cleaned_data, request.mhluser.id) return HttpJSONSuccessResponse(data=data)
def updateTaskLogic(request, task_id): if (request.method != 'POST'): return err_GE002() form = UpdateTaskForm(request.POST) if (not form.is_valid()): return err_GE031(form) updateFollowUp(form.cleaned_data, task_id, request.mhluser.id) return HttpJSONSuccessResponse()
def testListTasks(self): response = self.client.post(reverse( 'MHLogin.api.v1.views_followups.listTasks'), **self.extra) self.assertEqual(response.status_code, 200, response.status_code) msg = json.loads(response.content) self.assertEqual(len(msg), 2) response = self.client.get(reverse( 'MHLogin.api.v1.views_followups.listTasks'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code)
def testGetSentMessages(self): response = self.client.get(reverse( 'MHLogin.api.v1.views_messaging.getReceivedMessages'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code) response = self.client.post(reverse( 'MHLogin.api.v1.views_messaging.getSentMessages'), **self.extra) self.assertEqual(response.status_code, 200, response.status_code) msg = json.loads(response.content) self.assertEqual(len(msg), 2)
def newTaskLogic(request): if (request.method != 'POST'): return err_GE002() form = NewTaskForm(request.POST) if (not form.is_valid()): return err_GE031(form) task = createFollowUp(form.cleaned_data, request.mhluser.id) data = {'id': task.id} return HttpJSONSuccessResponse(data=data)
def testListTasks(self): response = self.client.post( reverse('MHLogin.api.v1.views_followups.listTasks'), **self.extra) self.assertEqual(response.status_code, 200, response.status_code) msg = json.loads(response.content) self.assertEqual(len(msg), 2) response = self.client.get( reverse('MHLogin.api.v1.views_followups.listTasks'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code)
def testUpdateTask(self): task = FollowUps(user=self.user, priority=1) task.save() response = self.client.get(reverse( 'MHLogin.api.v1.views_followups.updateTask',args=(task.id,)), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code) response = self.client.post(reverse( 'MHLogin.api.v1.views_followups.updateTask',args=(task.id,)), **self.extra) self.assertEqual(response.status_code, 200, response.status_code) msg = json.loads(response.content) self.assertEqual(len(msg), 2)
def updateMobilePhoneLogic(request): if (request.method != 'POST'): return err_GE002() form = UpdateMobileForm(request.POST) if (not form.is_valid()): return err_GE031(form) mhluser_id = request.mhluser.id mobile_phone = form.cleaned_data["mobile_phone"] if has_mhluser_with_mobile_phone(mobile_phone, mhluser_id): return err_AM020() MHLUser.objects.filter(id=mhluser_id).update(mobile_phone=mobile_phone) return HttpJSONSuccessResponse()
def createBroker(request): if (request.method != 'POST'): return err_GE002() broker_form = CreateBrokerForm(request.POST) mhluser_form = CreateBrokerMHLUserForm(request.POST, request.FILES) if (not mhluser_form.is_valid()): return err_GE031(mhluser_form) if (not broker_form.is_valid()): return err_GE031(broker_form) createNewBroker(mhluser_form, broker_form, request.role_user) return HttpJSONSuccessResponse()
def updateMobilePhoneLogic(request): if (request.method != 'POST'): return err_GE002() form = UpdateMobileForm(request.POST) if (not form.is_valid()): return err_GE031(form) mhluser_id = request.mhluser.id mobile_phone = form.cleaned_data["mobile_phone"] if has_mhluser_with_mobile_phone(mobile_phone, mhluser_id): return err_AM020() MHLUser.objects.filter(id=mhluser_id).update(mobile_phone=mobile_phone) return HttpJSONSuccessResponse()
def createOfficeStaff(request): if (request.method != 'POST'): return err_GE002() staff_form = CreateOfficeStaffForm(request.POST) mhluser_form = CreateMHLUserForm(request.POST, request.FILES) if (not mhluser_form.is_valid()): return err_GE031(mhluser_form) if (not staff_form.is_valid()): return err_GE031(staff_form) createNewOfficeStaff(mhluser_form, staff_form, request.role_user) return HttpJSONSuccessResponse()
def testNewTask(self): data={'description':'the test is test newTask', 'due':'20', 'priority':'1'} response = self.client.post(reverse( 'MHLogin.api.v1.views_followups.newTask'), data, **self.extra) self.assertEqual(response.status_code, 200, response.status_code) msg = json.loads(response.content) self.assertEqual(len(msg), 2) response = self.client.get(reverse( 'MHLogin.api.v1.views_followups.newTask'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code)
def getReferPDFLogic(request, refer_id, ss=None): """ get_refer_pdf :param request: Request info :type request: django.core.handlers.wsgi.WSGIRequest :param refer_id: referall id :type refer_id: uuid :returns: django.http.HttpResponse -- the result in an HttpResonse object """ if (request.method != 'POST'): return err_GE002() form = MsgGetForm(request.POST) if (not form.is_valid()): return err_GE031(form) refer = get_object_or_404(MessageRefer, uuid=refer_id) message = refer.message if ((message.sender and request.user.pk != message.sender.pk) and not ((request.user.pk, ) in message.recipients.values_list('id') or (request.user.pk, ) in message.ccs.values_list('id'))): return err403( request, err_msg=_("You don't seem to be a valid recipient for this file.")) # special for mobile app api # Get/set up data for KMS. request.session['key'] = request.device_assn.secret try: clearkey = decrypt_cipherkey(request, refer, ss=ss) except KeyInvalidException: return err_GE021() try: response = refer.get_file(request, key=clearkey) return response except Exception as e: err_email_body = '\n'.join([ ('PDF file not exist!'), ''.join(['Server: ', settings.SERVER_ADDRESS]), ''.join(['Session: ', str(request.session.session_key)]), ''.join(['Message: ', (u'PDF file not exist in media/refer/pdf')]), ''.join(['Exception: ', str(e)]), ''.join(['Exception data: ', str(e.args)]), ]) mail_admins(_('PDF folder not exist'), err_email_body) raise Exception( _('A seemingly invalid URL has been stored for Refer Pdf.'))
def markMessageLogic(request, read_flag=True): if (request.method != 'POST'): return err_GE002() form = MsgBatchIDForm(request.POST) if (not form.is_valid()): return err_GE031(form) read_timestamp = 0 if read_flag: read_timestamp = int(time.time()) message_ids = form.cleaned_data['message_ids'] MessageBodyUserStatus.objects.filter(user=request.user, read_flag=not read_flag, msg_body__message__uuid__in=message_ids).\ update(read_flag=read_flag, read_timestamp=read_timestamp) return HttpJSONSuccessResponse()
def markMessageLogic(request, read_flag=True): if (request.method != 'POST'): return err_GE002() form = MsgBatchIDForm(request.POST) if (not form.is_valid()): return err_GE031(form) read_timestamp = 0 if read_flag: read_timestamp = int(time.time()) message_ids = form.cleaned_data['message_ids'] MessageBodyUserStatus.objects.filter(user=request.user, read_flag=not read_flag, msg_body__message__uuid__in=message_ids).\ update(read_flag=read_flag, read_timestamp=read_timestamp) return HttpJSONSuccessResponse()
def testUpdateTask(self): task = FollowUps(user=self.user, priority=1) task.save() response = self.client.get( reverse('MHLogin.api.v1.views_followups.updateTask', args=(task.id, )), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code) response = self.client.post( reverse('MHLogin.api.v1.views_followups.updateTask', args=(task.id, )), **self.extra) self.assertEqual(response.status_code, 200, response.status_code) msg = json.loads(response.content) self.assertEqual(len(msg), 2)
def providerEditProfileLogic(request): if (request.method != 'POST'): return err_GE002() provider = request.role_user phys = Physician.objects.filter(user=provider) if phys and len(phys): phys = phys[0] else: phys = None old_url = None if provider.photo: old_url = provider.photo.name provider_form = ProviderForm(data=request.POST, files=request.FILES, instance=provider) if (not provider_form.is_valid()): return err_GE031(provider_form) physician_form = None if (phys): physician_form = PhysicianForm(request.POST, instance=phys) if (not physician_form.is_valid()): return err_GE031(physician_form) provider = provider_form.save(commit=False) provider.lat = provider_form.cleaned_data['lat'] provider.longit = provider_form.cleaned_data['longit'] provider.licensure_states = provider_form.cleaned_data['licensure_states'] #add by xlin in 20120611 for issue897 that add city, address, zip into database provider.address1 = provider_form.cleaned_data['address1'] provider.address2 = provider_form.cleaned_data['address2'] provider.city = provider_form.cleaned_data['city'] provider.state = provider_form.cleaned_data['state'] provider.zip = provider_form.cleaned_data['zip'] provider.save() if (physician_form): physician_form.save() new_url = None if provider.photo: new_url = provider.photo.name #thumbnail creating code moved from here to save method of provider mode #use common method to generate ImageHelper.generate_image(old_url, new_url) return HttpJSONSuccessResponse()
def testUpdateRefer(self): provider = Provider(username="******", first_name="upre", last_name="test", office_lat=0.0, office_longit=0.0) provider.set_password("maestro") provider.save() provider2 = Provider(username="******", first_name="doc", last_name="holiday", office_lat=0.0, office_longit=0.0) provider2.set_password("holiday") provider2.save() sender = provider msg = Message(sender=sender, sender_site=None, subject="pandas") msg.urgent = False msg.message_type = 'NM' msg.callback_number = '2561234561' msg.save() body = "i am indeed a talking panda. how are you?" msg_body = MessageBody(message=msg, body=body) msg_body.save() refer = MessageRefer() refer.message = msg refer.first_name = 'msg' refer.middle_name = 'refer' refer.last_name = 'again' refer.gender = 'M' refer.status = 'NO' refer.phone_number = 8529631475 refer.alternative_phone_number = 1472583695 refer.save() msgRe = MessageRecipient() msgRe.message = msg msgRe.user = provider2 msgRe.save() generate_keys_for_users(output=DevNull()) VMBox_Config(owner=provider).save() VMBox_Config(owner=provider2).save() response = self.client.get(reverse( 'MHLogin.api.v1.views_messaging.updateRefer', args=(refer.uuid,)), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code) response = self.client.post(reverse( 'MHLogin.api.v1.views_messaging.updateRefer', args=(refer.uuid,)), \ data={'status': 'NO'}, **self.extra) self.assertEqual(response.status_code, 200, response.status_code) m = json.loads(response.content) self.assertEqual(len(m), 2)
def testGetAttachment(self): sender = self.user msg = Message(sender=sender, sender_site=None, subject="pandas") msg.urgent = False msg.draft = True msg.message_type = 'NM' msg.callback_number = '2561234561' msg.save() # attachment = MessageAttachment() # attachment.size = '12' # attachment.save() # attachment.uuid # response = self.client.get(reverse('MHLogin.api.v1.views_messaging.getAttachment', args=(msg.uuid, msg.uuid)), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code)
def getReferPDFLogic(request, refer_id, ss=None): """ get_refer_pdf :param request: Request info :type request: django.core.handlers.wsgi.WSGIRequest :param refer_id: referall id :type refer_id: uuid :returns: django.http.HttpResponse -- the result in an HttpResonse object """ if (request.method != 'POST'): return err_GE002() form = MsgGetForm(request.POST) if (not form.is_valid()): return err_GE031(form) refer = get_object_or_404(MessageRefer, uuid=refer_id) message = refer.message if ((message.sender and request.user.pk != message.sender.pk) and not ((request.user.pk,) in message.recipients.values_list('id') or (request.user.pk,) in message.ccs.values_list('id'))): return err403(request, err_msg=_("You don't seem to be a valid recipient for this file.")) # special for mobile app api # Get/set up data for KMS. request.session['key'] = request.device_assn.secret try: clearkey = decrypt_cipherkey(request, refer, ss=ss) except KeyInvalidException: return err_GE021() try: response = refer.get_file(request, key=clearkey) return response except Exception as e: err_email_body = '\n'.join([ ('PDF file not exist!'), ''.join(['Server: ', settings.SERVER_ADDRESS]), ''.join(['Session: ', str(request.session.session_key)]), ''.join(['Message: ', (u'PDF file not exist in media/refer/pdf')]), ''.join(['Exception: ', str(e)]), ''.join(['Exception data: ', str(e.args)]), ]) mail_admins(_('PDF folder not exist'), err_email_body) raise Exception(_('A seemingly invalid URL has been stored for Refer Pdf.'))
def testNewTask(self): data = { 'description': 'the test is test newTask', 'due': '20', 'priority': '1' } response = self.client.post( reverse('MHLogin.api.v1.views_followups.newTask'), data, **self.extra) self.assertEqual(response.status_code, 200, response.status_code) msg = json.loads(response.content) self.assertEqual(len(msg), 2) response = self.client.get( reverse('MHLogin.api.v1.views_followups.newTask'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code)
def providerEditProfileLogic(request): if (request.method != 'POST'): return err_GE002() provider = request.role_user phys = Physician.objects.filter(user=provider) if phys and len(phys): phys = phys[0] else: phys = None old_url = None if provider.photo: old_url = provider.photo.name provider_form = ProviderForm(data=request.POST, files=request.FILES, instance=provider) if (not provider_form.is_valid()): return err_GE031(provider_form) physician_form = None if (phys): physician_form = PhysicianForm(request.POST, instance=phys) if (not physician_form.is_valid()): return err_GE031(physician_form) provider = provider_form.save(commit=False) provider.lat = provider_form.cleaned_data['lat'] provider.longit = provider_form.cleaned_data['longit'] provider.licensure_states = provider_form.cleaned_data['licensure_states'] #add by xlin in 20120611 for issue897 that add city, address, zip into database provider.address1 = provider_form.cleaned_data['address1'] provider.address2 = provider_form.cleaned_data['address2'] provider.city = provider_form.cleaned_data['city'] provider.state = provider_form.cleaned_data['state'] provider.zip = provider_form.cleaned_data['zip'] provider.save() if (physician_form): physician_form.save() new_url = None if provider.photo: new_url = provider.photo.name #thumbnail creating code moved from here to save method of provider mode #use common method to generate ImageHelper.generate_image(old_url, new_url) return HttpJSONSuccessResponse()
def testMarkMessageUnread(self): response = self.client.get(reverse( 'MHLogin.api.v1.views_messaging.markMessageUnread'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code) sender = self.user msg = Message(sender=sender, sender_site=None, subject="pandas") msg.urgent = False msg.message_type = 'NM' msg.callback_number = '2561234561' msg.save() message_id = msg.uuid data = {'message_ids': [message_id]} response = self.client.post(reverse( 'MHLogin.api.v1.views_messaging.markMessageUnread'), data, **self.extra) self.assertEqual(response.status_code, 200, response.status_code) msg = json.loads(response.content) self.assertEqual(len(msg), 2)
def getAttachmentLogic(request, message_id, attachment_id, ss=None): if (request.method != 'POST'): return err_GE002() attachment = get_object_or_404(MessageAttachment, message__uuid=message_id, uuid=attachment_id) message = attachment.message if ((message.sender and request.user.pk != message.sender.pk) and not ((request.user.pk, ) in message.recipients.values_list('id') or (request.user.pk, ) in message.ccs.values_list('id'))): return err403( request, err_msg="You don't seem to be a valid recipient for this file.") # Get/set up data for KMS. request.session['key'] = request.device_assn.secret try: clearkey = decrypt_cipherkey(request, attachment, ss=ss) except KeyInvalidException: return err_GE021() url = attachment.decrypt_url(request, key=clearkey) if (url[0:4] == 'file'): response = HttpResponse(content_type=attachment.content_type) attachment.get_file(request, response, key=clearkey) return response elif (url[0:4] == 'http'): # This is likely a fully qualified URL if (not attachment.encrypted): return HttpResponseRedirect(url) else: # Download and decrypt this attachment. pass else: raise Exception('A seemingly invalid URL has been stored: %s, for ' 'MessageAttachment %s.' % ( url, attachment_id, ))
def testPageUser(self): response = self.client.get( reverse('MHLogin.api.v1.views_dcom.pageUser', args=(0,)), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code) response = self.client.post( reverse('MHLogin.api.v1.views_dcom.pageUser', args=(0,)), **self.extra) self.assertEqual(json.loads(response.content)['errno'], 'GE031', response.status_code) data = {'number': '2561234566'} response = self.client.post( reverse('MHLogin.api.v1.views_dcom.pageUser', args=(0,)), data, **self.extra) self.assertEqual(json.loads(response.content)['errno'], 'GE010', response.status_code) provider1 = create_user(get_random_username(), "provider_first", "provider_last", "demo", "555 Bryant St.", "Palo Alto", "CA", "94306", uklass=Provider) provider1.address2 = 'suzhou china' provider1.user.save() provider1.save() response = self.client.post(reverse('MHLogin.api.v1.views_dcom.pageUser', args=(provider1.id,)), data, **self.extra) self.assertEqual(json.loads(response.content)['errno'], 'TE002', response.status_code) provider1.pager = 2561234567 provider1.save() response = self.client.post(reverse('MHLogin.api.v1.views_dcom.pageUser', args=(provider1.id,)), data, **self.extra) self.assertEqual(response.content, HttpJSONSuccessResponse().content, response.status_code) staff1 = create_office_staff(get_random_username(), "staff_first1", "staff_last1", "demo", "suzhou china", "suzhou", "AB", "25011", uklass=OfficeStaff) staff1.save() response = self.client.post(reverse('MHLogin.api.v1.views_dcom.pageUser', args=(staff1.user.id,)), data, **self.extra) self.assertEqual(json.loads(response.content)['errno'], 'TE002', response.status_code) staff1.pager = 2561234568 staff1.save() response = self.client.post(reverse('MHLogin.api.v1.views_dcom.pageUser', args=(staff1.user.id,)), data, **self.extra) self.assertEqual(response.content, HttpJSONSuccessResponse().content, response.status_code)
def updateReferLogic(request, refer_id): """ update_refer :param request: Recipient info :type request: django.core.handlers.wsgi.WSGIRequest :param refer_id: The refferal's id :type refer_id: uuid :returns: { 'data': {}, 'warnings': {}, } """ if (request.method != 'POST'): return err_GE002() form = ReferEditForm(request.POST) if (not form.is_valid()): return err_GE031(form) updateRefer(request, form, refer_id) return HttpJSONSuccessResponse()
def getReceivedMessagesLogic(request, return_python=False): """ Gets a list of the received message headers. If return_python is true, this will just return the object that would have been converted to JSON format. """ if (request.method != 'POST'): return err_GE002() form = MsgListForm(request.POST) if (not form.is_valid()): return err_GE031(form) data = getReceivedMessageListData(request.user, form.cleaned_data) if (return_python): return { 'data': data, 'warnings': {}, } return HttpJSONSuccessResponse(data=data)
def composeReferLogic(request, api_secret=None, ss=None): if (request.method != 'POST'): return err_GE002() form = MessageReferForm(request.POST, request.FILES) if (not form.is_valid()): return err_GE031(form) sender = request.user sender_role_user = request.role_user subject = u'Refer' body = form.cleaned_data['reason_of_refer'] recipients = form.cleaned_data['user_recipients'] attachments = [] if ('attachments' in request.FILES): attachments = request.FILES.getlist('attachments') createNewMessage(request, sender, sender_role_user, recipients, body, ccs=None, subject=subject, uploads=attachments, file_data_list=None, refer_data=form.cleaned_data, api_secret=api_secret, ss=ss) return HttpJSONSuccessResponse()
def updateReferLogic(request, refer_id): """ update_refer :param request: Recipient info :type request: django.core.handlers.wsgi.WSGIRequest :param refer_id: The refferal's id :type refer_id: uuid :returns: { 'data': {}, 'warnings': {}, } """ if (request.method != 'POST'): return err_GE002() form = ReferEditForm(request.POST) if (not form.is_valid()): return err_GE031(form) updateRefer(request, form, refer_id) return HttpJSONSuccessResponse()
def getReceivedMessagesLogic(request, return_python=False): """ Gets a list of the received message headers. If return_python is true, this will just return the object that would have been converted to JSON format. """ if (request.method != 'POST'): return err_GE002() form = MsgListForm(request.POST) if (not form.is_valid()): return err_GE031(form) data = getReceivedMessageListData(request.user, form.cleaned_data) if (return_python): return { 'data': data, 'warnings': {}, } return HttpJSONSuccessResponse(data=data)
def pageUserLogic(request, user_id): if (request.method != 'POST'): return err_GE002() form = PagerNumberForm(request.POST) if (not form.is_valid()): return err_GE031(form) if (not MHLUser.objects.filter(pk=user_id).exists()): return err_GE010() provider = None try: provider = Provider.objects.get(user=user_id) except Provider.DoesNotExist: # This is ok. pass office_staff = None try: office_staff = OfficeStaff.objects.get(user=user_id) except OfficeStaff.DoesNotExist: # this is okay. pass paged = None # The user getting paged. if (provider): paged = provider if (not provider.pager): return err_TE002() elif (office_staff): paged = office_staff if (not office_staff.pager): return err_TE002() else: # Error! User doesn't appear to be a provider or an office staffer. return err_GE010() send_page(request.mhluser, paged, form.cleaned_data['number']) return HttpJSONSuccessResponse()
def testMarkMessageRead(self): response = self.client.get(reverse( 'MHLogin.api.v1.views_messaging.markMessageRead'), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code) self.user = create_user(get_random_username(), "mhluser", "thj", "demo", "555 Bryant St.", "Palo Alto", "CA", "") self.user.mdcom_phone = '9002000001' self.user.save() sender = self.user msg = Message(sender=sender, sender_site=None, subject="pandas") msg.urgent = False msg.message_type = 'NM' msg.callback_number = '2561234561' msg.save() message_id = msg.uuid data = {'message_ids': [message_id]} response = self.client.post(reverse( 'MHLogin.api.v1.views_messaging.markMessageRead'), data, **self.extra) self.assertEqual(response.status_code, 200, response.status_code) msg = json.loads(response.content) self.assertEqual(len(msg), 2)
def testGetMessage(self): sender = self.user msg = Message(sender=sender, sender_site=None, subject="pandas") msg.urgent = False msg.message_type = 'NM' msg.callback_number = '2561234561' msg.save() body = "i am indeed a talking panda. how are you?" msg_body = MessageBody(message=msg, body=body) msg_body.save() msgbus = MessageBodyUserStatus() msgbus.user = self.user msgbus.msg_body = msg_body msgbus.save() self.msgbus = msgbus self.object_type = ContentType.objects.get_for_model(msg_body) self.extra['HTTP_MDCOM_USER_UUID'] = self.user.uuid response = self.client.get(reverse( 'MHLogin.api.v1.views_messaging.getMessage', args=(msg.uuid,)), **self.extra) self.assertEqual(response.content, err_GE002().content, response.status_code)