/
home
/
liman
/
liman-backend
/
utility
/
messenger
/
File Upload :
llllll
Current File: //home/liman/liman-backend/utility/messenger/views.py
import json import urllib.request from django.http import HttpResponse from rest_framework.decorators import api_view, permission_classes from config import Config from utility.messenger.Messenger import Messenger from rest_framework.response import Response from rest_framework import status from datetime import datetime, timedelta from permissions.permissions import PermissionLevel from limanAuth.models import User @api_view(["POST"]) @permission_classes([PermissionLevel]) def send_public_notification(request): request_data = json.loads(request.body) try: users = User.objects.all() result = Messenger.send_public_notification( users=users, message=request_data['message'] if 'message' in request_data else None, title=request_data['title'] if 'title' in request_data else None, data=request_data['data'] if 'data' in request_data else None) if result: return HttpResponse(content='message send successfully.', status=200) else: return HttpResponse(content='message Not Send successfully.', status=200) except Exception as e: print("Error :", str(e)) return HttpResponse(content=str(e), status=500) @api_view(["POST"]) @permission_classes([PermissionLevel]) def send_private_notification(request): request_data = json.loads(request.body) try: user = User.objects.get(pk=request_data['user_id']) result = Messenger.send_private_notification_to_user( user=user, title=request_data['title'] if 'title' in request_data else None, message=request_data['message'] if 'message' in request_data else None, data=request_data['data'] if 'data' in request_data else None, ) if result: return HttpResponse(content='message send successfully.', status=200) else: return HttpResponse(content='message Not send.', status=422) except Exception as e: print("Error :", str(e)) return HttpResponse(content=str(e), status=500) @api_view(["POST"]) @permission_classes([PermissionLevel]) def send_email(request): input_data = ['address', 'title', 'messagePlainTextPart', 'messageHtmlPart', 'senderEmail', 'attachments'] request_data = {key: value for (key, value) in request.bodyDict.items() if key in input_data} try: attachment = [] for file in request_data['attachments']: with urllib.request.urlopen(file['url']) as url: a = Messenger.EmailAttachment(url.read(), file['name']) attachment.append(a) result = Messenger.send_email_to_email_address( address=request_data['address'] if 'address' in request_data else None, title=request_data['title'] if 'title' in request_data else None, message_plain_text_part=request_data[ 'messagePlainTextPart'] if 'messagePlainTextPart' in request_data else None, message_html_part=request_data['messageHtmlPart'] if 'messageHtmlPart' in request_data else None, sender_email=request_data['senderEmail'] if 'senderEmail' in request_data else None, attachments=attachment, ) if result: return HttpResponse(content='message send successfully.', status=200) except Exception as e: print("Error :", str(e)) return HttpResponse(content=str(e), status=500) @api_view(["POST"]) @permission_classes([PermissionLevel]) def send_sms(request): _inp = request.bodyDict try: args = dict(phone_number=_inp['phone_number'] if 'phone_number' in _inp else None, message=_inp['message'] if 'message' in _inp else None, country_prefix=_inp['country_prefix'] if 'country_prefix' in _inp else "98", pattern=_inp['pattern'] if 'pattern' in _inp else None, tokens=_inp['tokens'] if 'tokens' in _inp else None, driver=_inp['driver'] if 'driver' in _inp else Config.SMS.DRIVERS['ACTIVE']) if 'delay' in _inp and _inp['delay']: Messenger.send_sms_to_phone_number.apply_async( eta=datetime.utcnow() + timedelta(seconds=int(_inp['delay'])), kwargs=args) else: Messenger.send_sms_to_phone_number.delay(**args) return HttpResponse(status=200) except Exception as e: print("Error :", str(e)) return HttpResponse(content=str(e), status=422) @api_view(["POST"]) @permission_classes([PermissionLevel]) def send_group_sms(request): try: _inp = request.bodyDict i = 0 pattern = _inp['pattern'] if 'pattern' in _inp else None for key, value in _inp['messages'].items(): i += 3 if pattern: Messenger.send_sms_to_phone_number.apply_async(eta=datetime.now() + timedelta(seconds=i), kwargs=dict(phone_number=key, pattern=_inp['pattern'], tokens=value, driver=_inp['driver'])) else: msg = _inp['message'].format(**value) Messenger.send_sms_to_phone_number.apply_async(eta=datetime.now() + timedelta(seconds=i), kwargs=dict(phone_number=key, driver=_inp['driver'], message=msg)) return Response(status=status.HTTP_200_OK) except Exception as e: return Response(data=str(e), status=status.HTTP_422_UNPROCESSABLE_ENTITY)
Copyright ©2k19 -
Hexid
|
Tex7ure