mirror of
https://github.com/QuivrHQ/quivr.git
synced 2024-12-15 17:43:03 +03:00
dfdb294c50
adding metadata to api # Description Please include a summary of the changes and the related issue. Please also include relevant motivation and context. ## Checklist before requesting a review Please delete options that are not relevant. - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented hard-to-understand areas - [ ] I have ideally added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged ## Screenshots (if appropriate):
48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
from enum import Enum
|
|
from typing import Optional
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, Extra
|
|
|
|
|
|
class ApiBrainDefinitionSchemaProperty(BaseModel, extra=Extra.forbid):
|
|
type: str
|
|
description: str
|
|
enum: Optional[list]
|
|
name: str
|
|
|
|
def dict(self, **kwargs):
|
|
result = super().dict(**kwargs)
|
|
if "enum" in result and result["enum"] is None:
|
|
del result["enum"]
|
|
return result
|
|
|
|
|
|
class ApiBrainDefinitionSchema(BaseModel, extra=Extra.forbid):
|
|
properties: list[ApiBrainDefinitionSchemaProperty] = []
|
|
required: list[str] = []
|
|
|
|
|
|
class ApiBrainDefinitionSecret(BaseModel, extra=Extra.forbid):
|
|
name: str
|
|
type: str
|
|
description: Optional[str]
|
|
|
|
|
|
class ApiBrainAllowedMethods(str, Enum):
|
|
GET = "GET"
|
|
POST = "POST"
|
|
PUT = "PUT"
|
|
DELETE = "DELETE"
|
|
|
|
|
|
class ApiBrainDefinitionEntity(BaseModel, extra=Extra.forbid):
|
|
brain_id: UUID
|
|
method: ApiBrainAllowedMethods
|
|
url: str
|
|
params: ApiBrainDefinitionSchema
|
|
search_params: ApiBrainDefinitionSchema
|
|
secrets: list[ApiBrainDefinitionSecret]
|
|
raw: bool = False
|
|
jq_instructions: Optional[str] = None
|