Exemple #1
0
class AnnotationSchema(BaseAnnotationSchema):
    required = fields.Boolean(default=False)
    ignore = fields.Boolean(default=False)
    ignore_beneath = fields.Boolean(default=False)
    variant = fields.Integer(default=False)
    slice = fields.List(fields.Integer())
    pre_text = fields.Str()
    post_text = fields.Str()
    selection_mode = fields.Str()

    field = fields.Relationship(
        related_url='/api/projects/{project_id}/schemas/{schema_id}/fields/'
        '{field_id}',
        related_url_kwargs={
            'project_id': '<project_id>',
            'schema_id': '<schema_id>',
            'field_id': '<field.id>'
        },
        type_='fields',
        include_resource_linkage=True)
    extractors = fields.Relationship(
        related_url='/api/projects/{project_id}/extractors',
        related_url_kwargs={'project_id': '<project_id>'},
        many=True,
        include_resource_linkage=True,
        type_='extractors')

    class Meta:
        type_ = 'annotations'
Exemple #2
0
class CustomFormSchema(SoftDeletionSchema):
    """
    API Schema for Custom Forms database model
    """
    class Meta:
        """
        Meta class for CustomForm Schema
        """
        type_ = 'custom-form'
        self_view = 'v1.custom_form_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Integer(dump_only=True)
    field_identifier = fields.Str(required=True)
    form = fields.Str(required=True)
    type = fields.Str(default="text", validate=validate.OneOf(
        choices=["text", "checkbox", "select", "file", "image", "email",
                 "number"]))
    description = fields.Str(allow_none=True)
    is_required = fields.Boolean(default=False)
    is_included = fields.Boolean(default=False)
    is_complex = fields.Boolean(default=False)
    is_fixed = fields.Boolean(default=False)
    event = Relationship(attribute='event',
                         self_view='v1.custom_form_event',
                         self_view_kwargs={'id': '<id>'},
                         related_view='v1.event_detail',
                         related_view_kwargs={'custom_form_id': '<id>'},
                         schema='EventSchemaPublic',
                         type_='event')
Exemple #3
0
class TaxSchema(Schema):
    class Meta:
        type_ = 'tax'
        self_view = 'v1.tax_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Str(dump_only=True)
    country = fields.Str(allow_none=True)
    name = fields.Str(required=True)
    rate = fields.Float(validate=lambda n: 0 <= n <= 100, required=True)
    tax_id = fields.Str(required=True)
    should_send_invoice = fields.Boolean(default=False)
    registered_company = fields.Str(allow_none=True)
    address = fields.Str(allow_none=True)
    city = fields.Str(allow_none=True)
    state = fields.Str(allow_none=True)
    zip = fields.Integer(allow_none=True)
    invoice_footer = fields.Str(allow_none=True)
    is_tax_included_in_price = fields.Boolean(default=False)
    event = Relationship(attribute='event',
                         self_view='v1.tax_event',
                         self_view_kwargs={'id': '<id>'},
                         related_view='v1.event_detail',
                         related_view_kwargs={'tax_id': '<id>'},
                         schema='EventSchemaPublic',
                         type_='event')
class EmailNotificationSchema(SoftDeletionSchema):
    """
    API Schema for email notification Model
    """
    class Meta:
        """
        Meta class for email notification API schema
        """
        type_ = 'email-notification'
        self_view = 'v1.email_notification_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Integer(dump_only=True)
    next_event = fields.Boolean(default=False, allow_none=True)
    new_paper = fields.Boolean(default=False, allow_none=True)
    session_accept_reject = fields.Boolean(default=False, allow_none=True)
    session_schedule = fields.Boolean(default=False, allow_none=True)
    after_ticket_purchase = fields.Boolean(default=True, allow_none=True)
    event_id = fields.Integer(allow_none=True)
    event = Relationship(attribute='event',
                         self_view='v1.email_notification_event',
                         self_view_kwargs={'id': '<id>'},
                         related_view='v1.event_detail',
                         related_view_kwargs={'email_notification_id': '<id>'},
                         schema='EventSchemaPublic',
                         type_='event')
    user = Relationship(attribute='user',
                        self_view='v1.email_notification_user',
                        self_view_kwargs={'id': '<id>'},
                        related_view='v1.user_detail',
                        related_view_kwargs={'email_notification_id': '<id>'},
                        schema='UserSchema',
                        type_='user')
