Пример #1
0
def RestBeneficiary(request, id):
	try:
		vaccine_benef = VaccinationBeneficiary.objects.get(BeneficiaryId=id)
	except ObjectDoesNotExist:
		return HttpResponseBadRequest('Vaccination Beneficiary ID is not correct')

	if request.method == 'GET':
		return HttpResponse(json.dumps(vaccine_benef.json()), mimetype="application/json")
	elif request.method == 'POST':
		req = request.POST
		name = req.get('name')
		notif_num = req.get('notif_num')
		dob = req.get('dob')
		sex = req.get('sex')
		gaurdian_name = req.get('gaurdian_name')
		language = req.get('language')
		hw_num = req.get('hw_num')
		is_verified = req.get('is_verified')
		
		if name is not None: vaccine_benef.ChildName = name
		if dob is not None:
			dob = dateutil.parser.parse(dob).date()
			vaccine_benef.Dob = dob
		if notif_num is not None: vaccine_benef.NotifyNumber = notif_num
		if sex is not None: vaccine_benef.Sex = sex
		if gaurdian_name is not None: vaccine_benef.Gaurdian_name = gaurdian_name
		if language is not None: vaccine_benef.Language = language
		if is_verified is not None: vaccine_benef.isVerified = is_verified

		if hw_num is not None:
			hw = None
			try:
				hw = HealthWorker.objects.get(phone=hw_num)
			except ObjectDoesNotExist:
				hw = HealthWorker(phone=hw_num, username=hw_num, password= "******")
				hw.save()
			vaccine_benef.health_worker = hw
		
		vaccine_benef.ModifiedOn = utcnow_aware()

		vaccine_benef.save()
		return HttpResponse( json.dumps(vaccine_benef.json()), mimetype="application/json")
	elif request.method == 'DELETE':
		vaccine_benef.delete()
		return HttpResponse("Beneficiary deleted")
	return HttpResponseBadRequest('Unknown http request type') 
Пример #2
0
def RestBeneficiaryList(request):
	if request.method == 'GET':
		name = request.GET.get('name')
		notif_num = request.GET.get('notif_num')
		dob = request.GET.get('dob')
		sex = request.GET.get('sex')
		gaurdian_name = request.GET.get('gaurdian_name')
		language = request.GET.get('language')
		hw_num = request.GET.get('hw_num')
		is_verified = request.GET.get('is_verified')

		filter_set ={}

		if name is not None: filter_set['ChildName'] = name
		if dob is not None:
			dob = dateutil.parser.parse(dob).date()
			filter_set['Dob'] = dob
		if notif_num is not None: filter_set['NotifyNumber'] = notif_num
		if sex is not None: filter_set['Sex'] = sex
		if gaurdian_name is not None: filter_set['Gaurdian_name']= gaurdian_name
		if language is not None: filter_set['Language'] = language
		if is_verified is not None: filter_set['isVerified'] = is_verified 

		if hw_num is not None:
			hw = None
			try:
				hw = HealthWorker.objects.get(phone=hw_num)
			except ObjectDoesNotExist:
				hw = HealthWorker(phone=hw_num, username=hw_num, password= "******")
				hw.save()
			filter_set['health_worker'] = hw
		
		beneficiaries = VaccinationBeneficiary.objects.all()
		for k, v in filter_set.items():
			if v:
				beneficiaries = beneficiaries.filter(**{k: v})

		ret_val = [record.json() for record in beneficiaries]
		return HttpResponse(json.dumps(ret_val), mimetype="application/json")
	elif request.method == 'POST':
		name = request.POST.get('name')
		notif_num = request.POST.get('notif_num')
		dob = request.POST.get('dob')
		sex = request.POST.get('sex')
		gaurdian_name = request.POST.get('gaurdian_name')
		language = request.POST.get('language')
		hw_num = request.POST.get('hw_num')

		if name is not None and dob is not None and notif_num is not None:
			dob = dateutil.parser.parse(dob).date()
			
			beneficiaries = VaccinationBeneficiary.objects.filter(NotifyNumber = notif_num, Dob=dob) 
			if beneficiaries.count() > 0:
				return HttpResponse( json.dumps(beneficiaries[0].json()), mimetype="application/json")
			
			benef_post = VaccinationBeneficiary(ChildName=name, Dob=dob)
			if notif_num is not None: benef_post.NotifyNumber = notif_num
			if sex is not None: benef_post.Sex = sex
			if gaurdian_name is not None: benef_post.Gaurdian_name = gaurdian_name
			if language is not None: benef_post.Language = language
			
			if hw_num is not None:
				hw = None
				try:
					hw = HealthWorker.objects.get(phone=hw_num)
				except ObjectDoesNotExist:
					hw = HealthWorker(phone=hw_num, username=hw_num, password= "******")
					hw.save()
				benef_post.health_worker = hw
			benef_post.isVerified = False
			benef_post.VerificationCode = randint(1000, 9999)
			benef_post.CreatedOn = utcnow_aware()
			benef_post.ModifiedOn = utcnow_aware()
			benef_post.BeneficiaryId = get_a_Uuid()

			benef_post.save()
			platform = sys.platform

			generate_schedule(benef_post.BeneficiaryId)
			welcome_msg_id = 'VAC_WELCOME'
			if platform == 'linux2':
				result = send_instant_msg.delay(benef_post.NotifyNumber, welcome_msg_id)
			else:
				result = send_instant_msg(benef_post.NotifyNumber, welcome_msg_id)
			return HttpResponse( json.dumps(benef_post.json()), mimetype="application/json")
		else:
			return HttpResponseBadRequest('Name or DOB cannot be empty while adding a value')
	return HttpResponseBadRequest('Unsupported HTTP request type for this URL')