Source code for aioxmpp.ibr.xso

########################################################################
# File name: xso.py
# This file is part of: aioxmpp
#
# LICENSE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program.  If not, see
# <http://www.gnu.org/licenses/>.
#
########################################################################
import aioxmpp
import aioxmpp.xso as xso

from aioxmpp.utils import namespaces

namespaces.xep0077_in_band = "jabber:iq:register"


[docs]@aioxmpp.IQ.as_payload_class class Query(xso.XSO): """ :xep:`077` In-Band Registraion query :class:`~aioxmpp.xso.XSO`. It has the following fields described in the XEP document: .. attribute:: username .. attribute:: nick .. attribute:: password .. attribute:: name .. attribute:: first .. attribute:: last .. attribute:: email .. attribute:: address .. attribute:: city .. attribute:: state .. attribute:: zip .. attribute:: phone .. attribute:: url .. attribute:: date .. attribute:: misc .. attribute:: text .. attribute:: key .. attribute:: registered .. attribute:: remove """ TAG = (namespaces.xep0077_in_band, "query") username = xso.ChildText( (namespaces.xep0077_in_band, "username"), default=None, ) instructions = xso.ChildText( (namespaces.xep0077_in_band, "instructions"), default=None, ) nick = xso.ChildText( (namespaces.xep0077_in_band, "nick"), default=None, ) password = xso.ChildText( (namespaces.xep0077_in_band, "password"), default=None, ) name = xso.ChildText( (namespaces.xep0077_in_band, "name"), default=None, ) first = xso.ChildText( (namespaces.xep0077_in_band, "first"), default=None, ) last = xso.ChildText( (namespaces.xep0077_in_band, "last"), default=None, ) email = xso.ChildText( (namespaces.xep0077_in_band, "email"), default=None, ) address = xso.ChildText( (namespaces.xep0077_in_band, "address"), default=None, ) city = xso.ChildText( (namespaces.xep0077_in_band, "city"), default=None, ) state = xso.ChildText( (namespaces.xep0077_in_band, "state"), default=None, ) zip = xso.ChildText( (namespaces.xep0077_in_band, "zip"), default=None, ) phone = xso.ChildText( (namespaces.xep0077_in_band, "phone"), default=None, ) url = xso.ChildText( (namespaces.xep0077_in_band, "url"), default=None, ) date = xso.ChildText( (namespaces.xep0077_in_band, "date"), default=None, ) misc = xso.ChildText( (namespaces.xep0077_in_band, "misc"), default=None, ) text = xso.ChildText( (namespaces.xep0077_in_band, "text"), default=None, ) key = xso.ChildText( (namespaces.xep0077_in_band, "key"), default=None, ) registered = xso.ChildFlag( (namespaces.xep0077_in_band, "registered") ) remove = xso.ChildFlag( (namespaces.xep0077_in_band, "remove") ) def __init__(self, username=None, password=None, aux_fields=None): """ Get an xso.Query object with the info provided in he parameters. :param username: Username of the query :type username: :class:`str` :param password: Password of the query. :type password: :class:`str` :param aux_fields: Auxiliary fields in case additional info is needed. :type aux_fields: :class:`dict` :return: :class:`xso.Query` """ self.username = username self.password = password if aux_fields is not None: for key, value in aux_fields.items(): setattr(self, key, value)