Exemple #5
0
class EventImageSizeSchema(Schema):
    """
    Api schema for image_size Model
    """
    class Meta:
        """
        Meta class for image_size Api Schema
        """

        type_ = 'event-image-size'
        self_view = 'v1.event_image_size_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Str(dump_only=True)
    type = fields.Str(allow_none=True)
    full_width = fields.Integer(validate=lambda n: n >= 0, allow_none=True)
    full_height = fields.Integer(validate=lambda n: n >= 0, allow_none=True)
    full_aspect = fields.Boolean(default=False)
    full_quality = fields.Integer(validate=lambda n: 0 <= n <= 100,
                                  allow_none=True)
    icon_width = fields.Integer(validate=lambda n: n >= 0, allow_none=True)
    icon_height = fields.Integer(validate=lambda n: n >= 0, allow_none=True)
    icon_aspect = fields.Boolean(default=False)
    icon_quality = fields.Integer(validate=lambda n: 0 <= n <= 100,
                                  allow_none=True)
    thumbnail_width = fields.Integer(validate=lambda n: n >= 0,
                                     allow_none=True)
    thumbnail_height = fields.Integer(validate=lambda n: n >= 0,
                                      allow_none=True)
    thumbnail_aspect = fields.Boolean(default=False)
    thumbnail_quality = fields.Integer(validate=lambda n: 0 <= n <= 100,
                                       allow_none=True)
    logo_width = fields.Integer(validate=lambda n: n >= 0, allow_none=True)
    logo_height = fields.Integer(validate=lambda n: n >= 0, allow_none=True)
Exemple #6
0
class AvailableOSUpdateSchema(Schema):
    class Meta:
        type_ = 'available_os_updates'
        self_view = 'api_app.available_os_update_detail'
        self_view_kwargs = {'available_os_update_id': '<id>'}
        self_view_many = 'api_app.available_os_updates_list'

    id = fields.Int(dump_only=True)
    allows_install_later = fields.Boolean()
    #  app_identifiers_to_close = fields.List(fields.String())
    human_readable_name = fields.Str()
    human_readable_name_locale = fields.Str()
    is_config_data_update = fields.Boolean()
    is_critical = fields.Boolean()
    is_firmware_update = fields.Boolean()
    metadata_url = fields.URL()
    product_key = fields.String()
    restart_required = fields.Boolean()
    version = fields.String()

    device = Relationship(
        related_view='api_app.device_detail',
        related_view_kwargs={'device_id': '<device_id>'},
        type_='devices',
    )
