tvpl.api

<back to all web services

GetTemplateByDocumentIdRequest

Requires Authentication
The following routes are available for this service:
GET/document-template/bydocument
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BasicDocument:
    # @Required()
    title: Optional[str] = None

    # @StringLength(4000)
    description: Optional[str] = None

    # @StringLength(500)
    owner: Optional[str] = None

    document_policy_id: Optional[int] = None
    update_document_id: Optional[int] = None
    effect_begin_date: Optional[datetime.datetime] = None
    effect_end_date: Optional[datetime.datetime] = None
    issuing_agency_id: Optional[int] = None
    document_type_id: Optional[int] = None
    document_group_id: Optional[int] = None
    subject_id: Optional[int] = None
    # @StringLength(500)
    sign_by: Optional[str] = None

    sign_date: Optional[datetime.datetime] = None
    status_id: Optional[int] = None
    is_internal: bool = False
    document_number: Optional[str] = None
    document_code: Optional[str] = None
    is_urgent: Optional[bool] = None
    scope_type: Optional[int] = None
    is_active: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Document(BasicDocument):
    id: int = 0
    # @StringLength(500)
    reason_return: Optional[str] = None

    account_id: Optional[int] = None
    deleted_at: Optional[datetime.datetime] = None
    # @StringLength(500)
    deleted_by: Optional[str] = None

    # @StringLength(500)
    updated_by: Optional[str] = None

    created_at: Optional[datetime.datetime] = None
    # @StringLength(500)
    created_by: Optional[str] = None

    is_party: Optional[bool] = None
    is_revision_requested: bool = False
    last_updated_at: Optional[datetime.datetime] = None
    is_private: Optional[bool] = None
    department_id: Optional[int] = None
    publication_date: Optional[datetime.datetime] = None
    process_status_id: Optional[int] = None
    full_text_search_content: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentTemplate:
    id: int = 0
    # @Required()
    title: Optional[str] = None

    description: Optional[str] = None
    is_active: bool = False
    # @Ignore()
    document_ids: Optional[List[int]] = None

    # @Ignore()
    documents: Optional[List[Document]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentElement:
    id: int = 0
    template_id: int = 0
    # @Required()
    element_key: Optional[str] = None

    # @Required()
    tag: Optional[str] = None

    parent_id: Optional[int] = None
    # @Required()
    title: Optional[str] = None

    description: Optional[str] = None
    # @Required()
    data_type: Optional[str] = None

    template_type: Optional[str] = None
    order_index: int = 0
    is_required: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentElementDto(DocumentElement):
    children: Optional[List[DocumentElementDto]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentTemplateDto(DocumentTemplate):
    elements: Optional[List[DocumentElementDto]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentTemplateResponse:
    template: Optional[DocumentTemplateDto] = None
    inserted_id: int = 0
    code: int = 0
    message: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetTemplateByDocumentIdRequest:
    document_id: int = 0

Python GetTemplateByDocumentIdRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /document-template/bydocument HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<DocumentTemplateResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/tvpl.api.ServiceModel">
  <Code>0</Code>
  <InsertedId>0</InsertedId>
  <Message>String</Message>
  <Template>
    <CreatedAt xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0001-01-01T00:00:00</CreatedAt>
    <CreatedBy xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</CreatedBy>
    <Description xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Description>
    <DocumentIds xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">
      <d3p1:int>0</d3p1:int>
    </DocumentIds>
    <Documents xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">
      <Document>
        <Description>String</Description>
        <DocumentCode>String</DocumentCode>
        <DocumentGroupId>0</DocumentGroupId>
        <DocumentNumber>String</DocumentNumber>
        <DocumentPolicyId>0</DocumentPolicyId>
        <DocumentTypeId>0</DocumentTypeId>
        <EffectBeginDate>0001-01-01T00:00:00</EffectBeginDate>
        <EffectEndDate>0001-01-01T00:00:00</EffectEndDate>
        <IsActive>false</IsActive>
        <IsInternal>false</IsInternal>
        <IsUrgent>false</IsUrgent>
        <IssuingAgencyId>0</IssuingAgencyId>
        <Owner>String</Owner>
        <ScopeType>0</ScopeType>
        <SignBy>String</SignBy>
        <SignDate>0001-01-01T00:00:00</SignDate>
        <StatusId>0</StatusId>
        <SubjectId>0</SubjectId>
        <Title>String</Title>
        <UpdateDocumentId>0</UpdateDocumentId>
        <AccountId>0</AccountId>
        <CreatedAt>0001-01-01T00:00:00</CreatedAt>
        <CreatedBy>String</CreatedBy>
        <DeletedAt>0001-01-01T00:00:00</DeletedAt>
        <DeletedBy>String</DeletedBy>
        <DepartmentId>0</DepartmentId>
        <FullTextSearchContent>String</FullTextSearchContent>
        <Id>0</Id>
        <IsParty>false</IsParty>
        <IsPrivate>false</IsPrivate>
        <IsRevisionRequested>false</IsRevisionRequested>
        <LastUpdatedAt>0001-01-01T00:00:00</LastUpdatedAt>
        <ProcessStatusId>0</ProcessStatusId>
        <PublicationDate>0001-01-01T00:00:00</PublicationDate>
        <ReasonReturn>String</ReasonReturn>
        <UpdatedBy>String</UpdatedBy>
      </Document>
    </Documents>
    <Id xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</Id>
    <IsActive xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">false</IsActive>
    <Title xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Title>
    <Elements>
      <DocumentElementDto>
        <CreatedAt xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0001-01-01T00:00:00</CreatedAt>
        <DataType xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</DataType>
        <Description xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Description>
        <ElementKey xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</ElementKey>
        <Id xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</Id>
        <IsRequired xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">false</IsRequired>
        <OrderIndex xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</OrderIndex>
        <ParentId xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</ParentId>
        <Tag xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Tag>
        <TemplateId xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</TemplateId>
        <TemplateType xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</TemplateType>
        <Title xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Title>
        <Children>
          <DocumentElementDto>
            <CreatedAt xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0001-01-01T00:00:00</CreatedAt>
            <DataType xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</DataType>
            <Description xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Description>
            <ElementKey xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</ElementKey>
            <Id xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</Id>
            <IsRequired xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">false</IsRequired>
            <OrderIndex xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</OrderIndex>
            <ParentId xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</ParentId>
            <Tag xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Tag>
            <TemplateId xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</TemplateId>
            <TemplateType xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</TemplateType>
            <Title xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Title>
            <Children>
              <DocumentElementDto>
                <CreatedAt xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0001-01-01T00:00:00</CreatedAt>
                <DataType xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</DataType>
                <Description xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Description>
                <ElementKey xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</ElementKey>
                <Id xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</Id>
                <IsRequired xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">false</IsRequired>
                <OrderIndex xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</OrderIndex>
                <ParentId xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</ParentId>
                <Tag xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Tag>
                <TemplateId xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</TemplateId>
                <TemplateType xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</TemplateType>
                <Title xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Title>
                <Children i:nil="true" />
              </DocumentElementDto>
            </Children>
          </DocumentElementDto>
        </Children>
      </DocumentElementDto>
    </Elements>
  </Template>
</DocumentTemplateResponse>