|
# Database Module Documentation |
|
|
|
The `database` module provides classes for managing database documents and data in the ShortGPT application. The module consists of three files: |
|
|
|
- `content_data_manager.py`: Defines the `ContentDataManager` class, which manages the content data for a document in the database. |
|
- `content_database.py`: Defines the `ContentDatabase` class, which provides methods for creating and accessing `ContentDataManager` instances. |
|
- `db_document.py`: Defines the `DatabaseDocument` abstract base class and the `TinyMongoDocument` class, which represents a document in a TinyMongo database. |
|
|
|
## File: content_data_manager.py |
|
|
|
The `content_data_manager.py` file contains the `ContentDataManager` class, which is responsible for managing the content data for a document in the database. |
|
|
|
### Class: ContentDataManager |
|
|
|
#### `__init__(self, db_doc: DatabaseDocument, content_type: str, new=False)` |
|
|
|
- Initializes a new instance of the `ContentDataManager` class. |
|
- Parameters: |
|
- `db_doc`: The `DatabaseDocument` instance representing the document in the database. |
|
- `content_type`: The type of content to be managed by the `ContentDataManager`. |
|
- `new`: (Optional) A boolean flag indicating whether the document is new or existing. Default is `False`. |
|
|
|
#### `save(self, key, value)` |
|
|
|
- Saves the specified key-value pair to the document. |
|
- Parameters: |
|
- `key`: The key of the data to be saved. |
|
- `value`: The value of the data to be saved. |
|
|
|
#### `get(self, key)` |
|
|
|
- Retrieves the value associated with the specified key from the document. |
|
- Parameters: |
|
- `key`: The key of the data to be retrieved. |
|
- Returns: |
|
- The value associated with the specified key. |
|
|
|
#### `_getId(self)` |
|
|
|
- Retrieves the ID of the document. |
|
- Returns: |
|
- The ID of the document. |
|
|
|
#### `delete(self)` |
|
|
|
- Deletes the document from the database. |
|
|
|
#### `__str__(self)` |
|
|
|
- Returns a string representation of the document. |
|
|
|
## File: content_database.py |
|
|
|
The `content_database.py` file contains the `ContentDatabase` class, which provides methods for creating and accessing `ContentDataManager` instances. |
|
|
|
### Class: ContentDatabase |
|
|
|
#### `instanciateContentDataManager(self, id: str, content_type: str, new=False)` |
|
|
|
- Creates a new `ContentDataManager` instance for the specified document ID and content type. |
|
- Parameters: |
|
- `id`: The ID of the document. |
|
- `content_type`: The type of content to be managed by the `ContentDataManager`. |
|
- `new`: (Optional) A boolean flag indicating whether the document is new or existing. Default is `False`. |
|
- Returns: |
|
- A new `ContentDataManager` instance. |
|
|
|
#### `getContentDataManager(self, id, content_type: str)` |
|
|
|
- Retrieves an existing `ContentDataManager` instance for the specified document ID and content type. |
|
- Parameters: |
|
- `id`: The ID of the document. |
|
- `content_type`: The type of content to be managed by the `ContentDataManager`. |
|
- Returns: |
|
- The existing `ContentDataManager` instance, or `None` if not found. |
|
|
|
#### `createContentDataManager(self, content_type: str) -> ContentDataManager` |
|
|
|
- Creates a new `ContentDataManager` instance for a new document with the specified content type. |
|
- Parameters: |
|
- `content_type`: The type of content to be managed by the `ContentDataManager`. |
|
- Returns: |
|
- A new `ContentDataManager` instance. |
|
|
|
## File: db_document.py |
|
|
|
The `db_document.py` file contains the `DatabaseDocument` abstract base class and the `TinyMongoDocument` class, which represents a document in a TinyMongo database. |
|
|
|
### Abstract Class: DatabaseDocument |
|
|
|
- An abstract base class that defines the interface for a database document. |
|
- Subclasses must implement the abstract methods: |
|
- `_save(self, key, data)` |
|
- `_get(self, key)` |
|
- `_getId(self)` |
|
- `__str__(self)` |
|
- `_delete(self)` |
|
|
|
### Class: TinyMongoDocument |
|
|
|
- Represents a document in a TinyMongo database. |
|
- Inherits from the `DatabaseDocument` abstract base class. |
|
|
|
#### `__init__(self, db_name: str, collection_name: str, document_id: str, create=False)` |
|
|
|
- Initializes a new instance of the `TinyMongoDocument` class. |
|
- Parameters: |
|
- `db_name`: The name of the database. |
|
- `collection_name`: The name of the collection. |
|
- `document_id`: The ID of the document. |
|
- `create`: (Optional) A boolean flag indicating whether to create the document if it doesn't exist. Default is `False`. |
|
|
|
#### `exists(self)` |
|
|
|
- Checks if the document exists in the database. |
|
- Returns: |
|
- `True` if the document exists, `False` otherwise. |
|
|
|
#### `_save(self, data)` |
|
|
|
- Saves the specified data to the document. |
|
- Parameters: |
|
- `data`: The data to be saved. |
|
|
|
#### `_get(self, key=None)` |
|
|
|
- Retrieves the value associated with the specified key from the document. |
|
- Parameters: |
|
- `key`: (Optional) The key of the data to be retrieved. If not specified, returns the entire document. |
|
- Returns: |
|
- The value associated with the specified key, or the entire document if no key is specified. |
|
|
|
#### `_delete(self, key)` |
|
|
|
- Deletes the specified key from the document. |
|
- Parameters: |
|
- `key`: The key to be deleted. |
|
|
|
#### `_getId(self)` |
|
|
|
- Retrieves the ID of the document. |
|
- Returns: |
|
- The ID of the document. |
|
|
|
#### `__str__(self)` |
|
|
|
- Returns a string representation of the document. |