Exemple #7
0
class AttendeeSchemaPublic(SoftDeletionSchema):
    """
    Api schema for Ticket Holder Model
    """
    class Meta:
        """
        Meta class for Attendee API Schema
        """
        type_ = 'attendee'
        self_view = 'v1.attendee_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Str(dump_only=True)
    firstname = fields.Str(required=True)
    lastname = fields.Str(required=True)
    email = fields.Str(allow_none=True)
    address = fields.Str(allow_none=True)
    city = fields.Str(allow_none=True)
    state = fields.Str(allow_none=True)
    country = fields.Str(allow_none=True)
    job_title = fields.Str(allow_none=True)
    phone = fields.Str(allow_none=True)
    tax_business_info = fields.Str(allow_none=True)
    billing_address = fields.Str(allow_none=True)
    home_address = fields.Str(allow_none=True)
    shipping_address = fields.Str(allow_none=True)
    company = fields.Str(allow_none=True)
    work_address = fields.Str(allow_none=True)
    work_phone = fields.Str(allow_none=True)
    website = fields.Url(allow_none=True)
    blog = fields.Url(allow_none=True)
    twitter = fields.Url(allow_none=True)
    facebook = fields.Url(allow_none=True)
    github = fields.Url(allow_none=True)
    gender = fields.Str(allow_none=True)
    birth_date = fields.DateTime(allow_none=True)

    ticket_id = fields.Str(allow_none=True)
    is_checked_in = fields.Boolean()
    device_name_checkin = fields.Str(allow_none=True)
    checkin_times = fields.Str(allow_none=True)
    checkout_times = fields.Str(allow_none=True, dump_only=True)
    attendee_notes = fields.Str(allow_none=True)
    is_checked_out = fields.Boolean()
    pdf_url = fields.Url(dump_only=True)
    event = Relationship(attribute='event',
                         self_view='v1.attendee_event',
                         self_view_kwargs={'id': '<id>'},
                         related_view='v1.event_detail',
                         related_view_kwargs={'attendee_id': '<id>'},
                         schema='EventSchema',
                         type_='event')
    user = Relationship(attribute='user',
                        self_view='v1.attendee_user',
                        self_view_kwargs={'id': '<id>'},
                        related_view='v1.user_detail',
                        related_view_kwargs={'attendee_id': '<id>'},
                        schema='UserSchemaPublic',
                        type_='user')
Exemple #8
0
class UserSchema(Schema):
    class Meta:
        sqla_session = db.session
        model = user_models.User
        type_ = "users"
        self_view = "rest_api.user"
        self_view_kwargs = {"id": "<id>"}

    id = f.Int(attribute="user_id",
               required=False,
               allow_none=True,
               as_string=True)
    username = f.String()
    email = f.String()
    salt = f.String()
    password = f.String()
    created_at = f.DateTime()
    first_name = f.String()
    last_name = f.String()
    active = f.Boolean()
    admin = f.Boolean(attribute="is_admin")
    api_token = f.String()

    reports = Relationship(
        related_view="rest_api.user_reportlist",
        related_view_kwargs={"id": "<user_id>"},
        many=True,
        type_="reports",
        required=False,
        schema="ReportSchema",
    )
class EventsRolePermissionSchema(Schema):
    """
    API Schema for Permission Model
    """
    class Meta:
        """
        Meta class for Notification API schema
        """
        type_ = 'event-role-permission'
        self_view = 'v1.events_role_detail'
        self_view_kwargs = {'id': '<id>'}
        self_view_many = 'v1.events_role_list'
        inflect = dasherize

    id = fields.Str(dump_only=True)
    can_create = fields.Boolean(default=False)
    can_read = fields.Boolean(default=False)
    can_update = fields.Boolean(default=False)
    can_delete = fields.Boolean(default=False)
    role = Relationship(attribute='role',
                        self_view='v1.event_role_role',
                        self_view_kwargs={'id': '<id>'},
                        related_view='v1.role_detail',
                        related_view_kwargs={'id': '<role_id>'},
                        schema='RoleSchema',
                        type_='role')
    service = Relationship(attribute='service',
                           self_view='v1.event_role_service',
                           self_view_kwargs={'id': '<id>'},
                           related_view='v1.service_detail',
                           related_view_kwargs={'id': '<service_id>'},
                           schema='ServiceSchema',
                           type_='service')
