1#ifndef CAVOKE_ROOMS_STORAGE_H
2#define CAVOKE_ROOMS_STORAGE_H
5#include "model/sessions/game_session.h"
6#include "model/sessions/sessions_storage.h"
7#include "sql-models/Rooms.h"
9namespace cavoke::server::model {
17 std::shared_ptr<SessionsStorage> m_sessions_storage;
20 explicit RoomsStorage(std::shared_ptr<SessionsStorage> mSessionsStorage);
24 std::string invite_code;
25 std::string display_name;
26 std::string session_id;
29 std::vector<GameSessionAccessObject::UserInfo> members;
31 static RoomInfo from_room_and_members(
32 const drogon_model::cavoke_orm::Rooms &room_orm,
33 const std::vector<GameSessionAccessObject::UserInfo> &members);
36 std::vector<GameSessionAccessObject::UserInfo> get_members(
37 const std::string &room_id);
39 std::optional<RoomInfo> get_by_id(
const std::string &room_id);
41 std::optional<RoomInfo> get_by_invite_code(
const std::string &invite_code);
43 RoomInfo create_room(
const std::string &host_id,
44 const std::string &display_name);
46 void add_user(
const std::string &room_id,
const std::string &user_id);
48 void remove_user(
const std::string &room_id,
const std::string &user_id);
50 bool is_member(
const std::string &room_id,
const std::string &user_id);
53 const std::string &room_id,
Base exception for errors thrown in server.
Serializable representation of session for client.
exception for errors thrown during actions with rooms