view idavoll/xmpp_error.py @ 156:6250905b72f6

Fix spacing errors. Do 0.5.0 release.
author Ralph Meijer <ralphm@ik.nu>
date Mon, 28 Aug 2006 12:44:20 +0000
parents 5191ba7c4df8
children
line wrap: on
line source

# Copyright (c) 2003-2006 Ralph Meijer
# See LICENSE for details.

NS_XMPP_STANZAS = "urn:ietf:params:xml:ns:xmpp-stanzas"

conditions = {
    'bad-request':              {'code': '400', 'type': 'modify'},
    'not-authorized':           {'code': '401', 'type': 'cancel'},
    'item-not-found':           {'code': '404', 'type': 'cancel'},
    'not-acceptable':           {'code': '406', 'type': 'modify'},
    'conflict':                 {'code': '409', 'type': 'cancel'},
    'internal-server-error':    {'code': '500', 'type': 'wait'},
    'feature-not-implemented':  {'code': '501', 'type': 'cancel'},
    'service-unavailable':      {'code': '503', 'type': 'cancel'},
}

def error_from_iq(iq, condition, text = '', type = None):
    iq.swapAttributeValues("to", "from")
    iq["type"] = 'error'
    e = iq.addElement("error")

    c = e.addElement((NS_XMPP_STANZAS, condition), NS_XMPP_STANZAS)

    if type == None:
        type = conditions[condition]['type']

    code = conditions[condition]['code']

    e["code"] = code
    e["type"] = type

    if text:
        t = e.addElement((NS_XMPP_STANZAS, "text"), NS_XMPP_STANZAS, text)

    return iq