Exemple #10
0
class PlantSchema(Schema):
    class Meta:
        type_ = 'plants'
        self_view = 'plant_detail'
        self_view_kwargs = {'id': '<id>'}
        self_view_many = 'plant_list'

    id = fields.Str(dump_only=True)
    created = fields.Date()
    modified = fields.Date()
    friendlyname = fields.String(attribute='friendly_name', required=True)
    latinname = fields.String(attribute='latin_name')
    droughttolerant = fields.Boolean(attribute='drought_tolerant')
    medicinal = fields.Boolean()
    edible = fields.Boolean()
    imagelarge = fields.String(attribute='image_large')
    imagesmall = fields.String(attribute='image_small')
    types = Relationship(attribute='type',
                         self_view='plant_type',
                         self_view_kwargs={'id': '<id>'},
                         related_view='type_detail',
                         related_view_kwargs={'id': '<id>'},
                         schema='TypeSchema',
                         type_='types')
    woodtypes = Relationship(attribute='wood_type',
                             self_view='plant_type',
                             self_view_kwargs={'id': '<id>'},
                             related_view='woodtype_detail',
                             related_view_kwargs={'id': '<id>'},
                             schema='WoodTypeSchema',
                             type_='woodtypes')
    lifespans = Relationship(attribute='lifespan',
                             self_view='plant_type',
                             self_view_kwargs={'id': '<id>'},
                             related_view='lifespan_detail',
                             related_view_kwargs={'id': '<id>'},
                             schema='LifespanSchema',
                             type_='lifespans')
    leafcycles = Relationship(attribute='leaf_cycle',
                              self_view='plant_type',
                              self_view_kwargs={'id': '<id>'},
                              related_view='leafcycle_detail',
                              related_view_kwargs={'id': '<id>'},
                              schema='LeafCycleSchema',
                              type_='leafcycles')
    plantnotes = Relationship(self_view='plant_notes',
                              self_view_kwargs={'id': '<id>'},
                              related_view='plantnote_list',
                              related_view_kwargs={'id': '<id>'},
                              many=True,
                              schema='PlantNoteSchema',
                              type_='plantnotes')
    plantlineages = Relationship(self_view='plant_lineages',
                                 self_view_kwargs={'id': '<id>'},
                                 related_view='plantlineage_list',
                                 related_view_kwargs={'id': '<id>'},
                                 many=True,
                                 schema='PlantLineageSchema',
                                 type_='plantlineages')
Exemple #11
0
class ModuleSchema(Schema):
    class Meta:
        type_ = 'modules'

    id = fields.Integer(dump_only=True, as_string=True)
    ticketInclude = fields.Boolean(required=True)
    paymentInclude = fields.Boolean(required=True)
    donationInclude = fields.Boolean(required=True)
Exemple #12
0
class ModifyPermissionsDone(Schema):
    class Meta:
        type_ = 'modification-done'

    id = fields.Str(required=True, dump_only=True)
    isUser = fields.Boolean(dump_only=True)
    isAdmin = fields.Boolean(dump_only=True)
    isSales = fields.Boolean(dump_only=True)
Exemple #13
0
class SpiderSchema(SlydSchema):
    id = fields.Str(dump_only=True, load_from='name')
    name = fields.Str()
    start_urls = fields.List(fields.Str(), default=[])
    links_to_follow = fields.Str(default='patterns')
    follow_patterns = fields.List(fields.Str(), default=[])
    exclude_patterns = fields.List(fields.Str(), default=[])
    js_enabled = fields.Boolean(default=False)
    js_enable_patterns = fields.List(fields.Str(), default=[])
    js_disable_patterns = fields.List(fields.Str(), default=[])
    respect_nofollow = fields.Boolean(default=True)
    allowed_domains = fields.List(fields.Str(), default=[])
    login_url = fields.Str()
    login_user = fields.Str()
    login_password = fields.Str()
    perform_login = fields.Boolean(default=False)
    template_names = fields.List(fields.Str(), default=[])
    samples = fields.Relationship(
        related_url='/api/projects/{project_id}/spider/{spider_id}/samples',
        related_url_kwargs={
            'project_id': '<project_id>',
            'spider_id': '<spider_id>'
        },
        many=True,
        include_resource_linkage=True,
        type_='samples')
    project = fields.Relationship(
        related_url='/api/projects/{project_id}',
        related_url_kwargs={'project_id': '<project_id>'},
        type_='projects',
        include_resource_linkage=True)

    @pre_dump
    def _dump_login_data(self, item):
        init_requests = item.pop('init_requests', None)
        if init_requests:
            login_request = init_requests[0]
            item['login_url'] = login_request['loginurl']
            item['login_user'] = login_request['username']
            item['login_password'] = login_request['password']
        return item

    @post_load
    def _load_login_data(self, item):
        fields = ('login_url', 'login_user', 'login_password')
        if all(field in item and item[field] for field in fields):
            item['init_requests'] = [{
                'type': 'login',
                'loginurl': item.pop('login_url'),
                'username': item.pop('login_user'),
                'password': item.pop('login_password')
            }]
        for field in fields:
            item.pop(field, None)
        return item

    class Meta:
        type_ = 'spiders'
