def deleteuserpayment(request): if request.is_ajax(): if request.method == 'POST': txtmessage = '' try: json_data = json.loads(request.body) if json_data['txtmessage']: txtmessage = json_data['txtmessage'] userpayment_id = json_data['userpayment_id'] registro = UserPayment.objects.get( user_payment_id=userpayment_id) registro.message = txtmessage registro.enabled = False registro.status = 'CA' registro.channel = 'X' registro.save() # Envio envento a intercom ep = Setting.get_var('intercom_endpoint') token = Setting.get_var('intercom_token') try: intercom = Intercom(ep, token) reply = intercom.submitEvent( registro.user.user_id, registro.user.email, "cancelled-sub", { "event_description": "recurrencia cancelada por el administrador" }) if not reply: registro.message = "Intercom error: cannot post the event" registro.save() except Exception as e: registro.message = "Intercom error: %s" % str(e) registro.save() return JsonResponse({'message': 'activado correctamente'}, status=200) except Exception as e: return JsonResponse( { 'message': 'Hubo un error', 'data': e.message }, status=500) return JsonResponse({ 'message': 'Metodo no permitido', 'data': '' }, status=500)
def expireuser(request): if request.is_ajax(): if request.method == 'GET': fecha = datetime.today() if request.method == 'POST': try: json_data = json.loads(request.body) user_id = json_data['user_id'] user = User.objects.get(user_id=user_id) fecha = datetime.today() d = timedelta(days=1) fecha -= d user.expiration = fecha user.save() # Envio envento a intercom ep = Setting.get_var('intercom_endpoint') token = Setting.get_var('intercom_token') try: intercom = Intercom(ep, token) metadata = { "event_description": "usuario expirado por el administrador", "expire_at": str(int(mktime(user.expiration.timetuple()))) } reply = intercom.submitEvent(user.user_id, user.email, "user_expired", metadata) except Exception as e: pass return JsonResponse( { 'message': 'Guardado correctamente', 'data': fecha }, status=200) except Exception as e: return JsonResponse( { 'message': 'Hubo un error', 'data': e.message }, status=500) return JsonResponse({ 'message': 'Metodo no permitido', 'data': '' }, status=500)
def setUp(self): self.intercom = Intercom(file_path=file_path) self.intercom.customers = { '1': { "latitude": "53.339428", "name": "Christina McArdle", "longitude": "-6.257664" }, '2': { "latitude": "54.339428", "name": "Christina McArdle", "longitude": "-6.257664" } }
def activateuser(request): if request.is_ajax(): if request.method == 'POST': try: json_data = json.loads(request.body) user_id = json_data['user_id'] days = json_data['days'] user = User.objects.get(user_id=user_id) # Sumar la cantidad de dias a hoy date = user.enable_for(days) # Envio evento a intercom ep = Setting.get_var('intercom_endpoint') token = Setting.get_var('intercom_token') try: intercom = Intercom(ep, token) metadata = { 'event_description': 'usuario activado por el administrador', 'expire_at': str(int(mktime(date.timetuple()))) } reply = intercom.submitEvent(user.user_id, user.email, 'user_activated', metadata) except Exception as e: pass return JsonResponse({'message': 'activado correctamente'}, status=200) except Exception as e: return JsonResponse( { 'message': 'Hubo un error', 'data': e.message }, status=500) return JsonResponse({ 'message': 'Metodo no permitido', 'data': '' }, status=500)
def __callback_paymentez_proc(data, country): # Verifico el stoken if not __validate_stoken(data, country): body = {"status": "error", "message": "not authorized"} return HttpResponse(json.dumps(body), content_type="application/json", status=200) # Obtengo los valores segun la respuesta de Paymentez pr = paymentez_translator(data) # Obtengo el PaymentHistory con el dev_reference informado try: ph = PaymentHistory.objects.get( payment_id=data["transaction"]["dev_reference"]) except ObjectDoesNotExist: body = {"status": "error", "message": "invalid dev_refence"} return HttpResponse(json.dumps(body), content_type="application/json", status=200) # Verifico que este en Waiting Callback if ph.status == 'W' or (ph.status == 'A' and pr["ph_status"] == 'C'): # Seteo los valores de la UserPayment ph.user_payment.status = pr["up_status"] ph.user_payment.message = pr["up_message"] ph.user_payment.enabled = pr["up_recurrence"] if ph.user_payment.status == 'AC': # calcular next_payment_day ph.user_payment.payment_date = ph.user_payment.calc_payment_date() # Fija la fecha de expiration del usuario ph.user_payment.user.set_expiration(ph.user_payment.payment_date) if ph.user_payment.disc_counter > 0: ph.user_payment.disc_counter = ph.user_payment.disc_counter - 1 else: ph.user_payment.channel = 'C' ph.user_payment.save() # Seteo los valores del PaymentHistory ph.status = pr["ph_status"] ph.gateway_id = pr["ph_gatewayid"] ph.message = pr["ph_message"] ph.save() if pr["user_expire"]: ph.user_payment.user.expire() if pr["intercom"]["action"]: ep = Setting.get_var('intercom_endpoint') token = Setting.get_var('intercom_token') try: intercom = Intercom(ep, token) reply = intercom.submitEvent( ph.user_payment.user.user_id, ph.user_payment.user.email, pr["intercom"]["event"], paymentez_intercom_metadata(data['transaction'])) if not reply: ph.message = "%s - Intercom error: cannot post the event" % ( ph.message) ph.save() except Exception as e: ph.message = "%s - Intercom error: %s" % (ph.message, str(e)) ph.save() else: body = { "status": "error", "message": "ignoring callback: PH status %s" % ph.status } return HttpResponse(json.dumps(body), content_type="application/json", status=200) body = {'status': 'success', 'message': ''} return HttpResponse(json.dumps(body), content_type="application/json", status=200)
#!/usr/bin/env python3 import bot as chat_bot from intercom import Intercom import logging from facerecognition import FaceRecognition import nodered import subprocess from sys import platform import audio icom = Intercom() facerec = FaceRecognition() doorBellServer = nodered.NodeRedDoorbellServerThread(icom) doorBellServer.start() if platform == "linux" or platform == "linux2": # linux print("Starting PulseAudio") subprocess.call(["pulseaudio", "-D"]) def onBellPressed(): if chat_bot.chat_id is None: logging.warning('Bell is pressed but we have no user in the chat') else: process = audio.playAudioFileAsync(audio.DOORBELL_AUDIO_FILE) chat_bot.verify_image(chat_bot.updater, icom.takePicture()) process.terminate()