Use function decorators to check authentication tokens.

This commit is contained in:
luxick
2018-03-28 20:58:19 +02:00
parent 4b8d2421a5
commit ad85a37d5e
6 changed files with 87 additions and 41 deletions

View File

@@ -1,13 +1,16 @@
from common import models
from dsst_server.data_access import sql
from dsst_server.auth import check_write
class WriteFunctions:
@staticmethod
@check_write
def create_season(season: 'models.Season'):
return 'Season created.'
@staticmethod
@check_write
def update_enemy(enemy: 'models.Enemy', *_):
(sql.Enemy
.insert(id=enemy.id, boss=enemy.boss, name=enemy.name, season=enemy.season)
@@ -17,6 +20,7 @@ class WriteFunctions:
.execute())
@staticmethod
@check_write
def update_player(player: 'models.Player', *_):
(sql.Player
.insert(id=player.id, name=player.name, hex_id=player.hex_id)
@@ -25,6 +29,7 @@ class WriteFunctions:
.execute())
@staticmethod
@check_write
def update_drink(drink: 'models.Drink', *_):
(sql.Drink
.insert(id=drink.id, name=drink.name, vol=drink.vol)
@@ -33,6 +38,7 @@ class WriteFunctions:
.execute())
@staticmethod
@check_write
def save_death(death: 'models.Death'):
with sql.db.atomic():
created_id = (sql.Death
@@ -43,6 +49,7 @@ class WriteFunctions:
sql.Penalty.create(death=created_id, size=penalty.size, drink=penalty.drink, player=penalty.player)
@staticmethod
@check_write
def save_victory(victory: 'models.Victory'):
(sql.Victory
.insert(info=victory.info, player=victory.player, enemy=victory.enemy, time=victory.time,
@@ -50,6 +57,7 @@ class WriteFunctions:
.execute())
@staticmethod
@check_write
def update_season(season: 'models.Season', *_):
(sql.Season
.insert(id=season.id, number=season.number, game_name=season.game_name, start_date=season.start_date,
@@ -62,6 +70,7 @@ class WriteFunctions:
.execute())
@staticmethod
@check_write
def update_episode(episode: 'models.Episode', *_):
players = list(sql.Player.select().where(sql.Player.id << [player.id for player in episode.players]))
new_ep_id = (sql.Episode
@@ -76,3 +85,8 @@ class WriteFunctions:
db_episode = sql.Episode.get(sql.Episode.id == new_ep_id)
db_episode.players = players
db_episode.save()
@staticmethod
@check_write
def delete_player(player_id: int, *_):
sql.Player.delete_by_id(int)