示例#1
0
def create_message_json(request):
    if request.user.is_authenticated():
        if request.method == 'POST':
            jsonstring = request.POST["message"]
            messageDict = json.loads(jsonstring)
            messageDict["userId"] = request.user.pk
            message = TalkMessage.fromJson(messageDict)

            if "audio" in request.FILES:
                filename = "%s%s.mp4" % (
                    message.author,
                    message.content_timestamp.strftime("%H%M%S"))
                file_content = ContentFile(request.FILES['audio'].read())
                file_format = os.path.splitext(request.FILES['audio'].name)[-1]
                message.audio_file.save(filename, file_content)
            try:
                print message
                message.save()
                print "SAVED"
                message.push_to_phone(False)
                print "PUSHED"
                return HttpResponse(
                    json.dumps({
                        "messageId": "%s" % message.pk,
                        "authorFullname": message.get_author_string(),
                        "audioUrl": message.get_audio_url()
                    }), 200)
            except:

                return HttpResponseServerError(
                )  # TODO: change the tests and here to respond with HttpResponseBadRequest
        else:
            return HttpResponseServerError()
    else:
        return HttpResponseForbidden()
示例#2
0
def create_message_json(request):
    if request.user.is_authenticated():
        if request.method == 'POST':
            jsonstring = request.POST["message"]
            messageDict = json.loads(jsonstring)
            messageDict["userId"] = request.user.pk
            message = TalkMessage.fromJson(messageDict)

            if "audio" in request.FILES:
                filename = "%s%s.mp4" % (message.author, message.content_timestamp.strftime("%H%M%S"))
                file_content = ContentFile(request.FILES['audio'].read())
                _file_format = os.path.splitext(request.FILES['audio'].name)[-1]
                message.audio_file.save(filename, file_content)
            try:
                print message
                message.save()
                print "SAVED"
                message.push_to_phone(False)
                print "PUSHED"
                return HttpResponse(json.dumps(
                        {"messageId": "%s" % message.pk,
                          "authorFullname": message.get_author_string(),
                          "audioUrl": message.get_audio_url()
                        }), 200)
            except:  # pylint: disable=W0702
                return HttpResponseServerError()  # TODO: change the tests and here to respond with HttpResponseBadRequest
        else:
            return HttpResponseServerError()
    else:
        return HttpResponseForbidden()
示例#3
0
    def testEnsureFromJsonCreatesMessage(self):
        #arrange
        now = datetime.now()
        year = now.strftime("%Y")
        month = now.strftime("%m")
        day = now.strftime("%d")
        hour = now.strftime("%H")
        minutes = now.strftime("%H")
        sec = now.strftime("%H")

        timestamp = datetime(int(year), int(month), int(day), int(hour),
                             int(minutes), int(sec))

        message = dict(userId=User.objects.all()[0].pk,
                       content="Sting!!!",
                       contentTimestamp=time.mktime(timestamp.timetuple()) *
                       1000,
                       latitude=1.1,
                       longitude=222.2,
                       accuracy=60)

        audioFile = 'media/geocamTalk/test/%s/%s/%s/test_ensure_from_json.mp4' % (
            year, month, day)
        self._createFile(filename=audioFile, filesize=100 * 1024)
        f = open(audioFile, "rb")
        #act
        talkMessage = TalkMessage.fromJson(message)
        talkMessage.audio_file.save(f.name, ContentFile(f.read()))
        talkMessage.save()

        #assert
        self.assertEqual(talkMessage.author.pk, User.objects.all()[0].pk)
        self.assertEqual(talkMessage.content, "Sting!!!")
        self.assertEqual(talkMessage.content_timestamp, timestamp)
        self.assertEqual(talkMessage.latitude, 1.1)
        self.assertEqual(talkMessage.longitude, 222.2)
        self.assertEqual(talkMessage.accuracy, 60)
        self.assertTrue(talkMessage.has_audio())
        self.assertEqual(os.path.basename(talkMessage.audio_file.name),
                         os.path.basename(f.name))
        f.close()
        self._clean_test_files(audioFile)
示例#4
0
    def testEnsureFromJsonCreatesMessage(self):
        #arrange
        now = datetime.now()
        year = now.strftime("%Y")
        month = now.strftime("%m")
        day = now.strftime("%d")
        hour = now.strftime("%H")
        minutes = now.strftime("%H")
        sec = now.strftime("%H")

        timestamp = datetime(int(year), int(month), int(day), int(hour), int(minutes), int(sec))

        message = dict(
                    userId=User.objects.all()[0].pk,
                    content="Sting!!!",
                    contentTimestamp=time.mktime(timestamp.timetuple()) * 1000,
                    latitude=1.1,
                    longitude=222.2,
                    accuracy=60)

        audioFile = 'media/geocamTalk/test/%s/%s/%s/test_ensure_from_json.mp4' % (year, month, day)
        self._createFile(filename=audioFile, filesize=100 * 1024)
        f = open(audioFile, "rb")
        #act
        talkMessage = TalkMessage.fromJson(message)
        talkMessage.audio_file.save(f.name, ContentFile(f.read()))
        talkMessage.save()

        #assert
        self.assertEqual(talkMessage.author.pk, User.objects.all()[0].pk)
        self.assertEqual(talkMessage.content, "Sting!!!")
        self.assertEqual(talkMessage.content_timestamp, timestamp)
        self.assertEqual(talkMessage.latitude, 1.1)
        self.assertEqual(talkMessage.longitude, 222.2)
        self.assertEqual(talkMessage.accuracy, 60)
        self.assertTrue(talkMessage.has_audio())
        self.assertEqual(os.path.basename(talkMessage.audio_file.name), os.path.basename(f.name))
        f.close()
        self._clean_test_files(audioFile)