Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

file_fields.py 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. from flask_restx import Api, Namespace, fields
  2. from libs.helper import TimestampField
  3. upload_config_fields = {
  4. "file_size_limit": fields.Integer,
  5. "batch_count_limit": fields.Integer,
  6. "image_file_size_limit": fields.Integer,
  7. "video_file_size_limit": fields.Integer,
  8. "audio_file_size_limit": fields.Integer,
  9. "workflow_file_upload_limit": fields.Integer,
  10. }
  11. def build_upload_config_model(api_or_ns: Api | Namespace):
  12. """Build the upload config model for the API or Namespace.
  13. Args:
  14. api_or_ns: Flask-RestX Api or Namespace instance
  15. Returns:
  16. The registered model
  17. """
  18. return api_or_ns.model("UploadConfig", upload_config_fields)
  19. file_fields = {
  20. "id": fields.String,
  21. "name": fields.String,
  22. "size": fields.Integer,
  23. "extension": fields.String,
  24. "mime_type": fields.String,
  25. "created_by": fields.String,
  26. "created_at": TimestampField,
  27. "preview_url": fields.String,
  28. "source_url": fields.String,
  29. }
  30. def build_file_model(api_or_ns: Api | Namespace):
  31. """Build the file model for the API or Namespace.
  32. Args:
  33. api_or_ns: Flask-RestX Api or Namespace instance
  34. Returns:
  35. The registered model
  36. """
  37. return api_or_ns.model("File", file_fields)
  38. remote_file_info_fields = {
  39. "file_type": fields.String(attribute="file_type"),
  40. "file_length": fields.Integer(attribute="file_length"),
  41. }
  42. def build_remote_file_info_model(api_or_ns: Api | Namespace):
  43. """Build the remote file info model for the API or Namespace.
  44. Args:
  45. api_or_ns: Flask-RestX Api or Namespace instance
  46. Returns:
  47. The registered model
  48. """
  49. return api_or_ns.model("RemoteFileInfo", remote_file_info_fields)
  50. file_fields_with_signed_url = {
  51. "id": fields.String,
  52. "name": fields.String,
  53. "size": fields.Integer,
  54. "extension": fields.String,
  55. "url": fields.String,
  56. "mime_type": fields.String,
  57. "created_by": fields.String,
  58. "created_at": TimestampField,
  59. }
  60. def build_file_with_signed_url_model(api_or_ns: Api | Namespace):
  61. """Build the file with signed URL model for the API or Namespace.
  62. Args:
  63. api_or_ns: Flask-RestX Api or Namespace instance
  64. Returns:
  65. The registered model
  66. """
  67. return api_or_ns.model("FileWithSignedUrl", file_fields_with_signed_url)