mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 06:57:28 -06:00
Initial commit for the DL
This commit is contained in:
parent
e19d5545bc
commit
d972c505d0
38 changed files with 3512 additions and 0 deletions
65
plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py
Normal file
65
plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py
Normal file
|
@ -0,0 +1,65 @@
|
|||
# Copyright (c) 2021 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
from datetime import datetime
|
||||
from typing import Optional, List, Dict, Any
|
||||
|
||||
from .BaseModel import BaseModel
|
||||
from .DigitalFactoryFileResponse import DIGITAL_FACTORY_RESPONSE_DATETIME_FORMAT
|
||||
|
||||
|
||||
class DigitalFactoryProjectResponse(BaseModel):
|
||||
"""Class representing a cloud project."""
|
||||
|
||||
def __init__(self,
|
||||
library_project_id: str,
|
||||
display_name: str,
|
||||
username: str,
|
||||
organization_shared: bool,
|
||||
last_updated: Optional[str] = None,
|
||||
created_at: Optional[str] = None,
|
||||
thumbnail_url: Optional[str] = None,
|
||||
organization_id: Optional[str] = None,
|
||||
created_by_user_id: Optional[str] = None,
|
||||
description: Optional[str] = "",
|
||||
tags: Optional[List[str]] = None,
|
||||
team_ids: Optional[List[str]] = None,
|
||||
status: Optional[str] = None,
|
||||
technical_requirements: Optional[Dict[str, Any]] = None,
|
||||
**kwargs) -> None:
|
||||
"""
|
||||
Creates a new digital factory project response object
|
||||
:param library_project_id:
|
||||
:param display_name:
|
||||
:param username:
|
||||
:param organization_shared:
|
||||
:param thumbnail_url:
|
||||
:param created_by_user_id:
|
||||
:param description:
|
||||
:param tags:
|
||||
:param kwargs:
|
||||
"""
|
||||
|
||||
self.library_project_id = library_project_id
|
||||
self.display_name = display_name
|
||||
self.description = description
|
||||
self.username = username
|
||||
self.organization_shared = organization_shared
|
||||
self.organization_id = organization_id
|
||||
self.created_by_user_id = created_by_user_id
|
||||
self.thumbnail_url = thumbnail_url
|
||||
self.tags = tags
|
||||
self.team_ids = team_ids
|
||||
self.created_at = datetime.strptime(created_at, DIGITAL_FACTORY_RESPONSE_DATETIME_FORMAT) if created_at else None
|
||||
self.last_updated = datetime.strptime(last_updated, DIGITAL_FACTORY_RESPONSE_DATETIME_FORMAT) if last_updated else None
|
||||
self.status = status
|
||||
self.technical_requirements = technical_requirements
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return "Project: {}, Id: {}, from: {}".format(self.display_name, self.library_project_id, self.username)
|
||||
|
||||
# Validates the model, raising an exception if the model is invalid.
|
||||
def validate(self) -> None:
|
||||
super().validate()
|
||||
if not self.library_project_id:
|
||||
raise ValueError("library_project_id is required on cloud project")
|
Loading…
Add table
Add a link
Reference in a new issue