Exemple #14
0
class MessageSettingSchema(Schema):
    """
    API Schema for Message Setting Model
    """

    class Meta:
        """
        Meta class for Message Setting API schema
        """

        type_ = 'message-setting'
        self_view = 'v1.message_setting_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Str(dump_only=True)
    action = fields.Str(
        allow_none=True,
        dump_only=True,
        validate=validate.OneOf(
            choices=[
                INVITE_PAPERS,
                NEW_SESSION,
                USER_CONFIRM,
                USER_REGISTER,
                PASSWORD_RESET,
                EVENT_ROLE,
                SESSION_ACCEPT_REJECT,
                SESSION_SCHEDULE,
                NEXT_EVENT,
                EVENT_PUBLISH,
                AFTER_EVENT,
                USER_CHANGE_EMAIL,
                USER_REGISTER_WITH_PASSWORD,
                TICKET_PURCHASED,
                EVENT_EXPORTED,
                EVENT_EXPORT_FAIL,
                MAIL_TO_EXPIRED_ORDERS,
                MONTHLY_PAYMENT_EMAIL,
                MONTHLY_PAYMENT_FOLLOWUP_EMAIL,
                EVENT_IMPORTED,
                EVENT_IMPORT_FAIL,
                TICKET_PURCHASED_ORGANIZER,
                TICKET_CANCELLED,
                TICKET_PURCHASED_ATTENDEE,
                PASSWORD_CHANGE,
            ]
        ),
    )
    mail_status = fields.Boolean(default=False)
    notification_status = fields.Boolean(default=False)
    user_control_status = fields.Boolean(default=False)
    email_message = fields.Str(dump_only=True)
    recipient = fields.Str(dump_only=True)
    email_subject = fields.Str(dump_only=True)
    notification_title = fields.Str(dump_only=True)
    notification_message = fields.Str(dump_only=True)
    sent_at = fields.DateTime(dump_only=True)
Exemple #15
0
class ModifyPermissionsIncoming(Schema):
    class Meta:
        type_ = 'modify-permissions'

    id = fields.Str(required=True, dump_only=True)
    uid = fields.Str(required=True)
    isUser = fields.Boolean(default=True)
    isAdmin = fields.Boolean(default=False)
    isSales = fields.Boolean(default=False)
Exemple #16
0
class SubdomainSchema(Schema):
    class Meta:
        type_ = "subdomain"
        strict = True
        inflect = drinkingCamel

    id = fields.Str()
    name = fields.Str()
    in_use = fields.Boolean()
    reserved = fields.Boolean()
class VideoStreamExtraOptionsSchema(JsonSchema):
    record = fields.Boolean(default=True)
    autoStartRecording = fields.Boolean(default=False)
    muteOnStart = fields.Boolean(default=True)
    welcome = fields.String(required=False, allow_none=True)
    maxParticipants = fields.Integer(required=False, allow_none=True)
    duration = fields.Integer(required=False, allow_none=True)
    moderatorOnlyMessage = fields.String(required=False, allow_none=True)
    logo = fields.URL(required=False, allow_none=True)
    bannerText = fields.String(required=False, allow_none=True)
    bannerColor = fields.String(required=False, allow_none=True)
    guestPolicy = fields.String(required=False, allow_none=True)
    allowModsToUnmuteUsers = fields.Boolean(default=True)
    endCurrentMeeting = fields.Boolean(default=False)
