diff --git a/.sqlx/query-a517738fabdf4a8c48778ea953f5ab6a3fa9a224ebacc32f75b60cbc91a11fea.json b/.sqlx/query-09dd3e14c1d48847a9618b188ee7e7ac51e23fe98c53e27c400cadc50ccd6c2f.json similarity index 54% rename from .sqlx/query-a517738fabdf4a8c48778ea953f5ab6a3fa9a224ebacc32f75b60cbc91a11fea.json rename to .sqlx/query-09dd3e14c1d48847a9618b188ee7e7ac51e23fe98c53e27c400cadc50ccd6c2f.json index fdebde0a..385fb4fd 100644 --- a/.sqlx/query-a517738fabdf4a8c48778ea953f5ab6a3fa9a224ebacc32f75b60cbc91a11fea.json +++ b/.sqlx/query-09dd3e14c1d48847a9618b188ee7e7ac51e23fe98c53e27c400cadc50ccd6c2f.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "UPDATE availabillity SET startTimestamp = $1, endTimestamp = $2, comment = $3 WHERE id = $4", + "query": "UPDATE availability SET startTimestamp = $1, endTimestamp = $2, comment = $3 WHERE id = $4", "describe": { "columns": [], "parameters": { @@ -13,5 +13,5 @@ }, "nullable": [] }, - "hash": "a517738fabdf4a8c48778ea953f5ab6a3fa9a224ebacc32f75b60cbc91a11fea" + "hash": "09dd3e14c1d48847a9618b188ee7e7ac51e23fe98c53e27c400cadc50ccd6c2f" } diff --git a/.sqlx/query-890ac023f7b2a6517ca46dfff5fc10e5e1d0c4757aa097294f5d7d6b6368b558.json b/.sqlx/query-1b85bca9dc5c0ec4568a07846ccda76468e81d9335548ef6f8b25c6e290b9cd0.json similarity index 68% rename from .sqlx/query-890ac023f7b2a6517ca46dfff5fc10e5e1d0c4757aa097294f5d7d6b6368b558.json rename to .sqlx/query-1b85bca9dc5c0ec4568a07846ccda76468e81d9335548ef6f8b25c6e290b9cd0.json index a6a8a367..d4e43cc3 100644 --- a/.sqlx/query-890ac023f7b2a6517ca46dfff5fc10e5e1d0c4757aa097294f5d7d6b6368b558.json +++ b/.sqlx/query-1b85bca9dc5c0ec4568a07846ccda76468e81d9335548ef6f8b25c6e290b9cd0.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n availabillity.id,\n availabillity.userId,\n availabillity.startTimestamp,\n availabillity.endTimestamp,\n availabillity.comment,\n user_.name,\n user_.email,\n user_.password,\n user_.salt,\n user_.role AS \"role: Role\",\n user_.function AS \"function: UserFunction\",\n user_.areaId,\n user_.locked,\n user_.lastLogin,\n user_.receiveNotifications\n FROM availabillity\n LEFT JOIN assignment ON availabillity.Id = assignment.availabillityId\n JOIN user_ ON availabillity.userId = user_.id\n WHERE availabillity.id = $1;\n ", + "query": "\n SELECT\n availability.id,\n availability.userId,\n availability.startTimestamp,\n availability.endTimestamp,\n availability.comment,\n user_.name,\n user_.email,\n user_.password,\n user_.salt,\n user_.role AS \"role: Role\",\n user_.function AS \"function: UserFunction\",\n user_.areaId,\n user_.locked,\n user_.lastLogin,\n user_.receiveNotifications\n FROM availability\n LEFT JOIN assignment ON availability.Id = assignment.availabilityId\n JOIN user_ ON availability.userId = user_.id\n WHERE availability.id = $1;\n ", "describe": { "columns": [ { @@ -131,5 +131,5 @@ false ] }, - "hash": "890ac023f7b2a6517ca46dfff5fc10e5e1d0c4757aa097294f5d7d6b6368b558" + "hash": "1b85bca9dc5c0ec4568a07846ccda76468e81d9335548ef6f8b25c6e290b9cd0" } diff --git a/.sqlx/query-7d2e4fcde5bee6c9dcd85e35fa5f0dd4ae6b638b85f0e3a54afc85a46de6ae3a.json b/.sqlx/query-1c9387e3723fe4b7d1b10908a3580e7ebf4d56250f8f008ee030a158b02cb86e.json similarity index 66% rename from .sqlx/query-7d2e4fcde5bee6c9dcd85e35fa5f0dd4ae6b638b85f0e3a54afc85a46de6ae3a.json rename to .sqlx/query-1c9387e3723fe4b7d1b10908a3580e7ebf4d56250f8f008ee030a158b02cb86e.json index 26728978..c58a14d7 100644 --- a/.sqlx/query-7d2e4fcde5bee6c9dcd85e35fa5f0dd4ae6b638b85f0e3a54afc85a46de6ae3a.json +++ b/.sqlx/query-1c9387e3723fe4b7d1b10908a3580e7ebf4d56250f8f008ee030a158b02cb86e.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "DELETE FROM assignment WHERE assignment.eventId = $1 AND assignment.availabillityId = $2;", + "query": "DELETE FROM assignment WHERE assignment.eventId = $1 AND assignment.availabilityId = $2;", "describe": { "columns": [], "parameters": { @@ -11,5 +11,5 @@ }, "nullable": [] }, - "hash": "7d2e4fcde5bee6c9dcd85e35fa5f0dd4ae6b638b85f0e3a54afc85a46de6ae3a" + "hash": "1c9387e3723fe4b7d1b10908a3580e7ebf4d56250f8f008ee030a158b02cb86e" } diff --git a/.sqlx/query-159c257e9e7a164d369de950940166706b5adf4815de81481c9eb67d94b7ee0d.json b/.sqlx/query-22470315a6113d51ed84e262b6dd2e41a7c16d9dda06eb06c272345722f994ae.json similarity index 75% rename from .sqlx/query-159c257e9e7a164d369de950940166706b5adf4815de81481c9eb67d94b7ee0d.json rename to .sqlx/query-22470315a6113d51ed84e262b6dd2e41a7c16d9dda06eb06c272345722f994ae.json index 704c2e7c..f97584e3 100644 --- a/.sqlx/query-159c257e9e7a164d369de950940166706b5adf4815de81481c9eb67d94b7ee0d.json +++ b/.sqlx/query-22470315a6113d51ed84e262b6dd2e41a7c16d9dda06eb06c272345722f994ae.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT * FROM vehicleAssignement WHERE vehicleAssignement.eventId = $1 AND vehicleAssignement.vehicleId = $2;", + "query": "SELECT * FROM vehicleassignment WHERE vehicleassignment.eventId = $1 AND vehicleassignment.vehicleId = $2;", "describe": { "columns": [ { @@ -37,5 +37,5 @@ false ] }, - "hash": "159c257e9e7a164d369de950940166706b5adf4815de81481c9eb67d94b7ee0d" + "hash": "22470315a6113d51ed84e262b6dd2e41a7c16d9dda06eb06c272345722f994ae" } diff --git a/.sqlx/query-1e0bac00becc335dbd0f71a3b65a91a77a9e4b1e323321fc41e29df7dda2b9da.json b/.sqlx/query-47bd20303899d5e804f8651c17428ee92f80321d1a5423be52e4f9a275180748.json similarity index 73% rename from .sqlx/query-1e0bac00becc335dbd0f71a3b65a91a77a9e4b1e323321fc41e29df7dda2b9da.json rename to .sqlx/query-47bd20303899d5e804f8651c17428ee92f80321d1a5423be52e4f9a275180748.json index 8519f0ac..7c731770 100644 --- a/.sqlx/query-1e0bac00becc335dbd0f71a3b65a91a77a9e4b1e323321fc41e29df7dda2b9da.json +++ b/.sqlx/query-47bd20303899d5e804f8651c17428ee92f80321d1a5423be52e4f9a275180748.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n INSERT INTO assignment (eventId, availabillityId, function, startTimestamp, endTimestamp)\n VALUES ($1, $2, $3, $4, $5);\n ", + "query": "\n INSERT INTO assignment (eventId, availabilityId, function, startTimestamp, endTimestamp)\n VALUES ($1, $2, $3, $4, $5);\n ", "describe": { "columns": [], "parameters": { @@ -25,5 +25,5 @@ }, "nullable": [] }, - "hash": "1e0bac00becc335dbd0f71a3b65a91a77a9e4b1e323321fc41e29df7dda2b9da" + "hash": "47bd20303899d5e804f8651c17428ee92f80321d1a5423be52e4f9a275180748" } diff --git a/.sqlx/query-0342272c9798389c37e229018e30bed399723ca0dba70438ba519d3ee7dad01b.json b/.sqlx/query-686a344fde1d9d3d7cfb431b30cd455f37854d8b728a7aac679e5c60f84cb08c.json similarity index 84% rename from .sqlx/query-0342272c9798389c37e229018e30bed399723ca0dba70438ba519d3ee7dad01b.json rename to .sqlx/query-686a344fde1d9d3d7cfb431b30cd455f37854d8b728a7aac679e5c60f84cb08c.json index 5f01f441..634cfacd 100644 --- a/.sqlx/query-0342272c9798389c37e229018e30bed399723ca0dba70438ba519d3ee7dad01b.json +++ b/.sqlx/query-686a344fde1d9d3d7cfb431b30cd455f37854d8b728a7aac679e5c60f84cb08c.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT * FROM availabillity WHERE id = $1", + "query": "SELECT * FROM availability WHERE id = $1", "describe": { "columns": [ { @@ -42,5 +42,5 @@ false ] }, - "hash": "0342272c9798389c37e229018e30bed399723ca0dba70438ba519d3ee7dad01b" + "hash": "686a344fde1d9d3d7cfb431b30cd455f37854d8b728a7aac679e5c60f84cb08c" } diff --git a/.sqlx/query-75d96d0b937b8e222aa2ad6b9fc0fc185e2b6b5f1a7c80507d39d813af3e3478.json b/.sqlx/query-6a95b789e0f9fc868d8695a33614184ae14ee690d03cd7455a80430d0cb8ba63.json similarity index 78% rename from .sqlx/query-75d96d0b937b8e222aa2ad6b9fc0fc185e2b6b5f1a7c80507d39d813af3e3478.json rename to .sqlx/query-6a95b789e0f9fc868d8695a33614184ae14ee690d03cd7455a80430d0cb8ba63.json index 8b5aa86d..447ddc9e 100644 --- a/.sqlx/query-75d96d0b937b8e222aa2ad6b9fc0fc185e2b6b5f1a7c80507d39d813af3e3478.json +++ b/.sqlx/query-6a95b789e0f9fc868d8695a33614184ae14ee690d03cd7455a80430d0cb8ba63.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "UPDATE assignment SET function = $1, startTimestamp = $2, endTimestamp = $3 WHERE eventId = $4 AND availabillityId = $5;", + "query": "UPDATE assignment SET function = $1, startTimestamp = $2, endTimestamp = $3 WHERE eventId = $4 AND availabilityId = $5;", "describe": { "columns": [], "parameters": { @@ -25,5 +25,5 @@ }, "nullable": [] }, - "hash": "75d96d0b937b8e222aa2ad6b9fc0fc185e2b6b5f1a7c80507d39d813af3e3478" + "hash": "6a95b789e0f9fc868d8695a33614184ae14ee690d03cd7455a80430d0cb8ba63" } diff --git a/.sqlx/query-85dc89689632abde0930ca3fde05ac1b6f3acb52e5ac2d2a98b966f05d5b9953.json b/.sqlx/query-7b3d623440f6ab8060223289d13687921a5c27317ea27d1b2c960b5e809a7497.json similarity index 72% rename from .sqlx/query-85dc89689632abde0930ca3fde05ac1b6f3acb52e5ac2d2a98b966f05d5b9953.json rename to .sqlx/query-7b3d623440f6ab8060223289d13687921a5c27317ea27d1b2c960b5e809a7497.json index 4954f506..408ccbf4 100644 --- a/.sqlx/query-85dc89689632abde0930ca3fde05ac1b6f3acb52e5ac2d2a98b966f05d5b9953.json +++ b/.sqlx/query-7b3d623440f6ab8060223289d13687921a5c27317ea27d1b2c960b5e809a7497.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n availabillity.id,\n availabillity.userId,\n availabillity.startTimestamp,\n availabillity.endTimestamp,\n availabillity.comment,\n user_.name,\n user_.email,\n user_.password,\n user_.salt,\n user_.role AS \"role: Role\",\n user_.function AS \"function: UserFunction\",\n user_.areaId,\n user_.locked,\n user_.lastLogin,\n user_.receiveNotifications\n FROM availabillity\n JOIN user_ ON availabillity.userId = user_.id\n WHERE availabillity.starttimestamp::date = $1\n AND user_.areaId = $2\n AND availabillity.startTimestamp <= $3 AND availabillity.endTimestamp >= $4;\n ", + "query": "\n SELECT\n availability.id,\n availability.userId,\n availability.startTimestamp,\n availability.endTimestamp,\n availability.comment,\n user_.name,\n user_.email,\n user_.password,\n user_.salt,\n user_.role AS \"role: Role\",\n user_.function AS \"function: UserFunction\",\n user_.areaId,\n user_.locked,\n user_.lastLogin,\n user_.receiveNotifications\n FROM availability\n JOIN user_ ON availability.userId = user_.id\n WHERE availability.starttimestamp::date = $1\n AND user_.areaId = $2\n AND availability.startTimestamp <= $3 AND availability.endTimestamp >= $4;\n ", "describe": { "columns": [ { @@ -134,5 +134,5 @@ false ] }, - "hash": "85dc89689632abde0930ca3fde05ac1b6f3acb52e5ac2d2a98b966f05d5b9953" + "hash": "7b3d623440f6ab8060223289d13687921a5c27317ea27d1b2c960b5e809a7497" } diff --git a/.sqlx/query-126a17ad3fe8937dfbf70e9a8c2bd7aee56eb35fdff0d0e47037b9af3e08b34f.json b/.sqlx/query-7c0145a715f40405e4401a6bb0bc27152a88c585d66da008d2729fb61d2d84b9.json similarity index 79% rename from .sqlx/query-126a17ad3fe8937dfbf70e9a8c2bd7aee56eb35fdff0d0e47037b9af3e08b34f.json rename to .sqlx/query-7c0145a715f40405e4401a6bb0bc27152a88c585d66da008d2729fb61d2d84b9.json index 763a719e..99dc7229 100644 --- a/.sqlx/query-126a17ad3fe8937dfbf70e9a8c2bd7aee56eb35fdff0d0e47037b9af3e08b34f.json +++ b/.sqlx/query-7c0145a715f40405e4401a6bb0bc27152a88c585d66da008d2729fb61d2d84b9.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT * FROM vehicleAssignement WHERE vehicleAssignement.eventId = $1;", + "query": "SELECT * FROM vehicleassignment WHERE vehicleassignment.eventId = $1;", "describe": { "columns": [ { @@ -36,5 +36,5 @@ false ] }, - "hash": "126a17ad3fe8937dfbf70e9a8c2bd7aee56eb35fdff0d0e47037b9af3e08b34f" + "hash": "7c0145a715f40405e4401a6bb0bc27152a88c585d66da008d2729fb61d2d84b9" } diff --git a/.sqlx/query-4b3eebd13b23df2046dabf6ad161f1ec32d95ec24d6da507387e9a7cf8287eaf.json b/.sqlx/query-7d1f191fbff87ffc8d429221f6f42557a5ab9e6eab8e0f10f5bad6055a64f617.json similarity index 54% rename from .sqlx/query-4b3eebd13b23df2046dabf6ad161f1ec32d95ec24d6da507387e9a7cf8287eaf.json rename to .sqlx/query-7d1f191fbff87ffc8d429221f6f42557a5ab9e6eab8e0f10f5bad6055a64f617.json index cc2cc774..76a3fa55 100644 --- a/.sqlx/query-4b3eebd13b23df2046dabf6ad161f1ec32d95ec24d6da507387e9a7cf8287eaf.json +++ b/.sqlx/query-7d1f191fbff87ffc8d429221f6f42557a5ab9e6eab8e0f10f5bad6055a64f617.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n vehicleAssignement.eventId,\n vehicleAssignement.vehicleId,\n vehicleAssignement.starttimestamp,\n vehicleAssignement.endtimestamp\n FROM vehicleAssignement\n JOIN event ON vehicleAssignement.eventId = event.id\n WHERE vehicleAssignement.vehicleid = $1\n AND event.starttimestamp::date = $2;\n ", + "query": "\n SELECT\n vehicleassignment.eventId,\n vehicleassignment.vehicleId,\n vehicleassignment.starttimestamp,\n vehicleassignment.endtimestamp\n FROM vehicleassignment\n JOIN event ON vehicleassignment.eventId = event.id\n WHERE vehicleassignment.vehicleid = $1\n AND event.starttimestamp::date = $2;\n ", "describe": { "columns": [ { @@ -37,5 +37,5 @@ false ] }, - "hash": "4b3eebd13b23df2046dabf6ad161f1ec32d95ec24d6da507387e9a7cf8287eaf" + "hash": "7d1f191fbff87ffc8d429221f6f42557a5ab9e6eab8e0f10f5bad6055a64f617" } diff --git a/.sqlx/query-48e3cab60736bf95958b063013090c64160aff1bad2f0db851db2e421711a156.json b/.sqlx/query-7db7ce0d13489ce3c0d967322f071a11174aa3c86ed405d352a3e3fb7ed10804.json similarity index 51% rename from .sqlx/query-48e3cab60736bf95958b063013090c64160aff1bad2f0db851db2e421711a156.json rename to .sqlx/query-7db7ce0d13489ce3c0d967322f071a11174aa3c86ed405d352a3e3fb7ed10804.json index fd9a907a..56122d88 100644 --- a/.sqlx/query-48e3cab60736bf95958b063013090c64160aff1bad2f0db851db2e421711a156.json +++ b/.sqlx/query-7db7ce0d13489ce3c0d967322f071a11174aa3c86ed405d352a3e3fb7ed10804.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "DELETE FROM vehicleassignement WHERE eventId = $1 AND vehicleId = $2;", + "query": "DELETE FROM vehicleassignment WHERE eventId = $1 AND vehicleId = $2;", "describe": { "columns": [], "parameters": { @@ -11,5 +11,5 @@ }, "nullable": [] }, - "hash": "48e3cab60736bf95958b063013090c64160aff1bad2f0db851db2e421711a156" + "hash": "7db7ce0d13489ce3c0d967322f071a11174aa3c86ed405d352a3e3fb7ed10804" } diff --git a/.sqlx/query-843da813342d6d7875667d43a76f6f2820ef97b85e1185b846ff245113889096.json b/.sqlx/query-843da813342d6d7875667d43a76f6f2820ef97b85e1185b846ff245113889096.json deleted file mode 100644 index 28c82cdb..00000000 --- a/.sqlx/query-843da813342d6d7875667d43a76f6f2820ef97b85e1185b846ff245113889096.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "\n INSERT INTO availabillity (userId, startTimestamp, endTimestamp, comment)\n VALUES ($1, $2, $3, $4);\n ", - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Int4", - "Timestamptz", - "Timestamptz", - "Text" - ] - }, - "nullable": [] - }, - "hash": "843da813342d6d7875667d43a76f6f2820ef97b85e1185b846ff245113889096" -} diff --git a/.sqlx/query-40254661a2d8a7e4b803551419e082b6ae3a5cb32ddc30a8fa844a4be67564ff.json b/.sqlx/query-8893828aa4509fc81f078b313a88c34d05eb7c5988e4d595768bc7dd47a7892f.json similarity index 69% rename from .sqlx/query-40254661a2d8a7e4b803551419e082b6ae3a5cb32ddc30a8fa844a4be67564ff.json rename to .sqlx/query-8893828aa4509fc81f078b313a88c34d05eb7c5988e4d595768bc7dd47a7892f.json index e1c9205f..e2b445b9 100644 --- a/.sqlx/query-40254661a2d8a7e4b803551419e082b6ae3a5cb32ddc30a8fa844a4be67564ff.json +++ b/.sqlx/query-8893828aa4509fc81f078b313a88c34d05eb7c5988e4d595768bc7dd47a7892f.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n assignment.eventId,\n assignment.availabillityId,\n assignment.function AS \"function: Function\",\n assignment.startTimestamp,\n assignment.endTimestamp\n FROM assignment\n WHERE assignment.AvailabillityId = $1;\n ", + "query": "\n SELECT\n assignment.eventId,\n assignment.availabilityId,\n assignment.function AS \"function: Function\",\n assignment.startTimestamp,\n assignment.endTimestamp\n FROM assignment\n WHERE assignment.AvailabilityId = $1;\n ", "describe": { "columns": [ { @@ -10,7 +10,7 @@ }, { "ordinal": 1, - "name": "availabillityid", + "name": "availabilityid", "type_info": "Int4" }, { @@ -53,5 +53,5 @@ false ] }, - "hash": "40254661a2d8a7e4b803551419e082b6ae3a5cb32ddc30a8fa844a4be67564ff" + "hash": "8893828aa4509fc81f078b313a88c34d05eb7c5988e4d595768bc7dd47a7892f" } diff --git a/.sqlx/query-478a745b8953efab4fbc915d99a4ad6a47a5c83e7054bc9fda81a31e6555f4ff.json b/.sqlx/query-9315f185d76ae8e25c9bb0273fce388ca559c4494f82d31524f224c6b70000f9.json similarity index 70% rename from .sqlx/query-478a745b8953efab4fbc915d99a4ad6a47a5c83e7054bc9fda81a31e6555f4ff.json rename to .sqlx/query-9315f185d76ae8e25c9bb0273fce388ca559c4494f82d31524f224c6b70000f9.json index a2f38349..6fd0025d 100644 --- a/.sqlx/query-478a745b8953efab4fbc915d99a4ad6a47a5c83e7054bc9fda81a31e6555f4ff.json +++ b/.sqlx/query-9315f185d76ae8e25c9bb0273fce388ca559c4494f82d31524f224c6b70000f9.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n assignment.eventId,\n assignment.availabillityId,\n assignment.function AS \"function: Function\",\n assignment.startTimestamp,\n assignment.endTimestamp\n FROM assignment\n WHERE assignment.eventId = $1;\n ", + "query": "\n SELECT\n assignment.eventId,\n assignment.availabilityId,\n assignment.function AS \"function: Function\",\n assignment.startTimestamp,\n assignment.endTimestamp\n FROM assignment\n WHERE assignment.eventId = $1;\n ", "describe": { "columns": [ { @@ -10,7 +10,7 @@ }, { "ordinal": 1, - "name": "availabillityid", + "name": "availabilityid", "type_info": "Int4" }, { @@ -53,5 +53,5 @@ false ] }, - "hash": "478a745b8953efab4fbc915d99a4ad6a47a5c83e7054bc9fda81a31e6555f4ff" + "hash": "9315f185d76ae8e25c9bb0273fce388ca559c4494f82d31524f224c6b70000f9" } diff --git a/.sqlx/query-fc09093ce791d2d690b2e3f5ff2125a10757b06ff7d60c8843cb7814ea452f13.json b/.sqlx/query-96b1394c0dc24a9633af101d53af4844e919aca853ebeb9bab6b37a0d68c3b59.json similarity index 54% rename from .sqlx/query-fc09093ce791d2d690b2e3f5ff2125a10757b06ff7d60c8843cb7814ea452f13.json rename to .sqlx/query-96b1394c0dc24a9633af101d53af4844e919aca853ebeb9bab6b37a0d68c3b59.json index 29b30b9c..2c17aea2 100644 --- a/.sqlx/query-fc09093ce791d2d690b2e3f5ff2125a10757b06ff7d60c8843cb7814ea452f13.json +++ b/.sqlx/query-96b1394c0dc24a9633af101d53af4844e919aca853ebeb9bab6b37a0d68c3b59.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "DELETE FROM availabillity WHERE id = $1", + "query": "DELETE FROM availability WHERE id = $1", "describe": { "columns": [], "parameters": { @@ -10,5 +10,5 @@ }, "nullable": [] }, - "hash": "fc09093ce791d2d690b2e3f5ff2125a10757b06ff7d60c8843cb7814ea452f13" + "hash": "96b1394c0dc24a9633af101d53af4844e919aca853ebeb9bab6b37a0d68c3b59" } diff --git a/.sqlx/query-5ef1494706bb6c9d41f19f57d8120e57b274a5b38c0ded9f26824d4aba1822e9.json b/.sqlx/query-a05ae42af4e579697f6ddae93aa52fbc826a58edb71a23b54a589c56e1b50378.json similarity index 66% rename from .sqlx/query-5ef1494706bb6c9d41f19f57d8120e57b274a5b38c0ded9f26824d4aba1822e9.json rename to .sqlx/query-a05ae42af4e579697f6ddae93aa52fbc826a58edb71a23b54a589c56e1b50378.json index 5c20701d..7919570b 100644 --- a/.sqlx/query-5ef1494706bb6c9d41f19f57d8120e57b274a5b38c0ded9f26824d4aba1822e9.json +++ b/.sqlx/query-a05ae42af4e579697f6ddae93aa52fbc826a58edb71a23b54a589c56e1b50378.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n availabillity.id,\n availabillity.userId,\n availabillity.startTimestamp,\n availabillity.endTimestamp,\n availabillity.comment,\n user_.name,\n user_.email,\n user_.password,\n user_.salt,\n user_.role AS \"role: Role\",\n user_.function AS \"function: UserFunction\",\n user_.areaId,\n user_.locked,\n user_.lastLogin,\n user_.receiveNotifications,\n area.name AS areaName\n FROM availabillity\n JOIN user_ ON availabillity.userId = user_.id\n JOIN area ON user_.areaId = area.id\n WHERE user_.areaId = $1 AND\n availabillity.starttimestamp::date >= $2 AND\n availabillity.starttimestamp::date <= $3;\n ", + "query": "\n SELECT\n availability.id,\n availability.userId,\n availability.startTimestamp,\n availability.endTimestamp,\n availability.comment,\n user_.name,\n user_.email,\n user_.password,\n user_.salt,\n user_.role AS \"role: Role\",\n user_.function AS \"function: UserFunction\",\n user_.areaId,\n user_.locked,\n user_.lastLogin,\n user_.receiveNotifications,\n area.name AS areaName\n FROM availability\n JOIN user_ ON availability.userId = user_.id\n JOIN area ON user_.areaId = area.id\n WHERE user_.areaId = $1 AND\n availability.starttimestamp::date >= $2 AND\n availability.starttimestamp::date <= $3;\n ", "describe": { "columns": [ { @@ -139,5 +139,5 @@ false ] }, - "hash": "5ef1494706bb6c9d41f19f57d8120e57b274a5b38c0ded9f26824d4aba1822e9" + "hash": "a05ae42af4e579697f6ddae93aa52fbc826a58edb71a23b54a589c56e1b50378" } diff --git a/.sqlx/query-a55c1e8926f4aa039d8b14a054cb7d4e80387970467bf940c79433c08cb4f879.json b/.sqlx/query-a55c1e8926f4aa039d8b14a054cb7d4e80387970467bf940c79433c08cb4f879.json new file mode 100644 index 00000000..dd141389 --- /dev/null +++ b/.sqlx/query-a55c1e8926f4aa039d8b14a054cb7d4e80387970467bf940c79433c08cb4f879.json @@ -0,0 +1,17 @@ +{ + "db_name": "PostgreSQL", + "query": "\n INSERT INTO availability (userId, startTimestamp, endTimestamp, comment)\n VALUES ($1, $2, $3, $4);\n ", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Int4", + "Timestamptz", + "Timestamptz", + "Text" + ] + }, + "nullable": [] + }, + "hash": "a55c1e8926f4aa039d8b14a054cb7d4e80387970467bf940c79433c08cb4f879" +} diff --git a/.sqlx/query-18d37157e02280e00c1f3db9650775e04a665d5ac1475cc7a88f9b469438c942.json b/.sqlx/query-ae18073da63db05840fdd113a2a4727a7e2531cc54ca2bf35ba4f4f86d35a4d3.json similarity index 68% rename from .sqlx/query-18d37157e02280e00c1f3db9650775e04a665d5ac1475cc7a88f9b469438c942.json rename to .sqlx/query-ae18073da63db05840fdd113a2a4727a7e2531cc54ca2bf35ba4f4f86d35a4d3.json index 9c1b4fd7..f8d2c52f 100644 --- a/.sqlx/query-18d37157e02280e00c1f3db9650775e04a665d5ac1475cc7a88f9b469438c942.json +++ b/.sqlx/query-ae18073da63db05840fdd113a2a4727a7e2531cc54ca2bf35ba4f4f86d35a4d3.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n availabillity.id,\n availabillity.userId,\n availabillity.startTimestamp,\n availabillity.endTimestamp,\n availabillity.comment,\n user_.name,\n user_.email,\n user_.password,\n user_.salt,\n user_.role AS \"role: Role\",\n user_.function AS \"function: UserFunction\",\n user_.areaId,\n user_.locked,\n user_.lastLogin,\n user_.receiveNotifications\n FROM availabillity\n JOIN user_ ON availabillity.userId = user_.id\n WHERE availabillity.startTimestamp::date = $1\n AND user_.areaId = $2;\n ", + "query": "\n SELECT\n availability.id,\n availability.userId,\n availability.startTimestamp,\n availability.endTimestamp,\n availability.comment,\n user_.name,\n user_.email,\n user_.password,\n user_.salt,\n user_.role AS \"role: Role\",\n user_.function AS \"function: UserFunction\",\n user_.areaId,\n user_.locked,\n user_.lastLogin,\n user_.receiveNotifications\n FROM availability\n JOIN user_ ON availability.userId = user_.id\n WHERE availability.startTimestamp::date = $1\n AND user_.areaId = $2;\n ", "describe": { "columns": [ { @@ -132,5 +132,5 @@ false ] }, - "hash": "18d37157e02280e00c1f3db9650775e04a665d5ac1475cc7a88f9b469438c942" + "hash": "ae18073da63db05840fdd113a2a4727a7e2531cc54ca2bf35ba4f4f86d35a4d3" } diff --git a/.sqlx/query-bc79bfefe13543d35aca3443919dd4a2d4d8ee88a6bcdf0ee331cff0f7064811.json b/.sqlx/query-b76b8744228a18fee84e5f895d5b831e4fce2169daedc3d472c96bdaf4b29dae.json similarity index 52% rename from .sqlx/query-bc79bfefe13543d35aca3443919dd4a2d4d8ee88a6bcdf0ee331cff0f7064811.json rename to .sqlx/query-b76b8744228a18fee84e5f895d5b831e4fce2169daedc3d472c96bdaf4b29dae.json index 1648700e..85a43259 100644 --- a/.sqlx/query-bc79bfefe13543d35aca3443919dd4a2d4d8ee88a6bcdf0ee331cff0f7064811.json +++ b/.sqlx/query-b76b8744228a18fee84e5f895d5b831e4fce2169daedc3d472c96bdaf4b29dae.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "INSERT INTO vehicleassignement (eventId, vehicleId, startTimestamp, endTimestamp) VALUES ($1, $2, $3, $4);", + "query": "INSERT INTO vehicleassignment (eventId, vehicleId, startTimestamp, endTimestamp) VALUES ($1, $2, $3, $4);", "describe": { "columns": [], "parameters": { @@ -13,5 +13,5 @@ }, "nullable": [] }, - "hash": "bc79bfefe13543d35aca3443919dd4a2d4d8ee88a6bcdf0ee331cff0f7064811" + "hash": "b76b8744228a18fee84e5f895d5b831e4fce2169daedc3d472c96bdaf4b29dae" } diff --git a/.sqlx/query-9e77980b06e46b1c2d8cbcab7006b984c81afc8ef02fbe289170f48411147022.json b/.sqlx/query-d2014068ac3b84a3682054e13e20ada311b1c36389b60ce8800d52ba4047730c.json similarity index 66% rename from .sqlx/query-9e77980b06e46b1c2d8cbcab7006b984c81afc8ef02fbe289170f48411147022.json rename to .sqlx/query-d2014068ac3b84a3682054e13e20ada311b1c36389b60ce8800d52ba4047730c.json index d1112de5..b0383635 100644 --- a/.sqlx/query-9e77980b06e46b1c2d8cbcab7006b984c81afc8ef02fbe289170f48411147022.json +++ b/.sqlx/query-d2014068ac3b84a3682054e13e20ada311b1c36389b60ce8800d52ba4047730c.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n assignment.eventId,\n assignment.availabillityId,\n assignment.function AS \"function: Function\",\n assignment.startTimestamp,\n assignment.endTimestamp\n FROM assignment\n WHERE\n assignment.eventId = $1 AND\n assignment.availabillityId = $2;\n ", + "query": "\n SELECT\n assignment.eventId,\n assignment.availabilityId,\n assignment.function AS \"function: Function\",\n assignment.startTimestamp,\n assignment.endTimestamp\n FROM assignment\n WHERE\n assignment.eventId = $1 AND\n assignment.availabilityId = $2;\n ", "describe": { "columns": [ { @@ -10,7 +10,7 @@ }, { "ordinal": 1, - "name": "availabillityid", + "name": "availabilityid", "type_info": "Int4" }, { @@ -54,5 +54,5 @@ false ] }, - "hash": "9e77980b06e46b1c2d8cbcab7006b984c81afc8ef02fbe289170f48411147022" + "hash": "d2014068ac3b84a3682054e13e20ada311b1c36389b60ce8800d52ba4047730c" } diff --git a/.sqlx/query-13d164ba2c29ac2bb4ee9428309807693ff1b29c61e7d07cbf8fb5fcd553f233.json b/.sqlx/query-f90aa1fd76ddf0f667fc77f1cbb02b219aff6d73a3ee1e0afeb9eeea7e194f9d.json similarity index 59% rename from .sqlx/query-13d164ba2c29ac2bb4ee9428309807693ff1b29c61e7d07cbf8fb5fcd553f233.json rename to .sqlx/query-f90aa1fd76ddf0f667fc77f1cbb02b219aff6d73a3ee1e0afeb9eeea7e194f9d.json index 5f5db35c..525437ca 100644 --- a/.sqlx/query-13d164ba2c29ac2bb4ee9428309807693ff1b29c61e7d07cbf8fb5fcd553f233.json +++ b/.sqlx/query-f90aa1fd76ddf0f667fc77f1cbb02b219aff6d73a3ee1e0afeb9eeea7e194f9d.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n availabillity.id,\n availabillity.userId,\n availabillity.startTimestamp,\n availabillity.endTimestamp,\n availabillity.comment\n FROM availabillity\n WHERE availabillity.userId = $1\n AND availabillity.starttimestamp::date = $2;\n ", + "query": "\n SELECT\n availability.id,\n availability.userId,\n availability.startTimestamp,\n availability.endTimestamp,\n availability.comment\n FROM availability\n WHERE availability.userId = $1\n AND availability.starttimestamp::date = $2;\n ", "describe": { "columns": [ { @@ -43,5 +43,5 @@ true ] }, - "hash": "13d164ba2c29ac2bb4ee9428309807693ff1b29c61e7d07cbf8fb5fcd553f233" + "hash": "f90aa1fd76ddf0f667fc77f1cbb02b219aff6d73a3ee1e0afeb9eeea7e194f9d" } diff --git a/migrations/20250512183312_fix_table_typos.sql b/migrations/20250512183312_fix_table_typos.sql new file mode 100644 index 00000000..96b8a772 --- /dev/null +++ b/migrations/20250512183312_fix_table_typos.sql @@ -0,0 +1,3 @@ +ALTER TABLE availabillity RENAME TO availability; +ALTER TABLE assignment RENAME COLUMN availabillityId TO availabilityId; +ALTER TABLE vehicleassignement RENAME TO vehicleassignment; diff --git a/web/snapshots/brass_web__endpoints__events__get_edit__inner_produces_template.snap b/web/snapshots/brass_web__endpoints__events__get_edit__inner_produces_template.snap index 7f5cd44a..5558d7c3 100644 --- a/web/snapshots/brass_web__endpoints__events__get_edit__inner_produces_template.snap +++ b/web/snapshots/brass_web__endpoints__events__get_edit__inner_produces_template.snap @@ -11,6 +11,9 @@ snapshot_kind: text + +
@@ -109,9 +112,9 @@ snapshot_kind: text
@@ -128,9 +131,9 @@ snapshot_kind: text
diff --git a/web/src/endpoints/assignment/delete.rs b/web/src/endpoints/assignment/delete.rs index 5cb62374..ace222e0 100644 --- a/web/src/endpoints/assignment/delete.rs +++ b/web/src/endpoints/assignment/delete.rs @@ -7,7 +7,7 @@ use crate::{ models::{Assignment, Event, Role, User}, utils::{ event_planning_template::{ - generate_availabillity_assignment_list, generate_status_whether_staff_is_required, + generate_availability_assignment_list, generate_status_whether_staff_is_required, }, ApplicationError, TemplateResponse, }, @@ -15,7 +15,7 @@ use crate::{ #[derive(Deserialize)] struct AssignmentDeleteQuery { - availabillity: i32, + availability: i32, event: i32, } @@ -38,14 +38,14 @@ pub async fn delete( return Err(ApplicationError::Unauthorized); } - let Some(assignment) = Assignment::read(pool.get_ref(), event.id, query.availabillity).await? + let Some(assignment) = Assignment::read(pool.get_ref(), event.id, query.availability).await? else { return Ok(HttpResponse::NotFound().finish()); }; - Assignment::delete(pool.get_ref(), event.id, assignment.availabillity_id).await?; + Assignment::delete(pool.get_ref(), event.id, assignment.availability_id).await?; - let availabillities = generate_availabillity_assignment_list(pool.get_ref(), &event).await?; + let availabilities = generate_availability_assignment_list(pool.get_ref(), &event).await?; let ( further_posten_required, further_fuehrungsassistent_required, @@ -54,7 +54,7 @@ pub async fn delete( let template = PlanEventPersonalTablePartialTemplate { event, - availabillities, + availabilities, further_posten_required, further_fuehrungsassistent_required, further_wachhabender_required, @@ -115,7 +115,7 @@ mod tests { let app = context.app().await; let config = RequestConfig { - uri: "/assignments/delete?availabillity=1&event=1".to_string(), + uri: "/assignments/delete?availability=1&event=1".to_string(), role: Role::AreaManager, function: vec![Function::Posten], user_area: 1, @@ -139,7 +139,7 @@ mod tests { let app = context.app().await; let config = RequestConfig { - uri: "/assignments/delete?availabillity=1&event=1".to_string(), + uri: "/assignments/delete?availability=1&event=1".to_string(), role: Role::Staff, function: vec![Function::Posten], user_area: 1, @@ -154,7 +154,7 @@ mod tests { async fn doesnt_work_when_event_does_not_exist(context: &DbTestContext) { let app = context.app().await; let config = RequestConfig { - uri: "/assignments/delete?availabillity=1&event=1".to_string(), + uri: "/assignments/delete?availability=1&event=1".to_string(), role: Role::AreaManager, function: vec![Function::Posten], user_area: 1, @@ -171,7 +171,7 @@ mod tests { let app = context.app().await; let config = RequestConfig { - uri: "/assignments/delete?availabillity=2&event=1".to_string(), + uri: "/assignments/delete?availability=2&event=1".to_string(), role: Role::AreaManager, function: vec![Function::Posten], user_area: 1, diff --git a/web/src/endpoints/assignment/mod.rs b/web/src/endpoints/assignment/mod.rs index 34b82821..7b1bf106 100644 --- a/web/src/endpoints/assignment/mod.rs +++ b/web/src/endpoints/assignment/mod.rs @@ -2,7 +2,7 @@ use askama::Template; use crate::{ filters, - models::{Availability, AvailabillityAssignmentState, Event}, + models::{Availability, AvailabilityAssignmentState, Event}, }; pub mod delete; @@ -12,7 +12,7 @@ pub mod post_new; #[template(path = "events/plan_personal_table.html")] pub struct PlanEventPersonalTablePartialTemplate { event: Event, - availabillities: Vec<(Availability, AvailabillityAssignmentState)>, + availabilities: Vec<(Availability, AvailabilityAssignmentState)>, further_posten_required: bool, further_fuehrungsassistent_required: bool, further_wachhabender_required: bool, diff --git a/web/src/endpoints/assignment/post_new.rs b/web/src/endpoints/assignment/post_new.rs index 6353ea2d..646a6a46 100644 --- a/web/src/endpoints/assignment/post_new.rs +++ b/web/src/endpoints/assignment/post_new.rs @@ -11,7 +11,7 @@ use crate::{ }, utils::{ event_planning_template::{ - generate_availabillity_assignment_list, generate_status_whether_staff_is_required, + generate_availability_assignment_list, generate_status_whether_staff_is_required, }, ApplicationError, TemplateResponse, }, @@ -19,7 +19,7 @@ use crate::{ #[derive(Deserialize)] pub struct AssignmentQuery { - availabillity: i32, + availability: i32, function: u8, event: i32, } @@ -43,14 +43,14 @@ pub async fn post( return Err(ApplicationError::Unauthorized); } - let Some(availabillity) = - Availability::read_by_id_including_user(pool.get_ref(), query.availabillity).await? + let Some(availability) = + Availability::read_by_id_including_user(pool.get_ref(), query.availability).await? else { return Ok(HttpResponse::NotFound().finish()); }; let availability_user_not_in_event_location_area = - availabillity.user.as_ref().unwrap().area_id != event.location.as_ref().unwrap().area_id; + availability.user.as_ref().unwrap().area_id != event.location.as_ref().unwrap().area_id; if availability_user_not_in_event_location_area { return Ok(HttpResponse::BadRequest() @@ -65,23 +65,23 @@ pub async fn post( }; let assignments_for_event = Assignment::read_all_by_event(pool.get_ref(), event.id).await?; - let assignments_for_availabillity = - Assignment::read_all_by_availabillity(pool.get_ref(), availabillity.id).await?; + let assignments_for_availability = + Assignment::read_all_by_availability(pool.get_ref(), availability.id).await?; let context = AssignmentContext { event: event.clone(), - availabillity: availabillity.clone(), - user_function: availabillity.user.as_ref().unwrap().function.clone(), + availability: availability.clone(), + user_function: availability.user.as_ref().unwrap().function.clone(), assignments_for_event, - assignments_for_availabillity, + assignments_for_availability, }; if let Err(e) = changeset.validate_with(&context) { return Ok(HttpResponse::BadRequest().body(e.to_string())); }; - Assignment::create(pool.get_ref(), event.id, availabillity.id, changeset).await?; + Assignment::create(pool.get_ref(), event.id, availability.id, changeset).await?; - let availabillities = generate_availabillity_assignment_list(pool.get_ref(), &event).await?; + let availabilities = generate_availability_assignment_list(pool.get_ref(), &event).await?; let ( further_posten_required, @@ -91,7 +91,7 @@ pub async fn post( let template = PlanEventPersonalTablePartialTemplate { event, - availabillities, + availabilities, further_posten_required, further_fuehrungsassistent_required, further_wachhabender_required, diff --git a/web/src/endpoints/availability/delete.rs b/web/src/endpoints/availability/delete.rs index 295a01ce..96198765 100644 --- a/web/src/endpoints/availability/delete.rs +++ b/web/src/endpoints/availability/delete.rs @@ -6,21 +6,21 @@ use crate::{ models::{Availability, User}, utils::ApplicationError, }; -#[actix_web::delete("/availabillity/delete/{id}")] +#[actix_web::delete("/availability/delete/{id}")] pub async fn delete( user: web::ReqData, pool: web::Data, path: web::Path, ) -> Result { - let Some(availabillity) = Availability::read_by_id(pool.get_ref(), path.id).await? else { + let Some(availability) = Availability::read_by_id(pool.get_ref(), path.id).await? else { return Ok(HttpResponse::NotFound().finish()); }; - if availabillity.user_id != user.id { + if availability.user_id != user.id { return Err(ApplicationError::Unauthorized); } - Availability::delete(pool.get_ref(), availabillity.id).await?; + Availability::delete(pool.get_ref(), availability.id).await?; Ok(HttpResponse::Ok().finish()) } diff --git a/web/src/endpoints/availability/get_new.rs b/web/src/endpoints/availability/get_new.rs index 6a5c5142..276e425e 100644 --- a/web/src/endpoints/availability/get_new.rs +++ b/web/src/endpoints/availability/get_new.rs @@ -12,7 +12,7 @@ struct AvailabilityNewQuery { date: NaiveDate, } -#[actix_web::get("/availabillity/new")] +#[actix_web::get("/availability/new")] pub async fn get( user: web::ReqData, pool: web::Data, @@ -22,10 +22,10 @@ pub async fn get( Availability::read_by_user_and_date(pool.get_ref(), user.id, &query.date).await?; let slot_suggestions = find_free_date_time_slots(&availabilities_from_user); - let user_can_create_availabillity = + let user_can_create_availability = availabilities_from_user.is_empty() || !slot_suggestions.is_empty(); - if !user_can_create_availabillity { + if !user_can_create_availability { return Ok(HttpResponse::BadRequest().finish()); } diff --git a/web/src/endpoints/availability/get_overview.rs b/web/src/endpoints/availability/get_overview.rs index 42d95561..f6ff33f2 100644 --- a/web/src/endpoints/availability/get_overview.rs +++ b/web/src/endpoints/availability/get_overview.rs @@ -24,7 +24,7 @@ pub struct CalendarQuery { #[template(path = "index.html")] struct CalendarTemplate { user: User, - user_can_create_availabillity: bool, + user_can_create_availability: bool, date: NaiveDate, selected_area: Option, areas: Vec, @@ -35,7 +35,7 @@ struct CalendarTemplate { Option, Vec, )>, - availabillities: Vec, + availabilities: Vec, } #[actix_web::get("/")] @@ -62,7 +62,7 @@ async fn get( None => None, }; - let availabillities = Availability::read_by_date_and_area_including_user( + let availabilities = Availability::read_by_date_and_area_including_user( pool.get_ref(), date, query.area.unwrap_or(user.area_id), @@ -73,10 +73,10 @@ async fn get( Availability::read_by_user_and_date(pool.get_ref(), user.id, &date).await?; //println!("{availabilities_from_user:#?}"); - let user_can_create_availabillity = availabilities_from_user.is_empty() + let user_can_create_availability = availabilities_from_user.is_empty() || !find_free_date_time_slots(&availabilities_from_user).is_empty(); - //println!("{} || {} || {} = {user_can_create_availabillity}", availabilities_from_user.is_empty(), + //println!("{} || {} || {} = {user_can_create_availability}", availabilities_from_user.is_empty(), // !only_one_availability_exists_and_is_whole_day(&availabilities_from_user), // !find_free_time_slots(&availabilities_from_user).is_empty()); @@ -104,9 +104,9 @@ async fn get( posten .into_iter() .map(|p| { - availabillities + availabilities .iter() - .find(|a| a.id == p.availabillity_id) + .find(|a| a.id == p.availability_id) .unwrap() .user .as_ref() @@ -116,9 +116,9 @@ async fn get( }) .collect(), fuehrungsassistent.first().map(|fa| { - availabillities + availabilities .iter() - .find(|a| a.id == fa.availabillity_id) + .find(|a| a.id == fa.availability_id) .unwrap() .user .as_ref() @@ -127,9 +127,9 @@ async fn get( .clone() }), wachhabender.first().map(|wh| { - availabillities + availabilities .iter() - .find(|a| a.id == wh.availabillity_id) + .find(|a| a.id == wh.availability_id) .unwrap() .user .as_ref() @@ -143,12 +143,12 @@ async fn get( let template = CalendarTemplate { user: user.into_inner(), - user_can_create_availabillity, + user_can_create_availability, date, selected_area, areas, events_and_assignments, - availabillities, + availabilities, }; Ok(template.to_response()?) diff --git a/web/src/endpoints/availability/get_update.rs b/web/src/endpoints/availability/get_update.rs index a394a9b1..44c1a1d8 100644 --- a/web/src/endpoints/availability/get_update.rs +++ b/web/src/endpoints/availability/get_update.rs @@ -8,7 +8,7 @@ use crate::{ utils::{ApplicationError, TemplateResponse}, }; -#[actix_web::get("/availabillity/edit/{id}")] +#[actix_web::get("/availability/edit/{id}")] pub async fn get( user: web::ReqData, pool: web::Data, diff --git a/web/src/endpoints/availability/mod.rs b/web/src/endpoints/availability/mod.rs index f5a26726..224b3e9c 100644 --- a/web/src/endpoints/availability/mod.rs +++ b/web/src/endpoints/availability/mod.rs @@ -27,7 +27,7 @@ struct NewOrEditAvailabilityTemplate<'a> { } #[derive(Deserialize)] -pub struct AvailabillityForm { +pub struct AvailabilityForm { pub startdate: NaiveDate, pub enddate: NaiveDate, pub starttime: NaiveTime, diff --git a/web/src/endpoints/availability/post_new.rs b/web/src/endpoints/availability/post_new.rs index 7915e4df..cd251aee 100644 --- a/web/src/endpoints/availability/post_new.rs +++ b/web/src/endpoints/availability/post_new.rs @@ -3,16 +3,16 @@ use garde::Validate; use sqlx::PgPool; use crate::{ - endpoints::availability::{find_adjacend_availability, AvailabillityForm}, + endpoints::availability::{find_adjacend_availability, AvailabilityForm}, models::{Availability, AvailabilityChangeset, AvailabilityContext, User}, utils::{self, ApplicationError}, }; -#[actix_web::post("/availabillity/new")] +#[actix_web::post("/availability/new")] pub async fn post( user: web::ReqData, pool: web::Data, - form: web::Form, + form: web::Form, ) -> Result { let existing_availabilities = Availability::read_by_user_and_date(pool.get_ref(), user.id, &form.startdate).await?; diff --git a/web/src/endpoints/availability/post_update.rs b/web/src/endpoints/availability/post_update.rs index 0129f27b..236b792a 100644 --- a/web/src/endpoints/availability/post_update.rs +++ b/web/src/endpoints/availability/post_update.rs @@ -4,19 +4,19 @@ use sqlx::PgPool; use crate::{ endpoints::{ - availability::{find_adjacend_availability, AvailabillityForm}, + availability::{find_adjacend_availability, AvailabilityForm}, IdPath, }, models::{Availability, AvailabilityChangeset, AvailabilityContext, User}, utils::{self, ApplicationError}, }; -#[actix_web::post("/availabillity/edit/{id}")] +#[actix_web::post("/availability/edit/{id}")] pub async fn post( user: web::ReqData, pool: web::Data, path: web::Path, - form: web::Form, + form: web::Form, ) -> Result { let Some(availability) = Availability::read_by_id(pool.get_ref(), path.id).await? else { return Ok(HttpResponse::NotFound().finish()); diff --git a/web/src/endpoints/events/get_plan.rs b/web/src/endpoints/events/get_plan.rs index a45bba15..cf22c6f2 100644 --- a/web/src/endpoints/events/get_plan.rs +++ b/web/src/endpoints/events/get_plan.rs @@ -5,10 +5,10 @@ use sqlx::PgPool; use crate::{ endpoints::IdPath, filters, - models::{Availability, AvailabillityAssignmentState, Event, Role, User, Vehicle}, + models::{Availability, AvailabilityAssignmentState, Event, Role, User, Vehicle}, utils::{ event_planning_template::{ - generate_availabillity_assignment_list, generate_status_whether_staff_is_required, + generate_availability_assignment_list, generate_status_whether_staff_is_required, generate_vehicles_assigned_and_available, }, ApplicationError, TemplateResponse, @@ -20,7 +20,7 @@ use crate::{ pub struct PlanEventTemplate { user: User, event: Event, - availabillities: Vec<(Availability, AvailabillityAssignmentState)>, + availabilities: Vec<(Availability, AvailabilityAssignmentState)>, further_posten_required: bool, further_fuehrungsassistent_required: bool, further_wachhabender_required: bool, @@ -46,7 +46,7 @@ pub async fn get( return Err(ApplicationError::Unauthorized); } - let availabillities = generate_availabillity_assignment_list(pool.get_ref(), &event).await?; + let availabilities = generate_availability_assignment_list(pool.get_ref(), &event).await?; let ( further_posten_required, @@ -60,7 +60,7 @@ pub async fn get( let template = PlanEventTemplate { user: user.into_inner(), event, - availabillities, + availabilities, further_posten_required, further_fuehrungsassistent_required, further_wachhabender_required, diff --git a/web/src/endpoints/events/post_edit.rs b/web/src/endpoints/events/post_edit.rs index f50c6221..0a6a7866 100644 --- a/web/src/endpoints/events/post_edit.rs +++ b/web/src/endpoints/events/post_edit.rs @@ -64,11 +64,11 @@ pub async fn post( let mut common_time = (start.and_time(START_OF_DAY), end.and_time(END_OF_DAY)); for assignment in &assignments_for_event { - let availability = Availability::read_by_id(pool.get_ref(), assignment.availabillity_id) + let availability = Availability::read_by_id(pool.get_ref(), assignment.availability_id) .await? .unwrap(); let all_assignments = - Assignment::read_all_by_availabillity(pool.get_ref(), assignment.availabillity_id) + Assignment::read_all_by_availability(pool.get_ref(), assignment.availability_id) .await?; if all_assignments.len() == 1 { @@ -141,7 +141,7 @@ pub async fn post( function: a.function, time: changeset.time, }; - Assignment::update(pool.get_ref(), a.event_id, a.availabillity_id, c).await?; + Assignment::update(pool.get_ref(), a.event_id, a.availability_id, c).await?; } } diff --git a/web/src/endpoints/export/get_availability_data.rs b/web/src/endpoints/export/get_availability_data.rs index d2b10ec4..905f3392 100644 --- a/web/src/endpoints/export/get_availability_data.rs +++ b/web/src/endpoints/export/get_availability_data.rs @@ -25,11 +25,11 @@ struct Export { year: u16, month: u8, area: String, - availabillities: Vec, + availabilities: Vec, } #[derive(Serialize)] -struct ExportAvailabillity { +struct ExportAvailability { name: String, area: String, function: UserFunction, @@ -63,12 +63,12 @@ pub async fn get( user.area_id }; - let availabillities = + let availabilities = Availability::read_for_export(pool.get_ref(), (start_date, end_date), area_id).await?; - let export_availabillities = availabillities + let export_availabilities = availabilities .into_iter() - .map(|a| ExportAvailabillity { + .map(|a| ExportAvailability { name: a.user.as_ref().unwrap().name.clone(), area: a.user.as_ref().unwrap().area.as_ref().unwrap().name.clone(), function: a.user.unwrap().function, @@ -88,7 +88,7 @@ pub async fn get( year: query.year, month: query.month, area, - availabillities: export_availabillities, + availabilities: export_availabilities, }; let (out, content_type) = match query.format.as_str() { diff --git a/web/src/endpoints/vehicle_assignment/delete.rs b/web/src/endpoints/vehicle_assignment/delete.rs index 3999ea96..74db8c24 100644 --- a/web/src/endpoints/vehicle_assignment/delete.rs +++ b/web/src/endpoints/vehicle_assignment/delete.rs @@ -4,7 +4,7 @@ use sqlx::PgPool; use crate::{ endpoints::vehicle_assignment::PlanVehiclesPartialTemplate, - models::{Event, Role, User, VehicleAssignement}, + models::{Event, Role, User, VehicleAssignment}, utils::{ event_planning_template::generate_vehicles_assigned_and_available, ApplicationError, TemplateResponse, @@ -37,12 +37,12 @@ pub async fn delete( } let Some(vehicle_assignment) = - VehicleAssignement::read(pool.get_ref(), event.id, query.vehicle).await? + VehicleAssignment::read(pool.get_ref(), event.id, query.vehicle).await? else { return Ok(HttpResponse::NotFound().finish()); }; - VehicleAssignement::delete( + VehicleAssignment::delete( pool.get_ref(), vehicle_assignment.event_id, vehicle_assignment.vehicle_id, diff --git a/web/src/endpoints/vehicle_assignment/post_new.rs b/web/src/endpoints/vehicle_assignment/post_new.rs index a609ca4d..12476a08 100644 --- a/web/src/endpoints/vehicle_assignment/post_new.rs +++ b/web/src/endpoints/vehicle_assignment/post_new.rs @@ -4,7 +4,7 @@ use sqlx::PgPool; use crate::{ endpoints::vehicle_assignment::PlanVehiclesPartialTemplate, - models::{Event, Role, User, Vehicle, VehicleAssignement}, + models::{Event, Role, User, Vehicle, VehicleAssignment}, utils::{ event_planning_template::generate_vehicles_assigned_and_available, ApplicationError, TemplateResponse, @@ -45,16 +45,16 @@ pub async fn post( return Ok(HttpResponse::NotFound().finish()); }; - let existing_assignments_for_vehicle = VehicleAssignement::read_all_by_vehicle_and_date( + let existing_assignments_for_vehicle = VehicleAssignment::read_all_by_vehicle_and_date( pool.get_ref(), vehicle.id, event.start.date(), ) .await?; let has_start_time_during_event = - |a: &VehicleAssignement| a.start >= event.start && a.start <= event.end; + |a: &VehicleAssignment| a.start >= event.start && a.start <= event.end; let has_end_time_during_event = - |a: &VehicleAssignement| a.end >= event.start && a.end <= event.end; + |a: &VehicleAssignment| a.end >= event.start && a.end <= event.end; let availability_already_assigned = existing_assignments_for_vehicle .iter() @@ -65,7 +65,7 @@ pub async fn post( .body("Vehicle already assigned to a timely conflicting event.")); } - VehicleAssignement::create(pool.get_ref(), event.id, vehicle.id, event.start, event.end) + VehicleAssignment::create(pool.get_ref(), event.id, vehicle.id, event.start, event.end) .await?; let (vehicles_assigned, vehicles_available) = diff --git a/web/src/models/assignement.rs b/web/src/models/assignment.rs similarity index 75% rename from web/src/models/assignement.rs rename to web/src/models/assignment.rs index fc215f59..8168da08 100644 --- a/web/src/models/assignement.rs +++ b/web/src/models/assignment.rs @@ -5,7 +5,7 @@ use super::{assignment_changeset::AssignmentChangeset, Function, Result}; pub struct Assignment { pub event_id: i32, - pub availabillity_id: i32, + pub availability_id: i32, pub function: Function, pub start: NaiveDateTime, pub end: NaiveDateTime, @@ -15,16 +15,16 @@ impl Assignment { pub async fn create( pool: &PgPool, event_id: i32, - availabillity_id: i32, + availability_id: i32, changeset: AssignmentChangeset, ) -> Result<()> { query!( r##" - INSERT INTO assignment (eventId, availabillityId, function, startTimestamp, endTimestamp) + INSERT INTO assignment (eventId, availabilityId, function, startTimestamp, endTimestamp) VALUES ($1, $2, $3, $4, $5); "##, event_id, - availabillity_id, + availability_id, changeset.function as Function, changeset.time.0.and_utc(), changeset.time.1.and_utc() @@ -35,22 +35,22 @@ impl Assignment { Ok(()) } - pub async fn read_all_by_availabillity( + pub async fn read_all_by_availability( pool: &PgPool, - availabillity_id: i32, + availability_id: i32, ) -> Result> { let records = query!( r##" SELECT assignment.eventId, - assignment.availabillityId, + assignment.availabilityId, assignment.function AS "function: Function", assignment.startTimestamp, assignment.endTimestamp FROM assignment - WHERE assignment.AvailabillityId = $1; + WHERE assignment.AvailabilityId = $1; "##, - availabillity_id + availability_id ) .fetch_all(pool) .await?; @@ -59,7 +59,7 @@ impl Assignment { .iter() .map(|r| Assignment { event_id: r.eventid, - availabillity_id: r.availabillityid, + availability_id: r.availabilityid, function: r.function, start: r.starttimestamp.naive_utc(), end: r.endtimestamp.naive_utc(), @@ -74,7 +74,7 @@ impl Assignment { r##" SELECT assignment.eventId, - assignment.availabillityId, + assignment.availabilityId, assignment.function AS "function: Function", assignment.startTimestamp, assignment.endTimestamp @@ -90,7 +90,7 @@ impl Assignment { .iter() .map(|r| Assignment { event_id: r.eventid, - availabillity_id: r.availabillityid, + availability_id: r.availabilityid, function: r.function, start: r.starttimestamp.naive_utc(), end: r.endtimestamp.naive_utc(), @@ -103,30 +103,30 @@ impl Assignment { pub async fn read( pool: &PgPool, event_id: i32, - availabillity_id: i32, + availability_id: i32, ) -> Result> { let record = query!( r##" SELECT assignment.eventId, - assignment.availabillityId, + assignment.availabilityId, assignment.function AS "function: Function", assignment.startTimestamp, assignment.endTimestamp FROM assignment WHERE assignment.eventId = $1 AND - assignment.availabillityId = $2; + assignment.availabilityId = $2; "##, event_id, - availabillity_id + availability_id ) .fetch_optional(pool) .await?; let assignemnet = record.map(|r| Assignment { event_id: r.eventid, - availabillity_id: r.availabillityid, + availability_id: r.availabilityid, function: r.function, start: r.starttimestamp.naive_utc(), end: r.endtimestamp.naive_utc(), @@ -138,18 +138,18 @@ impl Assignment { pub async fn update( pool: &PgPool, event_id: i32, - availabillity_id: i32, + availability_id: i32, changeset: AssignmentChangeset, ) -> Result<()> { - query!("UPDATE assignment SET function = $1, startTimestamp = $2, endTimestamp = $3 WHERE eventId = $4 AND availabillityId = $5;", changeset.function as Function, changeset.time.0.and_utc(), changeset.time.1.and_utc(), event_id, availabillity_id).execute(pool).await?; + query!("UPDATE assignment SET function = $1, startTimestamp = $2, endTimestamp = $3 WHERE eventId = $4 AND availabilityId = $5;", changeset.function as Function, changeset.time.0.and_utc(), changeset.time.1.and_utc(), event_id, availability_id).execute(pool).await?; Ok(()) } - pub async fn delete(pool: &PgPool, event_id: i32, availabillity_id: i32) -> Result<()> { - query!("DELETE FROM assignment WHERE assignment.eventId = $1 AND assignment.availabillityId = $2;", + pub async fn delete(pool: &PgPool, event_id: i32, availability_id: i32) -> Result<()> { + query!("DELETE FROM assignment WHERE assignment.eventId = $1 AND assignment.availabilityId = $2;", event_id, - availabillity_id + availability_id ) .execute(pool) .await?; diff --git a/web/src/models/assignment_changeset.rs b/web/src/models/assignment_changeset.rs index e11944cc..5dfac144 100644 --- a/web/src/models/assignment_changeset.rs +++ b/web/src/models/assignment_changeset.rs @@ -8,7 +8,7 @@ use super::{ #[derive(Validate)] #[garde(allow_unvalidated)] #[garde(context(AssignmentContext as ctx))] -/// check before: event and availabillity and must exist and user of availabillity is in event location +/// check before: event and availability and must exist and user of availability is in event location pub struct AssignmentChangeset { #[garde( custom(user_of_availability_has_function), @@ -18,24 +18,24 @@ pub struct AssignmentChangeset { #[garde( custom(available_time_fits), custom(start_date_time_lies_before_end_date_time), - custom(availabillity_not_already_assigned) + custom(availability_not_already_assigned) )] pub time: (NaiveDateTime, NaiveDateTime), } pub struct AssignmentContext { pub event: Event, - pub availabillity: Availability, + pub availability: Availability, pub user_function: UserFunction, pub assignments_for_event: Vec, - pub assignments_for_availabillity: Vec, + pub assignments_for_availability: Vec, } fn available_time_fits( value: &(NaiveDateTime, NaiveDateTime), context: &AssignmentContext, ) -> garde::Result { - if value.0 < context.availabillity.start || value.1 > context.availabillity.end { + if value.0 < context.availability.start || value.1 > context.availability.end { return Err(garde::Error::new( "time not made available can't be assigned", )); @@ -65,7 +65,7 @@ fn event_has_free_slot_for_function( .assignments_for_event .iter() .filter(|a| { - a.availabillity_id != context.availabillity.id && a.event_id != context.event.id + a.availability_id != context.availability.id && a.event_id != context.event.id }) .collect(); @@ -86,15 +86,15 @@ fn event_has_free_slot_for_function( Ok(()) } -fn availabillity_not_already_assigned( +fn availability_not_already_assigned( value: &(NaiveDateTime, NaiveDateTime), context: &AssignmentContext, ) -> garde::Result { let list: Vec<&Assignment> = context - .assignments_for_availabillity + .assignments_for_availability .iter() .filter(|a| { - a.availabillity_id != context.availabillity.id && a.event_id != context.event.id + a.availability_id != context.availability.id && a.event_id != context.event.id }) .collect(); @@ -107,7 +107,7 @@ fn availabillity_not_already_assigned( .any(|a| has_start_time_during_assignment(a) || has_end_time_during_assignment(a)) { return Err(garde::Error::new( - "availabillity is already assigned for that time", + "availability is already assigned for that time", )); } diff --git a/web/src/models/availabillity.rs b/web/src/models/availability.rs similarity index 73% rename from web/src/models/availabillity.rs rename to web/src/models/availability.rs index d3f00429..d679cb77 100644 --- a/web/src/models/availabillity.rs +++ b/web/src/models/availability.rs @@ -14,7 +14,6 @@ pub struct Availability { } impl Availability { - // TODO: fix db name pub async fn create( pool: &PgPool, user_id: i32, @@ -22,7 +21,7 @@ impl Availability { ) -> Result<()> { query!( r#" - INSERT INTO availabillity (userId, startTimestamp, endTimestamp, comment) + INSERT INTO availability (userId, startTimestamp, endTimestamp, comment) VALUES ($1, $2, $3, $4); "#, user_id, @@ -44,11 +43,11 @@ impl Availability { let records = query!( r##" SELECT - availabillity.id, - availabillity.userId, - availabillity.startTimestamp, - availabillity.endTimestamp, - availabillity.comment, + availability.id, + availability.userId, + availability.startTimestamp, + availability.endTimestamp, + availability.comment, user_.name, user_.email, user_.password, @@ -59,9 +58,9 @@ impl Availability { user_.locked, user_.lastLogin, user_.receiveNotifications - FROM availabillity - JOIN user_ ON availabillity.userId = user_.id - WHERE availabillity.startTimestamp::date = $1 + FROM availability + JOIN user_ ON availability.userId = user_.id + WHERE availability.startTimestamp::date = $1 AND user_.areaId = $2; "##, date, @@ -70,7 +69,7 @@ impl Availability { .fetch_all(pool) .await?; - let availabillities = records + let availabilities = records .iter() .map(|r| Availability { id: r.id, @@ -95,7 +94,7 @@ impl Availability { }) .collect(); - Ok(availabillities) + Ok(availabilities) } pub async fn read_by_date_time_area_including_user( @@ -107,11 +106,11 @@ impl Availability { let records = query!( r##" SELECT - availabillity.id, - availabillity.userId, - availabillity.startTimestamp, - availabillity.endTimestamp, - availabillity.comment, + availability.id, + availability.userId, + availability.startTimestamp, + availability.endTimestamp, + availability.comment, user_.name, user_.email, user_.password, @@ -122,11 +121,11 @@ impl Availability { user_.locked, user_.lastLogin, user_.receiveNotifications - FROM availabillity - JOIN user_ ON availabillity.userId = user_.id - WHERE availabillity.starttimestamp::date = $1 + FROM availability + JOIN user_ ON availability.userId = user_.id + WHERE availability.starttimestamp::date = $1 AND user_.areaId = $2 - AND availabillity.startTimestamp <= $3 AND availabillity.endTimestamp >= $4; + AND availability.startTimestamp <= $3 AND availability.endTimestamp >= $4; "##, date, area_id, @@ -136,7 +135,7 @@ impl Availability { .fetch_all(pool) .await?; - let availabillities = records + let availabilities = records .iter() .map(|r| Availability { id: r.id, @@ -161,18 +160,18 @@ impl Availability { }) .collect(); - Ok(availabillities) + Ok(availabilities) } pub async fn read_by_id_including_user(pool: &PgPool, id: i32) -> Result> { let record = query!( r##" SELECT - availabillity.id, - availabillity.userId, - availabillity.startTimestamp, - availabillity.endTimestamp, - availabillity.comment, + availability.id, + availability.userId, + availability.startTimestamp, + availability.endTimestamp, + availability.comment, user_.name, user_.email, user_.password, @@ -183,17 +182,17 @@ impl Availability { user_.locked, user_.lastLogin, user_.receiveNotifications - FROM availabillity - LEFT JOIN assignment ON availabillity.Id = assignment.availabillityId - JOIN user_ ON availabillity.userId = user_.id - WHERE availabillity.id = $1; + FROM availability + LEFT JOIN assignment ON availability.Id = assignment.availabilityId + JOIN user_ ON availability.userId = user_.id + WHERE availability.id = $1; "##, id ) .fetch_optional(pool) .await?; - let availabillity = record.map(|r| Availability { + let availability = record.map(|r| Availability { id: r.id, user_id: r.userid, user: Some(User { @@ -215,15 +214,15 @@ impl Availability { comment: r.comment.clone(), }); - Ok(availabillity) + Ok(availability) } pub async fn read_by_id(pool: &PgPool, id: i32) -> Result> { - let record = query!("SELECT * FROM availabillity WHERE id = $1", id) + let record = query!("SELECT * FROM availability WHERE id = $1", id) .fetch_optional(pool) .await?; - let availabillity = record.map(|record| Availability { + let availability = record.map(|record| Availability { id: record.id, user_id: record.userid, user: None, @@ -232,7 +231,7 @@ impl Availability { comment: record.comment.clone(), }); - Ok(availabillity) + Ok(availability) } pub async fn read_for_export( @@ -243,11 +242,11 @@ impl Availability { let records = query!( r##" SELECT - availabillity.id, - availabillity.userId, - availabillity.startTimestamp, - availabillity.endTimestamp, - availabillity.comment, + availability.id, + availability.userId, + availability.startTimestamp, + availability.endTimestamp, + availability.comment, user_.name, user_.email, user_.password, @@ -259,12 +258,12 @@ impl Availability { user_.lastLogin, user_.receiveNotifications, area.name AS areaName - FROM availabillity - JOIN user_ ON availabillity.userId = user_.id + FROM availability + JOIN user_ ON availability.userId = user_.id JOIN area ON user_.areaId = area.id WHERE user_.areaId = $1 AND - availabillity.starttimestamp::date >= $2 AND - availabillity.starttimestamp::date <= $3; + availability.starttimestamp::date >= $2 AND + availability.starttimestamp::date <= $3; "##, area_id, date_range.0, @@ -273,7 +272,7 @@ impl Availability { .fetch_all(pool) .await?; - let availabillities = records + let availabilities = records .iter() .map(|r| Availability { id: r.id, @@ -301,7 +300,7 @@ impl Availability { }) .collect(); - Ok(availabillities) + Ok(availabilities) } pub async fn read_by_user_and_date( @@ -312,14 +311,14 @@ impl Availability { let records = query!( r##" SELECT - availabillity.id, - availabillity.userId, - availabillity.startTimestamp, - availabillity.endTimestamp, - availabillity.comment - FROM availabillity - WHERE availabillity.userId = $1 - AND availabillity.starttimestamp::date = $2; + availability.id, + availability.userId, + availability.startTimestamp, + availability.endTimestamp, + availability.comment + FROM availability + WHERE availability.userId = $1 + AND availability.starttimestamp::date = $2; "##, user_id, date @@ -327,7 +326,7 @@ impl Availability { .fetch_all(pool) .await?; - let availabillities = records + let availabilities = records .iter() .map(|r| Availability { id: r.id, @@ -339,12 +338,12 @@ impl Availability { }) .collect(); - Ok(availabillities) + Ok(availabilities) } pub async fn update(pool: &PgPool, id: i32, changeset: AvailabilityChangeset) -> Result<()> { query!( - "UPDATE availabillity SET startTimestamp = $1, endTimestamp = $2, comment = $3 WHERE id = $4", + "UPDATE availability SET startTimestamp = $1, endTimestamp = $2, comment = $3 WHERE id = $4", changeset.time.0.and_utc(), changeset.time.1.and_utc(), changeset.comment, @@ -357,7 +356,7 @@ impl Availability { } pub async fn delete(pool: &PgPool, id: i32) -> Result<()> { - query!("DELETE FROM availabillity WHERE id = $1", id) + query!("DELETE FROM availability WHERE id = $1", id) .execute(pool) .await?; Ok(()) diff --git a/web/src/models/availability_assignment_state.rs b/web/src/models/availability_assignment_state.rs new file mode 100644 index 00000000..01c9ecb2 --- /dev/null +++ b/web/src/models/availability_assignment_state.rs @@ -0,0 +1,14 @@ +#[derive(PartialEq, Eq, Debug)] +pub enum AvailabilityAssignmentState { + // availability is not assigned at all or at least not timely conflicting + Unassigned, + // availability is assigned for another event that is timely conflicting + Conflicting, + // availability is assigned to this event as Posten + AssignedPosten(i32), + // availability is assigned to this event as Führungsassistent + AssignedFührungsassistent(i32), + // availability is assigned to this event as Wachhabender + AssignedWachhabender(i32), +} + diff --git a/web/src/models/availabillity_assignment_state.rs b/web/src/models/availabillity_assignment_state.rs deleted file mode 100644 index f8050b9f..00000000 --- a/web/src/models/availabillity_assignment_state.rs +++ /dev/null @@ -1,14 +0,0 @@ -#[derive(PartialEq, Eq, Debug)] -pub enum AvailabillityAssignmentState { - // availabillity is not assigned at all or at least not timely conflicting - Unassigned, - // availabillity is assigned for another event that is timely conflicting - Conflicting, - // availabillity is assigned to this event as Posten - AssignedPosten(i32), - // availabillity is assigned to this event as Führungsassistent - AssignedFührungsassistent(i32), - // availabillity is assigned to this event as Wachhabender - AssignedWachhabender(i32), -} - diff --git a/web/src/models/mod.rs b/web/src/models/mod.rs index 005f6c69..b86490d7 100644 --- a/web/src/models/mod.rs +++ b/web/src/models/mod.rs @@ -1,9 +1,9 @@ mod area; -mod assignement; +mod assignment; mod assignment_changeset; +mod availability; +mod availability_assignment_state; mod availability_changeset; -mod availabillity; -mod availabillity_assignment_state; mod event; mod event_changeset; mod function; @@ -15,17 +15,16 @@ mod user; mod user_changeset; mod user_funtion; mod vehicle; -mod vehicle_assignement; +mod vehicle_assignment; pub use area::Area; -pub use assignement::Assignment; +pub use assignment::Assignment; pub use assignment_changeset::{AssignmentChangeset, AssignmentContext}; +pub use availability::Availability; +pub use availability_assignment_state::AvailabilityAssignmentState; pub use availability_changeset::{ find_free_date_time_slots, AvailabilityChangeset, AvailabilityContext, }; -pub use availabillity::Availability; -pub use availabillity_assignment_state::AvailabillityAssignmentState; -use chrono::NaiveDateTime; pub use event::Event; pub use event_changeset::{EventChangeset, EventContext}; pub use function::Function; @@ -37,7 +36,9 @@ pub use user::User; pub use user_changeset::UserChangeset; pub use user_funtion::UserFunction; pub use vehicle::Vehicle; -pub use vehicle_assignement::VehicleAssignement; +pub use vehicle_assignment::VehicleAssignment; + +use chrono::NaiveDateTime; type Result = std::result::Result; diff --git a/web/src/models/vehicle_assignement.rs b/web/src/models/vehicle_assignment.rs similarity index 66% rename from web/src/models/vehicle_assignement.rs rename to web/src/models/vehicle_assignment.rs index aa09e105..7c563eef 100644 --- a/web/src/models/vehicle_assignement.rs +++ b/web/src/models/vehicle_assignment.rs @@ -3,14 +3,14 @@ use sqlx::{query, PgPool}; use super::Result; -pub struct VehicleAssignement { +pub struct VehicleAssignment { pub event_id: i32, pub vehicle_id: i32, pub start: NaiveDateTime, pub end: NaiveDateTime, } -impl VehicleAssignement { +impl VehicleAssignment { pub async fn create( pool: &PgPool, event_id: i32, @@ -19,7 +19,7 @@ impl VehicleAssignement { end: NaiveDateTime, ) -> Result<()> { query!( - "INSERT INTO vehicleassignement (eventId, vehicleId, startTimestamp, endTimestamp) VALUES ($1, $2, $3, $4);", + "INSERT INTO vehicleassignment (eventId, vehicleId, startTimestamp, endTimestamp) VALUES ($1, $2, $3, $4);", event_id, vehicle_id, start.and_utc(), @@ -35,11 +35,11 @@ impl VehicleAssignement { pool: &PgPool, event_id: i32, vehicle_id: i32, - ) -> Result> { - let record = query!("SELECT * FROM vehicleAssignement WHERE vehicleAssignement.eventId = $1 AND vehicleAssignement.vehicleId = $2;", event_id, vehicle_id).fetch_optional(pool) + ) -> Result> { + let record = query!("SELECT * FROM vehicleassignment WHERE vehicleassignment.eventId = $1 AND vehicleassignment.vehicleId = $2;", event_id, vehicle_id).fetch_optional(pool) .await?; - let vehicle_assignment = record.map(|r| VehicleAssignement { + let vehicle_assignment = record.map(|r| VehicleAssignment { event_id: r.eventid, vehicle_id: r.vehicleid, start: r.starttimestamp.naive_utc(), @@ -52,9 +52,9 @@ impl VehicleAssignement { pub async fn read_all_by_event( pool: &PgPool, event_id: i32, - ) -> Result> { + ) -> Result> { let records = query!( - "SELECT * FROM vehicleAssignement WHERE vehicleAssignement.eventId = $1;", + "SELECT * FROM vehicleassignment WHERE vehicleassignment.eventId = $1;", event_id ) .fetch_all(pool) @@ -62,7 +62,7 @@ impl VehicleAssignement { let vehicle_assignments = records .iter() - .map(|r| VehicleAssignement { + .map(|r| VehicleAssignment { event_id: r.eventid, vehicle_id: r.vehicleid, start: r.starttimestamp.naive_utc(), @@ -77,17 +77,17 @@ impl VehicleAssignement { pool: &PgPool, vehicle_id: i32, date: NaiveDate, - ) -> Result> { + ) -> Result> { let records = query!( r#" SELECT - vehicleAssignement.eventId, - vehicleAssignement.vehicleId, - vehicleAssignement.starttimestamp, - vehicleAssignement.endtimestamp - FROM vehicleAssignement - JOIN event ON vehicleAssignement.eventId = event.id - WHERE vehicleAssignement.vehicleid = $1 + vehicleassignment.eventId, + vehicleassignment.vehicleId, + vehicleassignment.starttimestamp, + vehicleassignment.endtimestamp + FROM vehicleassignment + JOIN event ON vehicleassignment.eventId = event.id + WHERE vehicleassignment.vehicleid = $1 AND event.starttimestamp::date = $2; "#, vehicle_id, @@ -98,7 +98,7 @@ impl VehicleAssignement { let vehicle_assignments = records .iter() - .map(|r| VehicleAssignement { + .map(|r| VehicleAssignment { event_id: r.eventid, vehicle_id: r.vehicleid, start: r.starttimestamp.naive_utc(), @@ -111,7 +111,7 @@ impl VehicleAssignement { pub async fn delete(pool: &PgPool, event_id: i32, vehicle_id: i32) -> Result<()> { query!( - "DELETE FROM vehicleassignement WHERE eventId = $1 AND vehicleId = $2;", + "DELETE FROM vehicleassignment WHERE eventId = $1 AND vehicleId = $2;", event_id, vehicle_id ) diff --git a/web/src/utils/event_planning_template.rs b/web/src/utils/event_planning_template.rs index 61f7ee0c..199399d9 100644 --- a/web/src/utils/event_planning_template.rs +++ b/web/src/utils/event_planning_template.rs @@ -1,17 +1,17 @@ use sqlx::PgPool; use crate::models::{ - Assignment, Availability, AvailabillityAssignmentState, Event, Function, Vehicle, - VehicleAssignement, + Assignment, Availability, AvailabilityAssignmentState, Event, Function, Vehicle, + VehicleAssignment, }; use super::ApplicationError; -pub async fn generate_availabillity_assignment_list( +pub async fn generate_availability_assignment_list( pool: &PgPool, event: &Event, -) -> Result, ApplicationError> { - let availabillities_in_db = Availability::read_by_date_time_area_including_user( +) -> Result, ApplicationError> { + let availabilities_in_db = Availability::read_by_date_time_area_including_user( pool, event.start.date(), (event.start, event.end), @@ -19,9 +19,9 @@ pub async fn generate_availabillity_assignment_list( ) .await?; - let mut availabillities = Vec::new(); - for availabillity in availabillities_in_db { - let assignments = Assignment::read_all_by_availabillity(pool, availabillity.id).await?; + let mut availabilities = Vec::new(); + for availability in availabilities_in_db { + let assignments = Assignment::read_all_by_availability(pool, availability.id).await?; if let Some(assignment) = assignments .iter() @@ -29,19 +29,19 @@ pub async fn generate_availabillity_assignment_list( { let state = match assignment.function { Function::Posten => { - AvailabillityAssignmentState::AssignedPosten(assignment.availabillity_id) + AvailabilityAssignmentState::AssignedPosten(assignment.availability_id) } Function::Fuehrungsassistent => { - AvailabillityAssignmentState::AssignedFührungsassistent( - assignment.availabillity_id, + AvailabilityAssignmentState::AssignedFührungsassistent( + assignment.availability_id, ) } Function::Wachhabender => { - AvailabillityAssignmentState::AssignedWachhabender(assignment.availabillity_id) + AvailabilityAssignmentState::AssignedWachhabender(assignment.availability_id) } }; - availabillities.push((availabillity, state)); + availabilities.push((availability, state)); continue; } @@ -53,15 +53,15 @@ pub async fn generate_availabillity_assignment_list( .iter() .any(|a| has_start_time_during_event(a) || has_end_time_during_event(a)) { - availabillities.push((availabillity, AvailabillityAssignmentState::Conflicting)); + availabilities.push((availability, AvailabilityAssignmentState::Conflicting)); continue; } - availabillities.push((availabillity, AvailabillityAssignmentState::Unassigned)); + availabilities.push((availability, AvailabilityAssignmentState::Unassigned)); } - //println!(" {availabillities:#?}"); - Ok(availabillities) + //println!(" {availabilities:#?}"); + Ok(availabilities) } pub async fn generate_status_whether_staff_is_required( @@ -100,7 +100,7 @@ pub async fn generate_vehicles_assigned_and_available( ) -> Result<(Vec, Vec), ApplicationError> { let all_vehicles = Vehicle::read_all(pool).await?; let existing_vehicle_assignments_for_event = - VehicleAssignement::read_all_by_event(pool, event.id).await?; + VehicleAssignment::read_all_by_event(pool, event.id).await?; let (vehicles_assigned, vehicles_available): (Vec, Vec) = all_vehicles.into_iter().partition(|v| { existing_vehicle_assignments_for_event diff --git a/web/templates/availability/new_or_edit.html b/web/templates/availability/new_or_edit.html index 3f673b31..c137b672 100644 --- a/web/templates/availability/new_or_edit.html +++ b/web/templates/availability/new_or_edit.html @@ -4,7 +4,7 @@
{% let is_edit = id.is_some() %} -
+

{% if is_edit %}Bearbeite{% else %}Neue{% endif %} Vefügbarkeit für den {{ date|date_d }}

diff --git a/web/templates/events/plan_personal_table.html b/web/templates/events/plan_personal_table.html index 5f06c625..edae46b4 100644 --- a/web/templates/events/plan_personal_table.html +++ b/web/templates/events/plan_personal_table.html @@ -19,35 +19,35 @@ - {% for (availabillity, status) in availabillities %} - {% let u = availabillity.user.as_ref().unwrap() %} + {% for (availability, status) in availabilities %} + {% let u = availability.user.as_ref().unwrap() %} {{ u.name }} {{ u.function|show_tree|safe }} - {{ availabillity.start.format("%R") }} bis {{ availabillity.end.format("%d.%m.%Y %R") }} + {{ availability.start.format("%R") }} bis {{ availability.end.format("%d.%m.%Y %R") }} - {{ availabillity.comment.as_deref().unwrap_or("") }} + {{ availability.comment.as_deref().unwrap_or("") }}