This commit is contained in:
2025-12-02 17:02:20 -05:00
parent f82ba25160
commit 6423d1c1a2
49 changed files with 2320 additions and 349 deletions

View File

@@ -1,5 +1,12 @@
from flask import Blueprint, request, jsonify
from tinydb import Query
from events.sse import send_event_to_user
from events.types.event import Event
from events.types.event_types import EventType
from events.types.reward_created import RewardCreated
from events.types.reward_deleted import RewardDeleted
from events.types.reward_edited import RewardEdited
from models.reward import Reward
from db.db import reward_db, child_db
@@ -15,8 +22,11 @@ def add_reward():
image = data.get('image_id', '')
if not name or description is None or cost is None:
return jsonify({'error': 'Name, description, and cost are required'}), 400
reward = Reward(name, description, cost, image_id=image)
reward = Reward(name=name, description=description, cost=cost, image_id=image)
reward_db.insert(reward.to_dict())
send_event_to_user("user123", Event(EventType.REWARD_CREATED.value,
RewardCreated(reward.id, "created")))
return jsonify({'message': f'Reward {name} added.'}), 201
@@ -46,6 +56,9 @@ def delete_reward(id):
if id in rewards:
rewards.remove(id)
child_db.update({'rewards': rewards}, ChildQuery.id == child.get('id'))
send_event_to_user("user123", Event(EventType.REWARD_DELETED.value,
RewardDeleted(id, "created")))
return jsonify({'message': f'Reward {id} deleted.'}), 200
return jsonify({'error': 'Reward not found'}), 404
@@ -87,4 +100,7 @@ def edit_reward(id):
reward_db.update(updates, RewardQuery.id == id)
updated = reward_db.get(RewardQuery.id == id)
send_event_to_user("user123", Event(EventType.REWARD_EDITED.value,
RewardEdited(id, "created")))
return jsonify(updated), 200