def setUp(self): self.user1 = User.objects.create_user( 'bertie', '*****@*****.**', 'bertword') self.user1.is_active = True self.user1.save() self.user2 = User.objects.create_user('dave', '*****@*****.**', 'dave') self.user2.is_active = True self.user2.save() self.user3 = User.objects.create_user( 'Chuck Norris', '*****@*****.**', 'dontask') self.user3.is_active = True self.user3.save() self.course1 = Course(**course1_data) self.course1.organiser = self.user1 self.course1.instructor = self.user1 self.course1.save() self.uc = UserCourse(course=self.course1, user=self.user2) self.uc.save() self.lesson1 = Lesson(name="Test Lesson 1", course = self.course1) self.lesson1.save() #att1 attached to course self.att1 = Attachment(course=self.course1, **self.att1_data) self.att1.save() #att2 attached to lesson self.att2 = Attachment(lesson=self.lesson1, **self.att1_data) self.att2.save() with open('media/attachments/empty_attachment_test.txt', 'w') as f: f.write('test')
def attachments_upload(self, request, obj): obj = obj or self.get_upload_session(request, create=True) if 'attachment' in request.FILES: attachment = Attachment(attachment=request.FILES['attachment'], content_object=obj) attachment.save() return self.attachments_list(request, obj)
def create_message(request): token = request.headers.get('Authorization')[6:] form = MessageForm(request.POST, request.FILES) if form.is_valid(): # print(request.POST, request.FILES) data = request.POST my_id = Token.objects.filter(key=token).values('user_id')[0]['user_id'] message = Message(chat_id=data['chat_id'], user_id=my_id, content=data['content']) session = boto3.Session() s3_client = session.client(service_name='s3', endpoint_url='http://hb.bizmrg.com', aws_access_key_id='ns3JMEzqS7GkxRcCuvRDVh', aws_secret_access_key='8DvkXKZkUdebaEkBfnyGKhJBZaMaW4ybJdxwiN2WzeEv') if request.POST['attachment_type'] == 'null': print('without attachment') message.save() return JsonResponse({'Result':'Message created without attachment'}) elif request.POST['attachment_type'] == 'images': print('with images') message.save() uploaded_file = request.FILES.getlist('media') for file in uploaded_file: print(file) url_location = 'attachments/chat' + data['chat_id'] + '/' + data['attachment_type'] + '/' + file.name + '-' + str(hash(file)) s3_client.put_object(Bucket='z3hdro_messenger', Key=url_location, Body = file) attach = Attachment(chat_id=data['chat_id'], user_id=my_id, message_id=message.id, type_attachment=data['attachment_type'], url = url_location) attach.save() return JsonResponse({'Result':'Message created with image attachment'}) elif request.POST['attachment_type'] == 'audio_message': print('with audio') message.save() uploaded_file = request.FILES['media'] url_location = 'attachments/chat' + data['chat_id'] + '/' + data['attachment_type'] + '/' + 'audio-' + str(hash(uploaded_file)) s3_client.put_object(Bucket='z3hdro_messenger', Key=url_location, Body = uploaded_file) attach = Attachment(chat_id=data['chat_id'], user_id=my_id, message_id=message.id, type_attachment=data['attachment_type'], url = url_location) attach.save() return JsonResponse({'Result':'Message created with audiorecord attachment'}) elif request.POST['attachment_type'] == 'geolocation': print('with geolocation') message.save() attach = Attachment(chat_id=data['chat_id'], user_id=my_id, message_id=message.id, type_attachment=data['attachment_type'], url = data['geolocation_url']) attach.save() return JsonResponse({'Result':'Message created with geolocation'}) return JsonResponse({'error':'unexpected bug'}, status=400) return JsonResponse({'error': form.errors}, status=400, json_dumps_params={'ensure_ascii': False})