refactor PlayerView, plans to replace ApiStorage.js by lootalot.js api module
This commit is contained in:
17
src/api.rs
17
src/api.rs
@@ -13,6 +13,7 @@ pub enum Update {
|
||||
/// Every value which can be queried
|
||||
#[derive(Debug)]
|
||||
pub enum Value {
|
||||
Player(db::Player),
|
||||
Item(db::Item),
|
||||
Claim(db::Claim),
|
||||
ItemList(Vec<db::Item>),
|
||||
@@ -23,11 +24,12 @@ pub enum Value {
|
||||
impl serde::Serialize for Value {
|
||||
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
|
||||
match self {
|
||||
Self::Item(v) => v.serialize(serializer),
|
||||
Self::Claim(v) => v.serialize(serializer),
|
||||
Self::ItemList(v) => v.serialize(serializer),
|
||||
Self::ClaimList(v) => v.serialize(serializer),
|
||||
Self::PlayerList(v) => v.serialize(serializer),
|
||||
Value::Player(v) => v.serialize(serializer),
|
||||
Value::Item(v) => v.serialize(serializer),
|
||||
Value::Claim(v) => v.serialize(serializer),
|
||||
Value::ItemList(v) => v.serialize(serializer),
|
||||
Value::ClaimList(v) => v.serialize(serializer),
|
||||
Value::PlayerList(v) => v.serialize(serializer),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -82,6 +84,7 @@ pub enum ApiActions {
|
||||
FetchInventory,
|
||||
FetchClaims,
|
||||
// Player actions
|
||||
FetchPlayer(i32),
|
||||
FetchLoot(i32),
|
||||
UpdateWealth(i32, f32),
|
||||
BuyItems(i32, Vec<(i32, Option<f32>)>),
|
||||
@@ -114,6 +117,9 @@ pub fn execute(
|
||||
ApiActions::FetchClaims => {
|
||||
response.set_value(Value::ClaimList(db::fetch_claims(conn)?));
|
||||
}
|
||||
ApiActions::FetchPlayer(id) => {
|
||||
response.set_value(Value::Player(db::Players(conn).find(id)?));
|
||||
}
|
||||
ApiActions::FetchLoot(id) => {
|
||||
response.set_value(Value::ItemList(db::LootManager(conn, id).all()?));
|
||||
}
|
||||
@@ -121,6 +127,7 @@ pub fn execute(
|
||||
response.push_update(Update::Wealth(
|
||||
db::AsPlayer(conn, id).update_wealth(amount)?,
|
||||
));
|
||||
response.notify(format!("Money updated !"));
|
||||
}
|
||||
ApiActions::BuyItems(id, params) => {
|
||||
let mut cumulated_diff: Vec<db::Wealth> = Vec::with_capacity(params.len());
|
||||
|
||||
@@ -41,7 +41,9 @@ fn configure_app(config: &mut web::ServiceConfig) {
|
||||
) // List of players
|
||||
.service(
|
||||
web::scope("/{player_id}")
|
||||
//.route(web::get().to_async(...)) // Details of player
|
||||
.route("/", web::get().to_async(|pool, player: PlayerId| {
|
||||
db_call(pool, Q::FetchPlayer(*player))
|
||||
}))
|
||||
.service(
|
||||
web::resource("/claims")
|
||||
//.route(web::get().to_async(endpoints::player_claims))
|
||||
|
||||
Reference in New Issue
Block a user