ci/cd
This commit is contained in:
23
.github/workflows/ci.yml
vendored
Normal file
23
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
name: Rust
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "main" ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ "main" ]
|
||||||
|
|
||||||
|
env:
|
||||||
|
CARGO_TERM_COLOR: always
|
||||||
|
SQLX_OFFLINE: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Check
|
||||||
|
run: cargo check
|
||||||
|
- name: Clippy
|
||||||
|
run: cargo clippy
|
||||||
|
- name: Format
|
||||||
|
run: cargo fmt --all --check
|
23
.sqlx/query-0b2f444f36572ca8f072efecea628c634231b06b9cd77677d5026c00ae770738.json
generated
Normal file
23
.sqlx/query-0b2f444f36572ca8f072efecea628c634231b06b9cd77677d5026c00ae770738.json
generated
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "SELECT board FROM players WHERE id = $1 AND room_code = $2",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "board",
|
||||||
|
"type_info": "BpcharArray"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar",
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
true
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "0b2f444f36572ca8f072efecea628c634231b06b9cd77677d5026c00ae770738"
|
||||||
|
}
|
15
.sqlx/query-1568b5ea82d844da39dc37f70a4129d89e3c8b6cd91d7738774445a66fa1338e.json
generated
Normal file
15
.sqlx/query-1568b5ea82d844da39dc37f70a4129d89e3c8b6cd91d7738774445a66fa1338e.json
generated
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "WITH new_user AS (INSERT INTO players (id, room_code) VALUES ($1, $2) RETURNING id) INSERT INTO rooms (player1_id, code) SELECT $1, $2 FROM new_user",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar",
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "1568b5ea82d844da39dc37f70a4129d89e3c8b6cd91d7738774445a66fa1338e"
|
||||||
|
}
|
26
.sqlx/query-39e83c6ab9294d5b771f3e01ed3709e9ab08d8cf1287b325a0df57521c2d83bc.json
generated
Normal file
26
.sqlx/query-39e83c6ab9294d5b771f3e01ed3709e9ab08d8cf1287b325a0df57521c2d83bc.json
generated
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "UPDATE rooms SET stat = $1 WHERE code = $2",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
{
|
||||||
|
"Custom": {
|
||||||
|
"name": "stat",
|
||||||
|
"kind": {
|
||||||
|
"Enum": [
|
||||||
|
"waiting",
|
||||||
|
"p1turn",
|
||||||
|
"p2turn"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "39e83c6ab9294d5b771f3e01ed3709e9ab08d8cf1287b325a0df57521c2d83bc"
|
||||||
|
}
|
45
.sqlx/query-6108a32cad01040d876e139b882da3d6a28c448b5a0ad12a67d8e77c64e7c230.json
generated
Normal file
45
.sqlx/query-6108a32cad01040d876e139b882da3d6a28c448b5a0ad12a67d8e77c64e7c230.json
generated
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "SELECT player1_id, player2_id, stat AS \"stat: Status\" FROM rooms WHERE code = $1",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "player1_id",
|
||||||
|
"type_info": "Bpchar"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 1,
|
||||||
|
"name": "player2_id",
|
||||||
|
"type_info": "Bpchar"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 2,
|
||||||
|
"name": "stat: Status",
|
||||||
|
"type_info": {
|
||||||
|
"Custom": {
|
||||||
|
"name": "stat",
|
||||||
|
"kind": {
|
||||||
|
"Enum": [
|
||||||
|
"waiting",
|
||||||
|
"p1turn",
|
||||||
|
"p2turn"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "6108a32cad01040d876e139b882da3d6a28c448b5a0ad12a67d8e77c64e7c230"
|
||||||
|
}
|
16
.sqlx/query-652e975a09db7acd6dd0ff4d6ad190061f9dbc07b97158fe8ad7b22d5aad39c8.json
generated
Normal file
16
.sqlx/query-652e975a09db7acd6dd0ff4d6ad190061f9dbc07b97158fe8ad7b22d5aad39c8.json
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "UPDATE players SET board[$1] = $2 WHERE id = $3",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Int4",
|
||||||
|
"Bpchar",
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "652e975a09db7acd6dd0ff4d6ad190061f9dbc07b97158fe8ad7b22d5aad39c8"
|
||||||
|
}
|
15
.sqlx/query-665ac234d9b9e5e6a3be6a54de8474a11586e3bbe9c5295b8566c3ff9334a8c3.json
generated
Normal file
15
.sqlx/query-665ac234d9b9e5e6a3be6a54de8474a11586e3bbe9c5295b8566c3ff9334a8c3.json
generated
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "UPDATE players SET board = $1 WHERE id = $2",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"BpcharArray",
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "665ac234d9b9e5e6a3be6a54de8474a11586e3bbe9c5295b8566c3ff9334a8c3"
|
||||||
|
}
|
14
.sqlx/query-838ff3277798d0d63e57eb6cbc5c921b36ce8fa8e34cc8b415c43f4163793a3a.json
generated
Normal file
14
.sqlx/query-838ff3277798d0d63e57eb6cbc5c921b36ce8fa8e34cc8b415c43f4163793a3a.json
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "DELETE FROM players WHERE id = $1",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "838ff3277798d0d63e57eb6cbc5c921b36ce8fa8e34cc8b415c43f4163793a3a"
|
||||||
|
}
|
22
.sqlx/query-857420051fa315bca4851b922420fbbeb009b5546471b2f86bafa733e8ccf221.json
generated
Normal file
22
.sqlx/query-857420051fa315bca4851b922420fbbeb009b5546471b2f86bafa733e8ccf221.json
generated
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "SELECT room_code FROM players WHERE id = $1",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "room_code",
|
||||||
|
"type_info": "Bpchar"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
false
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "857420051fa315bca4851b922420fbbeb009b5546471b2f86bafa733e8ccf221"
|
||||||
|
}
|
28
.sqlx/query-886c680debfa2b3b79615056239aa68b9befd5e8fa0d710c0acd9fd5898d3708.json
generated
Normal file
28
.sqlx/query-886c680debfa2b3b79615056239aa68b9befd5e8fa0d710c0acd9fd5898d3708.json
generated
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "SELECT player1_id, player2_id FROM rooms WHERE code = $1",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "player1_id",
|
||||||
|
"type_info": "Bpchar"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 1,
|
||||||
|
"name": "player2_id",
|
||||||
|
"type_info": "Bpchar"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
true,
|
||||||
|
true
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "886c680debfa2b3b79615056239aa68b9befd5e8fa0d710c0acd9fd5898d3708"
|
||||||
|
}
|
15
.sqlx/query-8f8213cf51509cca2706438456f58e958c32a307b5c1eb87c4469347bf5458f6.json
generated
Normal file
15
.sqlx/query-8f8213cf51509cca2706438456f58e958c32a307b5c1eb87c4469347bf5458f6.json
generated
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "INSERT INTO players (id, room_code) VALUES ($1, $2) ON CONFLICT (id) DO UPDATE SET room_code = $2",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar",
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "8f8213cf51509cca2706438456f58e958c32a307b5c1eb87c4469347bf5458f6"
|
||||||
|
}
|
15
.sqlx/query-91373ba2f6f9907be9ba0280e49b8886fcc60e7debfe0580325c3767f0af7410.json
generated
Normal file
15
.sqlx/query-91373ba2f6f9907be9ba0280e49b8886fcc60e7debfe0580325c3767f0af7410.json
generated
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "UPDATE players SET id = $1, abandoned = FALSE WHERE id = $2",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar",
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "91373ba2f6f9907be9ba0280e49b8886fcc60e7debfe0580325c3767f0af7410"
|
||||||
|
}
|
22
.sqlx/query-a2c3b8b4c2ff313bbea7ba16d106a04dd9c162a5ddddec674fcca6fe9e347ac8.json
generated
Normal file
22
.sqlx/query-a2c3b8b4c2ff313bbea7ba16d106a04dd9c162a5ddddec674fcca6fe9e347ac8.json
generated
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "SELECT board FROM players WHERE id = $1",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "board",
|
||||||
|
"type_info": "BpcharArray"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
true
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "a2c3b8b4c2ff313bbea7ba16d106a04dd9c162a5ddddec674fcca6fe9e347ac8"
|
||||||
|
}
|
45
.sqlx/query-ae4cbc5afe767fbbceeb6c056dbbab2abcd3a8066bd48dde6cb559e4a74d73e9.json
generated
Normal file
45
.sqlx/query-ae4cbc5afe767fbbceeb6c056dbbab2abcd3a8066bd48dde6cb559e4a74d73e9.json
generated
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "SELECT stat AS \"stat: Status\", player1_id, player2_id FROM rooms WHERE code = $1",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "stat: Status",
|
||||||
|
"type_info": {
|
||||||
|
"Custom": {
|
||||||
|
"name": "stat",
|
||||||
|
"kind": {
|
||||||
|
"Enum": [
|
||||||
|
"waiting",
|
||||||
|
"p1turn",
|
||||||
|
"p2turn"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 1,
|
||||||
|
"name": "player1_id",
|
||||||
|
"type_info": "Bpchar"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ordinal": 2,
|
||||||
|
"name": "player2_id",
|
||||||
|
"type_info": "Bpchar"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
true
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "ae4cbc5afe767fbbceeb6c056dbbab2abcd3a8066bd48dde6cb559e4a74d73e9"
|
||||||
|
}
|
22
.sqlx/query-e16ac18c9148efc1618f67bd68216eb7d27113847b63eae595b48c756f72ca11.json
generated
Normal file
22
.sqlx/query-e16ac18c9148efc1618f67bd68216eb7d27113847b63eae595b48c756f72ca11.json
generated
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "SELECT code FROM rooms WHERE code = $1",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "code",
|
||||||
|
"type_info": "Bpchar"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
false
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "e16ac18c9148efc1618f67bd68216eb7d27113847b63eae595b48c756f72ca11"
|
||||||
|
}
|
14
.sqlx/query-f37db03b228702d59233d66c799d520adc9e2e74688ea17b4c36b5abc0fabaa4.json
generated
Normal file
14
.sqlx/query-f37db03b228702d59233d66c799d520adc9e2e74688ea17b4c36b5abc0fabaa4.json
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "UPDATE players SET abandoned = TRUE WHERE id = $1",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "f37db03b228702d59233d66c799d520adc9e2e74688ea17b4c36b5abc0fabaa4"
|
||||||
|
}
|
22
.sqlx/query-f9c94f686e78e9d6ca5a68d658e333a1791de7353faef131f0c6b6d07a0aad16.json
generated
Normal file
22
.sqlx/query-f9c94f686e78e9d6ca5a68d658e333a1791de7353faef131f0c6b6d07a0aad16.json
generated
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "SELECT abandoned FROM players WHERE id = $1",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"ordinal": 0,
|
||||||
|
"name": "abandoned",
|
||||||
|
"type_info": "Bool"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Bpchar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
false
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "f9c94f686e78e9d6ca5a68d658e333a1791de7353faef131f0c6b6d07a0aad16"
|
||||||
|
}
|
11
src/game.rs
11
src/game.rs
@@ -64,7 +64,7 @@ async fn generate_code(pool: &sqlx::PgPool) -> Result<String> {
|
|||||||
|
|
||||||
pub async fn add_room(sid: Sid, pool: &sqlx::PgPool) -> Result<String> {
|
pub async fn add_room(sid: Sid, pool: &sqlx::PgPool) -> Result<String> {
|
||||||
delete_sid(sid.as_str(), pool).await?;
|
delete_sid(sid.as_str(), pool).await?;
|
||||||
let code = generate_code(&pool).await?;
|
let code = generate_code(pool).await?;
|
||||||
|
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
r"WITH new_user AS (INSERT INTO players (id, room_code) VALUES ($1, $2) RETURNING id) INSERT INTO rooms (player1_id, code) SELECT $1, $2 FROM new_user",
|
r"WITH new_user AS (INSERT INTO players (id, room_code) VALUES ($1, $2) RETURNING id) INSERT INTO rooms (player1_id, code) SELECT $1, $2 FROM new_user",
|
||||||
@@ -88,11 +88,11 @@ pub async fn join_room(sid: Sid, code: String, pool: &sqlx::PgPool) -> Result<()
|
|||||||
let sid = sid.as_str();
|
let sid = sid.as_str();
|
||||||
|
|
||||||
if let (Some(p1), Some(p2)) = (room.player1_id.as_ref(), room.player2_id.as_ref()) {
|
if let (Some(p1), Some(p2)) = (room.player1_id.as_ref(), room.player2_id.as_ref()) {
|
||||||
if in_delete_sid(&p1, &pool).await? {
|
if in_delete_sid(p1, pool).await? {
|
||||||
update_sid(&p1, sid, pool).await?;
|
update_sid(p1, sid, pool).await?;
|
||||||
return Err(Error::RoomFull(Some(p1.to_string())));
|
return Err(Error::RoomFull(Some(p1.to_string())));
|
||||||
} else if in_delete_sid(&p2, &pool).await? {
|
} else if in_delete_sid(p2, pool).await? {
|
||||||
update_sid(&p2, sid, pool).await?;
|
update_sid(p2, sid, pool).await?;
|
||||||
return Err(Error::RoomFull(Some(p2.to_string())));
|
return Err(Error::RoomFull(Some(p2.to_string())));
|
||||||
}
|
}
|
||||||
return Err(Error::RoomFull(None));
|
return Err(Error::RoomFull(None));
|
||||||
@@ -205,7 +205,6 @@ pub async fn get_game_state(
|
|||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|row| {
|
.map(|row| {
|
||||||
row.chars()
|
row.chars()
|
||||||
.into_iter()
|
|
||||||
.map(|x| if x == 's' { 'e' } else { x })
|
.map(|x| if x == 's' { 'e' } else { x })
|
||||||
.collect()
|
.collect()
|
||||||
})
|
})
|
||||||
|
11
src/main.rs
11
src/main.rs
@@ -8,7 +8,6 @@ use game::{
|
|||||||
add_board, add_room, attack, delete_sid, get_game_state, get_room, join_room,
|
add_board, add_room, attack, delete_sid, get_game_state, get_room, join_room,
|
||||||
room_if_player_exists, start, to_delete_sid, update_sid, Error, ROOM_CODE_LENGTH,
|
room_if_player_exists, start, to_delete_sid, update_sid, Error, ROOM_CODE_LENGTH,
|
||||||
};
|
};
|
||||||
use rand::Rng;
|
|
||||||
|
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use socketioxide::{
|
use socketioxide::{
|
||||||
@@ -58,8 +57,8 @@ async fn on_connect(socket: SocketRef, Data(auth): Data<AuthPayload>, pool: Stat
|
|||||||
if let Some(sid) = auth.session {
|
if let Some(sid) = auth.session {
|
||||||
update_sid(&sid, socket.id.as_str(), &pool).await.unwrap();
|
update_sid(&sid, socket.id.as_str(), &pool).await.unwrap();
|
||||||
let sid = socket.id.as_str();
|
let sid = socket.id.as_str();
|
||||||
if let Some(room) = room_if_player_exists(&sid, &pool).await.unwrap() {
|
if let Some(room) = room_if_player_exists(sid, &pool).await.unwrap() {
|
||||||
let data = get_game_state(&sid, &room, &pool).await.unwrap();
|
let data = get_game_state(sid, &room, &pool).await.unwrap();
|
||||||
socket
|
socket
|
||||||
.emit(
|
.emit(
|
||||||
"restore",
|
"restore",
|
||||||
@@ -116,7 +115,7 @@ async fn on_connect(socket: SocketRef, Data(auth): Data<AuthPayload>, pool: Stat
|
|||||||
if let Err(e) = &room_error {
|
if let Err(e) = &room_error {
|
||||||
if let Error::RoomFull(Some(player)) = &e {
|
if let Error::RoomFull(Some(player)) = &e {
|
||||||
tracing::warn!("{:?}", e);
|
tracing::warn!("{:?}", e);
|
||||||
update_sid(&player, socket.id.as_str(), &pool).await.unwrap();
|
update_sid(player, socket.id.as_str(), &pool).await.unwrap();
|
||||||
let data = get_game_state(socket.id.as_str(), &room, &pool).await.unwrap();
|
let data = get_game_state(socket.id.as_str(), &room, &pool).await.unwrap();
|
||||||
socket
|
socket
|
||||||
.emit(
|
.emit(
|
||||||
@@ -220,9 +219,9 @@ async fn leave_and_inform(socket: &SocketRef, pool: &PgPool, delete: bool) {
|
|||||||
emit_update_room(socket, &room.to_string(), ops.sockets().unwrap().len());
|
emit_update_room(socket, &room.to_string(), ops.sockets().unwrap().len());
|
||||||
let sid = socket.id.as_str();
|
let sid = socket.id.as_str();
|
||||||
if let Err(e) = if delete {
|
if let Err(e) = if delete {
|
||||||
delete_sid(sid, &pool).await
|
delete_sid(sid, pool).await
|
||||||
} else {
|
} else {
|
||||||
to_delete_sid(sid, &pool).await
|
to_delete_sid(sid, pool).await
|
||||||
} {
|
} {
|
||||||
tracing::error!("{:?}", e);
|
tracing::error!("{:?}", e);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user