Exemple #18
0
class NotificationSchema(SoftDeletionSchema):
    """
    API Schema for Notification Model
    """
    class Meta:
        """
        Meta class for Notification API schema
        """
        type_ = 'notification'
        self_view = 'v1.notification_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Str(dump_only=True)
    title = fields.Str(allow_none=True, dump_only=True)
    message = fields.Str(allow_none=True, dump_only=True)
    received_at = fields.DateTime(dump_only=True)
    accept = fields.Str(allow_none=True, dump_only=True)
    is_read = fields.Boolean()
    notification_actions = Relationship(
        attribute='actions',
        schema='NotificationActionSchema',
        self_view='v1.notification_actions',
        self_view_kwargs={'id': '<id>'},
        related_view='v1.notification_actions_list',
        related_view_kwargs={'notification_id': '<id>'},
        many=True,
        type_='notification-action')
    user = Relationship(attribute='user',
                        self_view='v1.notification_user',
                        self_view_kwargs={'id': '<id>'},
                        related_view='v1.user_detail',
                        related_view_kwargs={'notification_id': '<id>'},
                        schema='UserSchema',
                        type_='user')
Exemple #19
0
class DiscountCodeSchemaPublic(Schema):
    """
    API Schema for discount_code Model
    For endpoints which allow somebody other than co-organizer/admin to access the resource.
    """
    class Meta:
        type_ = 'discount-code'
        self_view = 'v1.discount_code_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Integer()
    code = fields.Str(required=True)
    discount_url = fields.Url(allow_none=True)
    value = fields.Float(required=True)
    type = fields.Str(validate=validate.OneOf(choices=["amount", "percent"]),
                      required=True)
    is_active = fields.Boolean()
    tickets_number = fields.Integer(validate=lambda n: n >= 0, allow_none=True)
    min_quantity = fields.Integer(validate=lambda n: n >= 0, allow_none=True)
    max_quantity = fields.Integer(validate=lambda n: n >= 0, allow_none=True)
    valid_from = fields.DateTime(allow_none=True)
    valid_till = fields.DateTime(allow_none=True)
    used_for = fields.Str(validate=validate.OneOf(choices=["event", "ticket"]),
                          allow_none=False)
    created_at = fields.DateTime(allow_none=True)
    tickets = fields.Str(allow_none=True)
    event = Relationship(attribute='event',
                         self_view='v1.discount_code_event',
                         self_view_kwargs={'id': '<id>'},
                         related_view='v1.event_detail',
                         related_view_kwargs={'discount_code_id': '<id>'},
                         schema='EventSchemaPublic',
                         type_='event')
        class ExampleSchema(marshmallow_jsonapi.Schema):
            id = fields.UUID(required=True)
            body = fields.Str()
            is_active = fields.Boolean(attribute='active')

            class Meta:
                type_ = 'example'
class PanelPermissionSchema(Schema):
    """
    API Schema for panel permission Model
    """

    class Meta:
        """
        Meta class for user email API schema
        """
        type_ = 'panel-permission'
        self_view = 'v1.panel_permission_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Str(dump_only=True)
    panel_name = fields.String(allow_none=False)
    can_access = fields.Boolean()
    custom_system_roles = Relationship(attribute='custom_system_roles',
                                       many=True,
                                       self_view='v1.panel_permissions_custom_system_roles',
                                       self_view_kwargs={'id': '<id>'},
                                       related_view='v1.custom_system_role_list',
                                       related_view_kwargs={'panel_id': '<id>'},
                                       schema='CustomSystemRoleSchema',
                                       type_='custom-system-role')
Exemple #22
0
class ProfileSchema(Schema):
    class Meta:
        type_ = 'profiles'
        self_view = 'profiles_api.profile_detail'
        self_view_kwargs = {'profile_id': '<id>'}
        self_view_many = 'profiles_api.profiles_list'

    id = fields.Int(dump_only=True)
    data = fields.String()

    description = fields.Str()
    display_name = fields.Str()
    expiration_date = fields.DateTime()
    identifier = fields.Str()
    organization = fields.Str()
    uuid = fields.UUID()
    removal_disallowed = fields.Boolean()
    version = fields.Int()
    scope = fields.Str()
    removal_date = fields.DateTime()
    duration_until_removal = fields.Int()
    consent_en = fields.Str()

    tags = Relationship(related_view='api_app.tag_detail',
                        related_view_kwargs={'tag_id': '<id>'},
                        many=True,
                        schema='TagSchema',
                        type_='tags')
