Added logic to create default api-key for frontend #162-3

This commit is contained in:
2023-02-09 22:09:02 +01:00
parent 7f14aff1bd
commit a6df06f13a
12 changed files with 112 additions and 19 deletions

View File

@@ -22,7 +22,7 @@ class ApiKeyMigration(MigrationABC):
`Id` BIGINT NOT NULL AUTO_INCREMENT,
`Identifier` VARCHAR(255) NOT NULL,
`Key` VARCHAR(255) NOT NULL,
`CreatorId` BIGINT,
`CreatorId` BIGINT NULL,
`CreatedAt` DATETIME(6),
`LastModifiedAt` DATETIME(6),
PRIMARY KEY(`Id`),

View File

@@ -1,4 +1,5 @@
from datetime import datetime
from typing import Optional
from cpl_core.database import TableABC
@@ -10,7 +11,7 @@ class ApiKey(TableABC):
self,
identifier: str,
key: str,
creator: User,
creator: Optional[User],
created_at: datetime = None,
modified_at: datetime = None,
id=0,
@@ -33,7 +34,7 @@ class ApiKey(TableABC):
return self._key
@property
def creator(self) -> User:
def creator(self) -> Optional[User]:
return self._creator
@staticmethod
@@ -72,7 +73,7 @@ class ApiKey(TableABC):
) VALUES (
'{self._identifier}',
'{self._key}',
'{self._creator.user_id}',
{"NULL" if self._creator is None else self._creator.user_id},
'{self._created_at}',
'{self._modified_at}'
);

View File

@@ -31,10 +31,11 @@ class ApiKeyRepositoryService(ApiKeyRepositoryABC):
return value
def _api_key_from_result(self, sql_result: tuple) -> ApiKey:
creator = self._get_value_from_result(sql_result[3])
api_key = ApiKey(
self._get_value_from_result(sql_result[1]),
self._get_value_from_result(sql_result[2]),
self._users.get_user_by_id(int(self._get_value_from_result(sql_result[3]))),
None if creator is None else self._users.get_user_by_id(int(creator)),
self._get_value_from_result(sql_result[4]),
self._get_value_from_result(sql_result[5]),
id=self._get_value_from_result(sql_result[0]),

View File

@@ -1,6 +1,5 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_core.dependency_injection import ServiceProviderABC
from cpl_query.extension import List
from bot_core.logging.database_logger import DatabaseLogger
from bot_data.abc.data_seeder_abc import DataSeederABC
@@ -18,12 +17,10 @@ class SeederService:
self._db = db
self._seeder = List(type, DataSeederABC.__subclasses__())
async def seed(self):
self._logger.info(__name__, f"Seed data")
for seeder in self._seeder:
seeder_as_service: DataSeederABC = self._services.get_service(seeder)
self._logger.debug(__name__, f"Starting seeder {seeder.__name__}")
await seeder_as_service.seed()
for seeder in self._services.get_services(list[DataSeederABC]):
seeder: DataSeederABC = seeder
self._logger.debug(__name__, f"Starting seeder {type(seeder).__name__}")
await seeder.seed()
self._db.save_changes()