def messageList(request): resp = HttpResponse(mimetype="text/xml") # only access cards are searched cards = AccessCard.objects.filter(code=request.GET.get('cardNumber')) if len(cards) != 1: return contract.billingErrorResponse("User card %s unknown" % request.GET.get('cardNumber'), contract.ERROR_NOT_FOUND) doc = ET.Element("messages"); msgList = Message.objects.filter(subscriber=cards[0].subscriber) for m in msgList: mX = ET.Element("message") mX.attrib['id'] = "%d" % m.id mX.attrib['date'] = asctime(m.sendDate.timetuple()) mX.attrib['read'] = "%s" % isMessageRead(m.readDate) if m.urgent : mX.attrib['type'] = 'urgent' else: mX.attrib['type'] = 'info' subjX = ET.Element("subject") subjX.text = m.subject mX.append(subjX) doc.append(mX) return HttpResponse(ET.tostring(doc, encoding='utf-8'))
def messageRead(request): try: msg = Message.objects.get(id=int(request.GET.get('msgID')), subscriber__accesscard__code=request.GET.get('cardNumber')) except Exception as e: return contract.billingErrorResponse(e.__unicode__(), contract.ERROR_NOT_FOUND) msg.readDate = date.today(); msg.save() return HttpResponse("<ok/>")
def messageView(request): try: msg = Message.objects.get(id=int(request.GET.get('msgID')), subscriber__accesscard__code=request.GET.get('cardNumber')) except Exception as e: return contract.billingErrorResponse(e.__unicode__(), contract.ERROR_NOT_FOUND) msgML = ET.Element("message") msgML.attrib['id'] = "%d" % msg.id msgML.attrib['date'] = asctime(msg.sendDate.timetuple()) msgML.attrib['read'] = "%s" % isMessageRead(msg.readDate) if msg.urgent : msgML.attrib['type'] = 'urgent' else: msgML.attrib['type'] = 'info' ET.SubElement(msgML, "subject").text = msg.subject ET.SubElement(msgML, "text").text=msg.text if msg.imageUrl != None and msg.imageUrl != '': ET.SubElement(msgML, "img").attrib['url'] = msg.imageUrl return HttpResponse(ET.tostring(msgML, encoding='utf-8'))