mirror of
https://github.com/langgenius/dify.git
synced 2026-06-14 04:31:07 +08:00
62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
from typing import override
|
|
|
|
from flask_restx import fields
|
|
|
|
from fields.member_fields import simple_account_fields
|
|
from libs.helper import TimestampField
|
|
|
|
|
|
class OpaqueRawField(fields.Raw):
|
|
@override
|
|
def schema(self) -> dict[str, object]:
|
|
return {"type": "object"}
|
|
|
|
|
|
tag_fields = {"id": fields.String, "name": fields.String, "type": fields.String}
|
|
|
|
# Snippet list item fields (lightweight for list display)
|
|
snippet_list_fields = {
|
|
"id": fields.String,
|
|
"name": fields.String,
|
|
"description": fields.String,
|
|
"type": fields.String,
|
|
"version": fields.Integer,
|
|
"use_count": fields.Integer,
|
|
"is_published": fields.Boolean,
|
|
"icon_info": OpaqueRawField,
|
|
"tags": fields.List(fields.Nested(tag_fields)),
|
|
"created_by": fields.String,
|
|
"author_name": fields.String,
|
|
"created_at": TimestampField,
|
|
"updated_by": fields.String,
|
|
"updated_at": TimestampField,
|
|
}
|
|
|
|
# Full snippet fields (includes creator info and graph data)
|
|
snippet_fields = {
|
|
"id": fields.String,
|
|
"name": fields.String,
|
|
"description": fields.String,
|
|
"type": fields.String,
|
|
"version": fields.Integer,
|
|
"use_count": fields.Integer,
|
|
"is_published": fields.Boolean,
|
|
"icon_info": OpaqueRawField,
|
|
"graph": OpaqueRawField(attribute="graph_dict"),
|
|
"input_fields": OpaqueRawField(attribute="input_fields_list"),
|
|
"tags": fields.List(fields.Nested(tag_fields)),
|
|
"created_by": fields.Nested(simple_account_fields, attribute="created_by_account", allow_null=True),
|
|
"created_at": TimestampField,
|
|
"updated_by": fields.Nested(simple_account_fields, attribute="updated_by_account", allow_null=True),
|
|
"updated_at": TimestampField,
|
|
}
|
|
|
|
# Pagination response fields
|
|
snippet_pagination_fields = {
|
|
"data": fields.List(fields.Nested(snippet_list_fields)),
|
|
"page": fields.Integer,
|
|
"limit": fields.Integer,
|
|
"total": fields.Integer,
|
|
"has_more": fields.Boolean,
|
|
}
|