Example #1
0
def _process_item(v):
    """This function maps sqlalchemy types to spyne types."""

    rpc_type = None
    if isinstance(v, Column):
        if isinstance(v.type, sqlalchemy.Enum):
            if v.type.convert_unicode:
                rpc_type = primitive.Unicode(values=v.type.enums)
            else:
                rpc_type = primitive.String(values=v.type.enums)

        elif v.type in _type_map:
            rpc_type = _type_map[v.type]

        elif type(v.type) in _type_map:
            rpc_type = _type_map[type(v.type)]

        else:
            raise Exception("soap_type was not found. maybe _type_map needs a "
                            "new entry. %r" % v)

    elif isinstance(v, RelationshipProperty):
        v.enable_typechecks = False
        # FIXME: Distinguish between *ToMany and *ToOne relationship.
        # rpc_type = v.argument
        rpc_type = Array(v.argument)

    return rpc_type
Example #2
0
class UserExtSoapModel(ComplexModel):
    __namespace__ = NAMESPACE
    __type_name__ = "user_ext"

    username = primitive.Unicode(sub_name='username',
                                 min_occurs=1,
                                 nillable=False)
    email = primitive.Unicode(sub_name='email', min_occurs=1, nillable=False)
    first_name = primitive.Unicode(sub_name='firstName',
                                   min_occurs=1,
                                   nillable=False)
    last_name = primitive.Unicode(sub_name='lastName',
                                  min_occurs=1,
                                  nillable=False)
    is_active = primitive.Boolean(sub_name='isActive',
                                  min_occurs=1,
                                  nillable=False)

    class Attributes(ComplexModel.Attributes):
        declare_order = 'declared'
Example #3
0
class ComplexOutsourcingRequestSoapModel(ComplexModel):
    __namespace__ = NAMESPACE
    __type_name__ = 'outsourcingComplex'

    guid = primitive.Uuid(sub_name='guid')
    start = primitive.Date(sub_name='start')
    end = primitive.Date(sub_name='end')
    organization = OrganizationSoapModel
    agency = AgencySoapModel
    state = primitive.Unicode(sub_name='state')
    shifts = Array(ShiftSoapModel, sub_name='shifts')
Example #4
0
class EmployeeEventSoapModel(ComplexModel):
    __namespace__ = NAMESPACE
    __type_name__ = "event"

    guid = primitive.Uuid(sub_name='guid')
    dt_created = primitive.DateTime(sub_name='created')
    headquater = HeadquaterSoapModel
    organization = OrganizationSoapModel
    agency = AgencyEventSoapModel.customize(sub_name='agency')
    agency_employee = EmployeeExtSoapModel.customize(sub_name='employee')
    ext_number = primitive.Unicode(sub_name='externalNumber')
    user = UserSoapModel
    kind = primitive.Unicode(sub_name='kind')
    recruitment_date = primitive.Date(sub_name='recruitmentDate')
    dismissal_date = primitive.Date(sub_name='dismissalDate')
    dismissal_reason = primitive.Unicode(sub_name='dismissalReason')
    answer_received = primitive.Boolean(sub_name='answerReceived')
    blacklist = primitive.Boolean(sub_name='blacklist')

    class Attributes(ComplexModel.Attributes):
        declare_order = 'declared'
Example #5
0
class EmployeeExtSoapModel(ComplexModel):
    __namespace__ = NAMESPACE
    __type_name__ = "employee_ext"

    number = primitive.Unicode(sub_name='number')
    firstname = primitive.Unicode(sub_name='firstname')
    surname = primitive.Unicode(sub_name='surname')
    patronymic = primitive.Unicode(sub_name='patronymic')
    gender = primitive.Unicode(sub_name='gender')
    date_of_birth = primitive.Date(sub_name='dateOfBirth')
    place_of_birth = primitive.Unicode(sub_name='placeOfBirth')
    receipt = primitive.Date(sub_name='receipt')
    dismissal = primitive.Date(sub_name='dismissal')
    documents = Array(DocumentSoapModel, sub_name='documents')

    class Attributes(ComplexModel.Attributes):
        declare_order = 'declared'
Example #6
0
    till = len(pattern)

    if pattern.startswith('^'):
        start = 1

    if pattern.endswith('$'):
        till -= 1

    return pattern[start:till]


DEFAULT_FIELD_MAP = (
    ('AutoField', primitive.Integer32),
    ('CharField', primitive.NormalizedString),
    ('SlugField',
     primitive.Unicode(type_name='Slug',
                       pattern=strip_regex_metachars(slug_re.pattern))),
    ('TextField', primitive.Unicode),
    ('EmailField',
     primitive.Unicode(type_name='Email',
                       pattern=strip_regex_metachars(email_re.pattern))),
    ('CommaSeparatedIntegerField',
     primitive.Unicode(type_name='CommaSeparatedField',
                       pattern=strip_regex_metachars(
                           comma_separated_int_list_re.pattern))),
    ('UrlField',
     primitive.AnyUri(type_name='Url',
                      pattern=strip_regex_metachars(
                          URLValidator.regex.pattern))),
    ('FilePathField', primitive.Unicode),
    ('BooleanField', primitive.Boolean),
    ('NullBooleanField', primitive.Boolean),
Example #7
0
class SimpleOrgunitSoapModel(ComplexModel):
    __namespace__ = NAMESPACE
    __type_name__ = "simpleOrgunit"

    code = primitive.Unicode(sub_name='code', min_occurs=1, nillable=False)
Example #8
0
#

from spyne.model import primitive, complex
from spyne.model.complex import ComplexModel, Array
from spyne.util.odict import odict

NAMESPACE = "http://outsourcing.verme.ru/api/soap"

od = odict()
od['login'] = primitive.Mandatory.String
od['password'] = primitive.Mandatory.String

AuthDataHeader = ComplexModel.produce(NAMESPACE, 'authData', od)

od = odict()
od['code'] = primitive.Unicode(sub_name='code', min_occurs=1, nillable=False)
AgencySoapModel = ComplexModel.produce(NAMESPACE, 'agency', od)

od = odict()
od['code'] = primitive.Unicode(sub_name='code', min_occurs=1, nillable=False)
od['party'] = primitive.Unicode(sub_name='party', min_occurs=1, nillable=False)
AgencyEventSoapModel = ComplexModel.produce(NAMESPACE, 'agency_event', od)

od = odict()
od['code'] = primitive.Unicode(sub_name='code', min_occurs=1, nillable=False)
OrganizationSoapModel = ComplexModel.produce(NAMESPACE, 'organization', od)

od = odict()
od['code'] = primitive.Unicode(sub_name='code')
JobSoapModel = ComplexModel.produce(NAMESPACE, 'job', od)