Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handler the list, nested object and required properties #195

Open
tornabene opened this issue Nov 30, 2023 · 3 comments
Open

Handler the list, nested object and required properties #195

tornabene opened this issue Nov 30, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@tornabene
Copy link

Reason/Context

Handler the list, nested object and required properties

Description

Please try answering few of those questions

  • This implements sequence class with correct class
  • This implements the not required properties
  • This implement a nested class
@tornabene tornabene added the enhancement New feature or request label Nov 30, 2023
Copy link

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@tornabene
Copy link
Author

This is the exampe

S3Data:
type: object
additionalProperties:
readOnly: true
writeOnly: false
uniqueItems: false
required:
- s3Bucket
- s3Key
properties:
s3Bucket:
type: string
s3Key:
type: string
FileS3Temp:
type: object
additionalProperties:
readOnly: true
writeOnly: false
uniqueItems: false
required:
- s3Bucket
- s3Key
- filename
- sha512
properties:
s3Bucket:
type: string
s3Key:
type: string
filename:
type: string
sha512:
type: string
FileS3Attribute:
type: object
additionalProperties:
readOnly: true
writeOnly: false
uniqueItems: false
required:
- event_type
- resource_id
- company_id
- client_id
- user_id
- username
- filename
properties:
event_type:
type: string
$ref: '#/components/schemas/EventType'
resource_id:
type: string
company_id:
type: string
client_id:
type: string
user_id:
type: string
username:
type: string
filename:
type: string
event_id:
type: string
optional: true
parent_id:
type: string
optional: true
FileS3Event:
type: object
additionalProperties:
readOnly: true
writeOnly: false
uniqueItems: false
required:
- attribute
- s3Data
- eventType
- contentType
properties:
s3Data:
type: object
$ref: '#/components/schemas/S3Data'
attribute:
type: string
$ref: '#/components/schemas/FileS3Attribute'
eventType:
type: string
$ref: '#/components/schemas/EventType'
contentType:
type: string
classifiedType:
type: string
optional: true
$ref: '#/components/schemas/ClassifiedType'
eventId:
type: string
optional: true
errorMessage:
type: string
optional: true
resourceStatus:
type: string
optional: true
$ref: '#/components/schemas/ResourceStatus'
pdfImagesExtracted:
type: array
optional: true
items:
type: object
$ref: '#/components/schemas/FileS3Temp'
parentResources:
type: array
optional: true
items:
type: string

from enum import Enum
from typing import Sequence
from entity import Entity

from fileS3Temp import FileS3Temp

class FileS3Event(Entity):

class S3Data(Entity):

    def __init__(
            self,
            s3Bucket: str,
            s3Key: str):
        self.s3Bucket = s3Bucket
        self.s3Key = s3Key


class Attribute(Entity):

    class EventType(str, Enum):
        CAR = 'CAR'
        CONTENT = 'CONTENT'
        UNRECOGNIZED = 'UNRECOGNIZED'

    def __init__(
            self,
            eventType: EventType,
            resourceId: str,
            companyId: str,
            clientId: str,
            userId: str,
            username: str,
            filename: str,
            eventId: str,
            parentId: str):
        self.eventType = eventType
        self.resourceId = resourceId
        self.companyId = companyId
        self.clientId = clientId
        self.userId = userId
        self.username = username
        self.filename = filename
        self.eventId = eventId
        self.parentId = parentId


class EventType(str, Enum):
    CAR = 'CAR'
    CONTENT = 'CONTENT'
    UNRECOGNIZED = 'UNRECOGNIZED'

class ClassifiedType(str, Enum):
    PDF = 'PDF'
    PDF_EMBEDDED_JPG = 'PDF_EMBEDDED_JPG'
    IMAGE_JPG = 'IMAGE_JPG'
    IMAGE_JPG_TEXT = 'IMAGE_JPG_TEXT'
    IMAGE_PNG = 'IMAGE_PNG'
    IMAGE_PNG_TEXT = 'IMAGE_PNG_TEXT'
    NOT_SUPPORT = 'NOT_SUPPORT'

class ResourceStatus(str, Enum):
    PREURL = 'PREURL'
    UPLOAD = 'UPLOAD'
    COPY_S3 = 'COPY_S3'
    CLASSIFIED = 'CLASSIFIED'
    VERIFICATIONS_PENDING = 'VERIFICATIONS_PENDING'
    VERIFICATIONS_COMPLETE = 'VERIFICATIONS_COMPLETE'
    ERROR = 'ERROR'

class PdfImagesExtracted(Entity):

    def __init__(
            self,
            s3Bucket: str,
            s3Key: str,
            filename: str,
            sha512: str):
        self.s3Bucket = s3Bucket
        self.s3Key = s3Key
        self.filename = filename
        self.sha512 = sha512


def __init__(
        self,
        s3Data: S3Data,
        attribute: Attribute,
        eventType: EventType,
        contentType: str,
        classifiedType: ClassifiedType,
        eventId: str,
        errorMessage: str,
        resourceStatus: ResourceStatus,
        pdfImagesExtracted: Sequence[PdfImagesExtracted],
        parentResources: Sequence[str]):
    self.s3Data = s3Data
    self.attribute = attribute
    self.eventType = eventType
    self.contentType = contentType
    self.classifiedType = classifiedType
    self.eventId = eventId
    self.errorMessage = errorMessage
    self.resourceStatus = resourceStatus
    self.pdfImagesExtracted = pdfImagesExtracted
    self.parentResources = parentResources

this properties are not required
self.classifiedType = classifiedType
self.eventId = eventId
self.errorMessage = errorMessage
self.resourceStatus = resourceStatus
self.pdfImagesExtracted = pdfImagesExtracted
self.parentResources = parentResources

the selft.s3Data nested is not type S3Data

the seft.pdfImagesExtracted the item is not type PdfImagesExtracted

so i want add some new part

@tornabene
Copy link
Author

I will push the solution here https://github.com/tornabene/python-template

ag asyncapi.yaml @tornabene.org/[email protected] -o python

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant