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
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'
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')
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'
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'
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),
class SimpleOrgunitSoapModel(ComplexModel): __namespace__ = NAMESPACE __type_name__ = "simpleOrgunit" code = primitive.Unicode(sub_name='code', min_occurs=1, nillable=False)
# 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)