Exemple #23
0
class StatusSchema(Schema):
    id = fields.Str(dump_only=True)
    connect = fields.Boolean()
    details = fields.Str()

    def __init__(self):
        ip = IPRoute()
        pppLinksIds = ip.link_lookup(ifname=INTERFACE)
        if len(pppLinksIds) > 0:
            state = ip.get_links(pppLinksIds)[0].get_attr('IFLA_OPERSTATE')
            if state == 'UP':
                self.connect = True
                self.details = INTERFACE + " interface UP"
            else:
                self.connect = False
                self.details = INTERFACE + " exist but no UP"
            ip.close()
        else:
            self.connect = False
            self.details = INTERFACE + " interface no exist"
        super(StatusSchema, self).__init__()

    class Meta:
        type_ = 'pppoe_status'
        strict = True
class NewsSubscriptionSchema(Schema):
    class Meta:
        type_ = 'news-subscription'
        self_view = 'v1.news_subscription_details'
        self_view_kwargs = {'id': '<id>'}
        self_view_many = 'v1.news_subscriptions_list'
        inflect = dasherize
        strict = True
        ordered = True

    id = fields.Str(dump_only=True)
    subscribed = fields.Boolean(required=True)
    subscribed_on_date_time = fields.DateTime(dump_only=True)

    user = Relationship(
        attribute='user',
        self_view='v1.news_subscription_user',
        self_view_kwargs={'id': '<id>'},
        related_view='v1.user_details',
        related_view_kwargs={'id': '<user_id>'},
        schema='UserSchema',
        type_='user',
    )

    news = Relationship(attribute='news',
                        self_view='v1.news_subscription_news',
                        self_view_kwargs={'id': '<news.id>'},
                        related_view='v1.news_details',
                        related_view_kwargs={'id': '<news.id>'},
                        schema='NewsSchema',
                        type_='news',
                        required=True)
Exemple #25
0
class PlantLineageGenerationSchema(Schema):
    class Meta:
        type_ = 'plantlineagegenerations'
        self_view = 'plantlineagegeneration_detail'
        self_view_kwargs = {'id': '<id>'}
        self_view_many = 'plantlineagegeneration_list'

    id = fields.Str(dump_only=True)
    created = fields.Date()
    modified = fields.Date()
    generationslot = fields.Integer(attribute='generation_slot')
    isorigin = fields.Boolean(attribute='is_origin')
    plantlineage = Relationship(
        attribute='plant_lineage',
        self_view='plantlineagegeneration_plantlineage',
        self_view_kwargs={'id': '<id>'},
        related_view='plantlineage_detail',
        related_view_kwargs={'id': '<id>'},
        schema='PlantLineageSchema',
        type_='plantlineages')
    plantgeneration = Relationship(
        attribute='plant_generation',
        self_view='plantlineagegeneration_plantgeneration',
        self_view_kwargs={'id': '<id>'},
        related_view='plantgeneration_detail',
        related_view_kwargs={'id': '<id>'},
        schema='PlantGenerationSchema',
        type_='plantgenerations')
Exemple #26
0
class GeokretSchemaPublic(Schema):
    class Meta:
        type_ = 'geokret'
        self_view = 'v1.geokret_details'
        self_view_kwargs = {'id': '<id>'}
        self_view_many = 'v1.geokrety_list'
        inflect = dasherize
        ordered = True

    id = fields.Str(dump_only=True)
    name = fields.Str(required=True)
    description = fields.Str()
    missing = fields.Boolean(dump_only=True)
    distance = fields.Integer(dump_only=True)
    caches_count = fields.Integer(dump_only=True)
    pictures_count = fields.Integer(dump_only=True)
    average_rating = fields.Float(dump_only=True)
    created_on_date_time = fields.Date(dump_only=True)
    updated_on_date_time = fields.Date(dump_only=True)

    owner = Relationship(attribute='owner',
                         self_view='v1.geokret_owner',
                         self_view_kwargs={'id': '<id>'},
                         related_view='v1.user_details',
                         related_view_kwargs={'id': '<owner_id>'},
                         schema='UserSchemaPublic',
                         type_='user')

    holder = Relationship(attribute='holder',
                          self_view='v1.geokret_holder',
                          self_view_kwargs={'id': '<id>'},
                          related_view='v1.user_details',
                          related_view_kwargs={'id': '<holder_id>'},
                          schema='UserSchemaPublic',
                          type_='user')
