Data loading over socket.
This commit is contained in:
33
dsst/dsst_server/data_access/mapping.py
Normal file
33
dsst/dsst_server/data_access/mapping.py
Normal file
@@ -0,0 +1,33 @@
|
||||
from dsst_server.data_access import sql
|
||||
from common import models
|
||||
|
||||
|
||||
def map_base_fields(cls, db_model):
|
||||
model = cls()
|
||||
attrs = [attr for attr in db_model._meta.fields]
|
||||
for attr in attrs:
|
||||
setattr(model, attr, getattr(db_model, attr))
|
||||
return model
|
||||
|
||||
|
||||
def db_to_enemy(enemy: 'sql.Enemy'):
|
||||
return map_base_fields(models.Enemy, enemy)
|
||||
|
||||
|
||||
def db_to_player(player: 'sql.Player'):
|
||||
model = map_base_fields(models.Player, player)
|
||||
return model
|
||||
|
||||
|
||||
def db_to_episode(episode: 'sql.Episode'):
|
||||
model = map_base_fields(models.Episode, episode)
|
||||
model.players = [db_to_player(player) for player in episode.players]
|
||||
model.deaths = []
|
||||
model.victories = []
|
||||
|
||||
|
||||
def db_to_season(season: 'sql.Season'):
|
||||
model = map_base_fields(models.Season, season)
|
||||
model.enemies = [db_to_enemy(enemy) for enemy in season.enemies]
|
||||
model.episodes = [db_to_episode(ep) for ep in season.episodes]
|
||||
return model
|
||||
Reference in New Issue
Block a user