Exemple #27
0
class NotificationSchema(Schema):
    """
    API Schema for Notification Model
    """

    class Meta:
        """
        Meta class for Notification API schema
        """

        type_ = 'notification'
        self_view = 'v1.notification_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Str(dump_only=True)
    created_at = fields.DateTime(dump_only=True)
    is_read = fields.Boolean()
    content = fields.Nested(NotificationContentSchema)
    user = Relationship(
        self_view='v1.notification_user',
        self_view_kwargs={'id': '<id>'},
        related_view='v1.user_detail',
        related_view_kwargs={'notification_id': '<id>'},
        schema='UserSchema',
        type_='user',
    )
Exemple #28
0
class SCEPConfigFlatSchema(FlatSchema):
    url = fields.Url(relative=False, schemes=['http', 'https'], required=True)
    challenge_enabled = fields.Boolean()
    ca_fingerprint = fields.String()
    subject = fields.String()
    key_size = fields.Integer()
    key_type = fields.String(dump_only=True)
    key_usage = fields.Integer()
    subject_alt_name = fields.String()
    retries = fields.Integer()
    retry_delay = fields.Integer()
    certificate_renewal_time_interval = fields.Integer()

    @post_load
    def make_scepconfig(self, data: dict) -> SCEPConfig:
        """Construct a model from a parsed JSON schema."""
        rows = db.session.query(SCEPConfig).count()

        if rows == 1:
            db.session.query(SCEPConfig).update(data)
            o = db.session.query(SCEPConfig).first()
        else:
            o = SCEPConfig(**data)
            db.session.add(o)

        return o
Exemple #29
0
class UserSchemaPublic(SoftDeletionSchema):
    """
    Api schema for User Model which can be accessed by any resource to which user is related.
    Co-organizers of events to which the user will be related will have access to this info.
    """
    class Meta:
        """
        Meta class for User Api Schema
        """

        type_ = 'user'
        self_view = 'v1.user_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Str(dump_only=True)
    email = fields.Email(required=True)
    avatar_url = fields.Url(allow_none=True)
    first_name = fields.Str(allow_none=True)
    last_name = fields.Str(allow_none=True)
    original_image_url = fields.Url(dump_only=True, allow_none=True)
    thumbnail_image_url = fields.Url(dump_only=True, allow_none=True)
    small_image_url = fields.Url(dump_only=True, allow_none=True)
    icon_image_url = fields.Url(dump_only=True, allow_none=True)
    was_registered_with_order = fields.Boolean()
Exemple #30
0
class SampleFilterSchema(OptionalLinkSchema):
    class Meta:
        sqla_session = db.session
        type_ = "filters"
        model = models.SampleFilter
        self_view = "rest_api.filter"
        self_view_many = "rest_api.filterlist"
        self_view_kwargs = {"id": "<id>"}

    id = f.Integer(attribute="sample_filter_id",
                   allow_none=True,
                   as_string=True)
    tag = f.String(attribute="sample_filter_tag")
    name = f.String(attribute="sample_filter_name")
    public = f.Boolean(attribute="is_public")
    data = JsonString(attribute="sample_filter_data")

    user = Relationship(
        related_view="rest_api.user",
        related_view_kwargs={"id": "<user_id>"},
        type_="users",
        include_resource_linkage=True,
        id_field="user_id",
        schema="UserSchema",
    )