diff --git a/Cargo.lock b/Cargo.lock index 01f7646e..6e680ffc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -41,9 +41,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "android-tzdata" @@ -62,21 +62,21 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anyhow" -version = "1.0.81" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" +checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" [[package]] name = "async-compression" -version = "0.4.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07dbbf24db18d609b1462965249abdf49129ccad073ec257da372adc83259c60" +checksum = "9c90a406b4495d129f00461241616194cb8a032c8d1c53c657f0961d5f8e0498" dependencies = [ "flate2", "futures-core", @@ -87,13 +87,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.78" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] @@ -123,15 +123,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "aws-credential-types" -version = "1.1.8" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8587ae17c8e967e4b05a62d495be2fb7701bec52a97f7acfe8a29f938384c8" +checksum = "e16838e6c9e12125face1c1eff1343c75e3ff540de98ff7ebd61874a89bcfeb9" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -141,9 +141,9 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.1.8" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b13dc54b4b49f8288532334bba8f87386a40571c47c37b1304979b556dc613c8" +checksum = "75588e7ee5e8496eed939adac2035a6dbab9f7eb2acdd9ab2d31856dab6f3955" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -165,9 +165,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.20.0" +version = "1.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2090d4e1455988a3a09a3a695c66de0feef49ebbc3f87bf49a7344308bc5656" +checksum = "966646a69665bb0427460d78747204317f6639bdf5ec61305c4c5195af3dc086" dependencies = [ "ahash", "aws-credential-types", @@ -200,9 +200,9 @@ dependencies = [ [[package]] name = "aws-sigv4" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d6f29688a4be9895c0ba8bef861ad0c0dac5c15e9618b9b7a6c233990fc263" +checksum = "58b56f1cbe6fd4d0c2573df72868f20ab1c125ca9c9dbce17927a463433a2e57" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", @@ -229,9 +229,9 @@ dependencies = [ [[package]] name = "aws-smithy-async" -version = "1.1.8" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26ea8fa03025b2face2b3038a63525a10891e3d8829901d502e5384a0d8cd46" +checksum = "62220bc6e97f946ddd51b5f1361f78996e704677afc518a4ff66b7a72ea1378c" dependencies = [ "futures-util", "pin-project-lite", @@ -272,9 +272,9 @@ dependencies = [ [[package]] name = "aws-smithy-http" -version = "0.60.7" +version = "0.60.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f10fa66956f01540051b0aa7ad54574640f748f9839e843442d99b970d3aff9" +checksum = "4a7de001a1b9a25601016d8057ea16e31a45fdca3751304c8edf4ad72e706c08" dependencies = [ "aws-smithy-eventstream", "aws-smithy-runtime-api", @@ -302,9 +302,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.1.8" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec81002d883e5a7fd2bb063d6fb51c4999eb55d404f4fff3dd878bf4733b9f01" +checksum = "c9ac79e9f3a4d576f3cd4a470a0275b138d9e7b11b1cd514a6858ae0a79dd5bb" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -312,9 +312,10 @@ dependencies = [ "aws-smithy-types", "bytes", "fastrand", - "h2 0.3.25", + "h2", "http 0.2.12", "http-body 0.4.6", + "http-body 1.0.0", "hyper 0.14.28", "hyper-rustls", "once_cell", @@ -327,9 +328,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.2.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9acb931e0adaf5132de878f1398d83f8677f90ba70f01f65ff87f6d7244be1c5" +checksum = "04ec42c2f5c0e7796a2848dde4d9f3bf8ce12ccbb3d5aa40c52fa0cdd61a1c47" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -344,16 +345,19 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe14dceea1e70101d38fbf2a99e6a34159477c0fb95e68e05c66bd7ae4c3729" +checksum = "baf98d97bba6ddaba180f1b1147e202d8fe04940403a95a3f826c790f931bbd1" dependencies = [ "base64-simd", "bytes", "bytes-utils", "futures-core", "http 0.2.12", + "http 1.1.0", "http-body 0.4.6", + "http-body 1.0.0", + "http-body-util", "itoa", "num-integer", "pin-project-lite", @@ -367,18 +371,18 @@ dependencies = [ [[package]] name = "aws-smithy-xml" -version = "0.60.7" +version = "0.60.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "872c68cf019c0e4afc5de7753c4f7288ce4b71663212771bf5e4542eb9346ca9" +checksum = "d123fbc2a4adc3c301652ba8e149bf4bc1d1725affb9784eb20c953ace06bf55" dependencies = [ "xmlparser", ] [[package]] name = "aws-types" -version = "1.1.8" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dbf2f3da841a8930f159163175cf6a3d16ddde517c1b0fba7aa776822800f40" +checksum = "a807d90cd50a969b3d95e4e7ad1491fcae13c6e83948d8728363ecc09d66343a" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -391,9 +395,9 @@ dependencies = [ [[package]] name = "axum" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" +checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" dependencies = [ "async-trait", "axum-core", @@ -403,7 +407,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.0", "http-body-util", - "hyper 1.2.0", + "hyper 1.3.1", "hyper-util", "itoa", "matchit", @@ -417,7 +421,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", "tokio", "tower", "tower-layer", @@ -440,7 +444,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper", + "sync_wrapper 0.1.2", "tower-layer", "tower-service", "tracing", @@ -455,14 +459,14 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] name = "backtrace" -version = "0.3.70" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95d8e92cac0961e91dbd517496b00f7e9b92363dbe6d42c3198268323798860c" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -493,9 +497,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64-simd" @@ -551,9 +555,9 @@ dependencies = [ [[package]] name = "bson" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce21468c1c9c154a85696bb25c20582511438edb6ad67f846ba1378ffdd80222" +checksum = "4d43b38e074cc0de2957f10947e376a1d88b9c4dbab340b590800cc1b2e066b2" dependencies = [ "ahash", "base64 0.13.1", @@ -573,9 +577,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.4" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byteorder" @@ -585,9 +589,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "bytes-utils" @@ -601,9 +605,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.90" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4" [[package]] name = "cfg-if" @@ -613,9 +617,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.35" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", @@ -623,7 +627,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -687,9 +691,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.0.1" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" dependencies = [ "crc-catalog", ] @@ -834,9 +838,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "der" @@ -850,9 +854,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "pem-rfc7468", @@ -952,9 +956,9 @@ dependencies = [ [[package]] name = "either" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" dependencies = [ "serde", ] @@ -981,18 +985,18 @@ dependencies = [ [[package]] name = "emojis" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee61eb945bff65ee7d19d157d39c67c33290ff0742907413fd5eefd29edc979" +checksum = "9f619a926616ae7149a0d82610b051134a0d6c4ae2962d990c06c847a445c5d9" dependencies = [ "phf", ] [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -1017,9 +1021,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -1054,9 +1058,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "ff" @@ -1076,9 +1080,9 @@ checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "miniz_oxide", @@ -1202,7 +1206,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] @@ -1271,9 +1275,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "js-sys", @@ -1313,9 +1317,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -1330,30 +1334,11 @@ dependencies = [ "tracing", ] -[[package]] -name = "h2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ee2dd2e4f378392eeff5d51618cd9a63166a2513846bbc55f21cfacd9199d4" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 1.1.0", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", "allocator-api2", @@ -1529,14 +1514,14 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.3.25", + "h2", "http 0.2.12", "http-body 0.4.6", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.6", + "socket2 0.5.7", "tokio", "tower-service", "tracing", @@ -1545,14 +1530,13 @@ dependencies = [ [[package]] name = "hyper" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a" +checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.3", "http 1.1.0", "http-body 1.0.0", "httparse", @@ -1619,7 +1603,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.2.0", + "hyper 1.3.1", "hyper-util", "native-tls", "tokio", @@ -1638,9 +1622,9 @@ dependencies = [ "futures-util", "http 1.1.0", "http-body 1.0.0", - "hyper 1.2.0", + "hyper 1.3.1", "pin-project-lite", - "socket2 0.5.6", + "socket2 0.5.7", "tokio", "tower", "tower-service", @@ -1699,9 +1683,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown", @@ -1714,7 +1698,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.6", + "socket2 0.5.7", "widestring", "windows-sys 0.48.0", "winreg 0.50.0", @@ -1737,9 +1721,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" @@ -1776,9 +1760,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.153" +version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" [[package]] name = "libm" @@ -1788,13 +1772,12 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.5.0", "libc", - "redox_syscall", ] [[package]] @@ -1831,9 +1814,9 @@ checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -1893,9 +1876,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "mime" @@ -1953,7 +1936,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] @@ -2005,16 +1988,15 @@ dependencies = [ [[package]] name = "multer" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15d522be0a9c3e46fd2632e272d178f56387bdb5c9fbb3a36c649062e9b5219" +checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" dependencies = [ "bytes", "encoding_rs", "futures-util", "http 1.1.0", "httparse", - "log", "memchr", "mime", "spin 0.9.8", @@ -2061,11 +2043,10 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" dependencies = [ - "autocfg", "num-integer", "num-traits", ] @@ -2115,9 +2096,9 @@ dependencies = [ [[package]] name = "num-iter" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -2126,9 +2107,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", "libm", @@ -2182,7 +2163,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] @@ -2193,9 +2174,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.101" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -2234,9 +2215,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" dependencies = [ "lock_api", "parking_lot_core", @@ -2244,31 +2225,31 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.1", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] name = "parse-zoneinfo" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41" +checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" dependencies = [ "regex", ] [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -2281,11 +2262,11 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "serde", ] @@ -2359,14 +2340,14 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -2380,7 +2361,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" dependencies = [ - "der 0.7.8", + "der 0.7.9", "pkcs8 0.10.2", "spki 0.7.3", ] @@ -2401,7 +2382,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.7.8", + "der 0.7.9", "spki 0.7.3", ] @@ -2475,9 +2456,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] @@ -2490,9 +2471,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -2542,11 +2523,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", @@ -2555,9 +2545,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", @@ -2584,9 +2574,9 @@ checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "reqwest" @@ -2599,7 +2589,7 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2 0.3.25", + "h2", "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", @@ -2616,7 +2606,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration", "tokio", "tokio-native-tls", @@ -2630,18 +2620,18 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e6cc1e89e689536eb5aeede61520e874df5a4707df811cd5da4aa5fbb2aae19" +checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "bytes", "futures-core", "futures-util", "http 1.1.0", "http-body 1.0.0", "http-body-util", - "hyper 1.2.0", + "hyper 1.3.1", "hyper-tls 0.6.0", "hyper-util", "ipnet", @@ -2656,7 +2646,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "tokio", "tokio-native-tls", "tower-service", @@ -2764,9 +2754,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc_version" @@ -2783,7 +2773,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.22", + "semver 1.0.23", ] [[package]] @@ -2798,9 +2788,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.32" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ "bitflags 2.5.0", "errno", @@ -2811,9 +2801,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring 0.17.8", @@ -2848,15 +2838,15 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.4.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" [[package]] name = "rustls-webpki" @@ -2870,15 +2860,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "schannel" @@ -2921,11 +2911,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", "core-foundation", "core-foundation-sys", "libc", @@ -2934,9 +2924,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -2953,9 +2943,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "semver-parser" @@ -2970,7 +2960,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b3e6f961e931130444f970c2af8cb203deea0ffd09bb6d2e79c05a36bc6ef9" dependencies = [ "data-encoding", - "reqwest 0.12.3", + "reqwest 0.12.4", "serde", "serde_json", "thiserror", @@ -2979,9 +2969,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.197" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" dependencies = [ "serde_derive", ] @@ -2997,20 +2987,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "indexmap", "itoa", @@ -3064,9 +3054,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.30" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ "indexmap", "itoa", @@ -3119,9 +3109,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -3191,9 +3181,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3249,7 +3239,7 @@ version = "0.1.0" dependencies = [ "anyhow", "axum", - "base64 0.22.0", + "base64 0.22.1", "chrono", "chrono-tz", "csv", @@ -3321,7 +3311,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", - "der 0.7.8", + "der 0.7.9", ] [[package]] @@ -3576,9 +3566,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.53" +version = "2.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" +checksum = "7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f" dependencies = [ "proc-macro2", "quote", @@ -3591,6 +3581,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + [[package]] name = "system-configuration" version = "0.5.1" @@ -3644,22 +3640,22 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.58" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.58" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] @@ -3674,9 +3670,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -3695,9 +3691,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -3720,9 +3716,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -3732,16 +3728,16 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.6", + "socket2 0.5.7", "tokio-macros", "windows-sys 0.48.0", ] [[package]] name = "tokio-cron-scheduler" -version = "0.10.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1215c91d6f74868e18a65bda99853e012cfb2a0e42f3438382e318277da76a0" +checksum = "a4c2e3a88f827f597799cf70a6f673074e62f3fc5ba5993b2873345c618a29af" dependencies = [ "chrono", "cron", @@ -3760,7 +3756,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] @@ -3808,9 +3804,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", @@ -3818,7 +3814,6 @@ dependencies = [ "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -3886,7 +3881,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] @@ -4037,9 +4032,9 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] name = "unsafe-libyaml" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "untrusted" @@ -4072,9 +4067,9 @@ checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" [[package]] name = "utoipa" -version = "4.2.0" +version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "272ebdfbc99111033031d2f10e018836056e4d2c8e2acda76450ec7974269fa7" +checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" dependencies = [ "indexmap", "serde", @@ -4085,15 +4080,15 @@ dependencies = [ [[package]] name = "utoipa-gen" -version = "4.2.0" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3c9f4d08338c1bfa70dde39412a040a884c6f318b3d09aaaf3437a1e52027fc" +checksum = "7bf0e16c02bc4bf5322ab65f10ab1149bdbcaa782cba66dc7057370a3f8190be" dependencies = [ "proc-macro-error", "proc-macro2", "quote", "regex", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] @@ -4172,7 +4167,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", "wasm-bindgen-shared", ] @@ -4206,7 +4201,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4251,15 +4246,15 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" dependencies = [ - "redox_syscall", + "redox_syscall 0.4.1", "wasite", ] [[package]] name = "widestring" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "winapi" @@ -4289,7 +4284,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -4307,7 +4302,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -4327,17 +4322,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -4348,9 +4344,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -4360,9 +4356,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -4372,9 +4368,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -4384,9 +4386,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -4396,9 +4398,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -4408,9 +4410,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -4420,9 +4422,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winreg" @@ -4461,22 +4463,22 @@ checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.64", ] [[package]] diff --git a/crates/sos24-domain/src/entity/form.rs b/crates/sos24-domain/src/entity/form.rs index c2a790f4..5e73aac7 100644 --- a/crates/sos24-domain/src/entity/form.rs +++ b/crates/sos24-domain/src/entity/form.rs @@ -56,6 +56,7 @@ pub struct Form { } impl Form { + #[allow(clippy::too_many_arguments)] pub fn create( title: FormTitle, description: FormDescription, @@ -255,6 +256,14 @@ impl Form { pub fn is_started(&self, now: &chrono::DateTime) -> bool { &self.starts_at.clone().value() <= now } + + pub fn is_ended(&self, now: &chrono::DateTime) -> bool { + &self.ends_at.clone().value() <= now + } + + pub fn can_be_updated(&self, actor: &Actor, now: &chrono::DateTime) -> bool { + !self.is_ended(now) || actor.has_permission(Permissions::UPDATE_FORM_ANSWER_ANYTIME) + } } impl_value_object!(FormId(uuid::Uuid)); @@ -591,8 +600,8 @@ mod tests { let form = Form::create( fixture::form::title1(), fixture::form::description1(), - fixture::form::starts_at1(), - fixture::form::ends_at1(), + fixture::form::starts_at1_opened(), + fixture::form::ends_at1_opened(), fixture::form::categories1(), fixture::form::attributes1(), fixture::form::items1(), @@ -606,8 +615,8 @@ mod tests { let form = Form::create( fixture::form::title1(), fixture::form::description1(), - fixture::form::ends_at1(), - fixture::form::starts_at1(), + fixture::form::ends_at1_opened(), + fixture::form::starts_at1_opened(), fixture::form::categories1(), fixture::form::attributes1(), fixture::form::items1(), diff --git a/crates/sos24-domain/src/entity/news.rs b/crates/sos24-domain/src/entity/news.rs index 7dfd91bc..94b58cdb 100644 --- a/crates/sos24-domain/src/entity/news.rs +++ b/crates/sos24-domain/src/entity/news.rs @@ -33,6 +33,7 @@ pub struct News { } impl News { + #[allow(clippy::too_many_arguments)] pub fn new( id: NewsId, title: NewsTitle, diff --git a/crates/sos24-domain/src/entity/permission.rs b/crates/sos24-domain/src/entity/permission.rs index 44fe77e8..107a4e86 100644 --- a/crates/sos24-domain/src/entity/permission.rs +++ b/crates/sos24-domain/src/entity/permission.rs @@ -36,13 +36,14 @@ bitflags! { const CREATE_FORM_ANSWER = 1 << 20; const READ_FORM_ANSWER_ALL = 1 << 21; const UPDATE_FORM_ANSWER_ALL = 1 << 22; + const UPDATE_FORM_ANSWER_ANYTIME = 1 << 23; - const CREATE_FILE_PRIVATE = 1 << 23; - const CREATE_FILE_PUBLIC = 1 << 24; - const READ_FILE_ALL = 1 << 25; - const DELETE_FILE_ALL = 1 << 26; + const CREATE_FILE_PRIVATE = 1 << 24; + const CREATE_FILE_PUBLIC = 1 << 25; + const READ_FILE_ALL = 1 << 26; + const DELETE_FILE_ALL = 1 << 27; - const CREATE_PROJECT_ANYTIME = 1 << 27; + const CREATE_PROJECT_ANYTIME = 1 << 28; } } @@ -67,6 +68,7 @@ impl UserRole { | Permissions::DELETE_INVITATION_ALL | Permissions::CREATE_INVITATION_ANYTIME | Permissions::UPDATE_FORM_ANSWER_ALL + | Permissions::UPDATE_FORM_ANSWER_ANYTIME | Permissions::CREATE_FILE_PUBLIC | Permissions::DELETE_FILE_ALL | Permissions::CREATE_PROJECT_ANYTIME diff --git a/crates/sos24-domain/src/entity/user.rs b/crates/sos24-domain/src/entity/user.rs index f17620c2..354cdcc7 100644 --- a/crates/sos24-domain/src/entity/user.rs +++ b/crates/sos24-domain/src/entity/user.rs @@ -33,6 +33,7 @@ pub struct User { } impl User { + #[allow(clippy::too_many_arguments)] pub fn new( id: UserId, name: UserName, diff --git a/crates/sos24-domain/src/test/fixture/form.rs b/crates/sos24-domain/src/test/fixture/form.rs index 17133d02..69fa457a 100644 --- a/crates/sos24-domain/src/test/fixture/form.rs +++ b/crates/sos24-domain/src/test/fixture/form.rs @@ -24,12 +24,36 @@ pub fn description1() -> FormDescription { FormDescription::new("そぽたん申請です".to_string()) } -pub fn starts_at1() -> DateTime { - DateTime::try_from("2021-01-01T00:00:00+00:00".to_string()).unwrap() +pub fn starts_at1_opened() -> DateTime { + DateTime::new( + chrono::Utc::now() + .checked_sub_days(chrono::Days::new(1)) + .unwrap(), + ) +} + +pub fn ends_at1_opened() -> DateTime { + DateTime::new( + chrono::Utc::now() + .checked_add_days(chrono::Days::new(1)) + .unwrap(), + ) } -pub fn ends_at1() -> DateTime { - DateTime::try_from("2021-01-01T23:59:59+00:00".to_string()).unwrap() +pub fn starts_at1_closed() -> DateTime { + DateTime::new( + chrono::Utc::now() + .checked_sub_days(chrono::Days::new(2)) + .unwrap(), + ) +} + +pub fn ends_at1_closed() -> DateTime { + DateTime::new( + chrono::Utc::now() + .checked_sub_days(chrono::Days::new(1)) + .unwrap(), + ) } pub fn categories1() -> ProjectCategories { @@ -83,13 +107,30 @@ pub fn attachments1() -> Vec { vec![] } -pub fn form1() -> Form { +pub fn form1_opened() -> Form { + Form::new( + id1(), + title1(), + description1(), + starts_at1_opened(), + ends_at1_opened(), + categories1(), + attributes1(), + is_notified1(), + items1(), + attachments1(), + datetime::now(), + datetime::now(), + ) +} + +pub fn form1_closed() -> Form { Form::new( id1(), title1(), description1(), - starts_at1(), - ends_at1(), + starts_at1_closed(), + ends_at1_closed(), categories1(), attributes1(), is_notified1(), diff --git a/crates/sos24-infrastructure/src/email.rs b/crates/sos24-infrastructure/src/email.rs index 53a2696a..9ade0d7c 100644 --- a/crates/sos24-infrastructure/src/email.rs +++ b/crates/sos24-infrastructure/src/email.rs @@ -8,17 +8,17 @@ pub struct SendGridEmailSender { } trait EmailToSendGridEmail { - fn into_email<'a>(&'a self) -> Email; + fn to_email(&self) -> Email; } impl EmailToSendGridEmail for email::Email { - fn into_email<'a>(&'a self) -> Email { + fn to_email(&self) -> Email { Email::new(&self.address).set_name(&self.name) } } impl EmailToSendGridEmail for String { - fn into_email<'a>(&'a self) -> Email { + fn to_email(&self) -> Email { Email::new(self) } } @@ -42,7 +42,7 @@ impl EmailSender for SendGridEmailSender { return Ok(()); } - let mut message = Message::new(command.from.into_email()) + let mut message = Message::new(command.from.to_email()) .set_subject(&command.subject) .add_content( Content::new() @@ -51,7 +51,7 @@ impl EmailSender for SendGridEmailSender { ) .add_category("sos"); if let Some(ref reply_to) = command.reply_to { - message = message.set_reply_to(reply_to.into_email()); + message = message.set_reply_to(reply_to.to_email()); } // 宛先数が1000件より多い場合は分割して送信する必要がある @@ -61,7 +61,7 @@ impl EmailSender for SendGridEmailSender { } for address in &command.to { - message = message.add_personalization(Personalization::new(address.into_email())); + message = message.add_personalization(Personalization::new(address.to_email())); } self.sender.send(&message).await?; diff --git a/crates/sos24-presentation/src/error/convert_error.rs b/crates/sos24-presentation/src/error/convert_error.rs index 51413213..4ec2252f 100644 --- a/crates/sos24-presentation/src/error/convert_error.rs +++ b/crates/sos24-presentation/src/error/convert_error.rs @@ -126,6 +126,11 @@ impl From for AppError { "form-answer/export-failed".to_string(), message, ), + FormAnswerUseCaseError::FormClosed => AppError::new( + StatusCode::BAD_REQUEST, + "form-answer/form-closed".to_string(), + message, + ), FormAnswerUseCaseError::FormIdError(e) => e.into(), FormAnswerUseCaseError::ProjectIdError(e) => e.into(), FormAnswerUseCaseError::FormUseCaseError(e) => e.into(), diff --git a/crates/sos24-presentation/src/model/form_answer.rs b/crates/sos24-presentation/src/model/form_answer.rs index b28c01b7..e3b919a7 100644 --- a/crates/sos24-presentation/src/model/form_answer.rs +++ b/crates/sos24-presentation/src/model/form_answer.rs @@ -116,6 +116,8 @@ pub struct FormAnswerSummary { form_id: String, form_title: String, #[schema(format = "date-time")] + created_at: String, + #[schema(format = "date-time")] updated_at: String, } @@ -127,7 +129,8 @@ impl From for FormAnswerSummary { project_title: form_answer_dto.project_title, form_id: form_answer_dto.form_id, form_title: form_answer_dto.form_title, - updated_at: form_answer_dto.updated_at.to_rfc3339(), + created_at: form_answer_dto.created_at.to_rfc3339(), + updated_at: form_answer_dto.created_at.to_rfc3339(), } } } diff --git a/crates/sos24-presentation/src/module.rs b/crates/sos24-presentation/src/module.rs index 0fb477c8..da7a1581 100644 --- a/crates/sos24-presentation/src/module.rs +++ b/crates/sos24-presentation/src/module.rs @@ -11,26 +11,27 @@ use sos24_use_case::{ }; #[cfg(not(test))] -mod module { +mod modules { pub type Repositories = sos24_infrastructure::DefaultRepositories; pub type Adapters = sos24_infrastructure::DefaultAdapters; } #[cfg(test)] -mod module { +#[allow(clippy::items_after_test_module)] +mod modules { pub type Repositories = sos24_domain::test::repository::MockRepositories; pub type Adapters = sos24_use_case::shared::adapter::MockAdapters; } pub struct Modules { config: Config, - form_use_case: FormUseCase, - form_answer_use_case: FormAnswerUseCase, - invitation_use_case: InvitationUseCase, - news_use_case: NewsUseCase, - file_use_case: FileUseCase, - project_use_case: ProjectUseCase, - user_use_case: UserUseCase, + form_use_case: FormUseCase, + form_answer_use_case: FormAnswerUseCase, + invitation_use_case: InvitationUseCase, + news_use_case: NewsUseCase, + file_use_case: FileUseCase, + project_use_case: ProjectUseCase, + user_use_case: UserUseCase, } impl Modules { @@ -38,31 +39,31 @@ impl Modules { &self.config } - pub fn form_use_case(&self) -> &FormUseCase { + pub fn form_use_case(&self) -> &FormUseCase { &self.form_use_case } - pub fn form_answer_use_case(&self) -> &FormAnswerUseCase { + pub fn form_answer_use_case(&self) -> &FormAnswerUseCase { &self.form_answer_use_case } - pub fn invitation_use_case(&self) -> &InvitationUseCase { + pub fn invitation_use_case(&self) -> &InvitationUseCase { &self.invitation_use_case } - pub fn news_use_case(&self) -> &NewsUseCase { + pub fn news_use_case(&self) -> &NewsUseCase { &self.news_use_case } - pub fn file_use_case(&self) -> &FileUseCase { + pub fn file_use_case(&self) -> &FileUseCase { &self.file_use_case } - pub fn project_use_case(&self) -> &ProjectUseCase { + pub fn project_use_case(&self) -> &ProjectUseCase { &self.project_use_case } - pub fn user_use_case(&self) -> &UserUseCase { + pub fn user_use_case(&self) -> &UserUseCase { &self.user_use_case } } @@ -93,7 +94,7 @@ pub async fn new(config: Config) -> anyhow::Result { object_storage, )); - let send_grid = SendGrid::new(&env::send_grid_api_key()); + let send_grid = SendGrid::new(env::send_grid_api_key()); let adapters = Arc::new(sos24_infrastructure::DefaultAdapters::new( send_grid, env::slack_webhook_url(), diff --git a/crates/sos24-presentation/src/route/form_answer.rs b/crates/sos24-presentation/src/route/form_answer.rs index 4f0ab1e7..681cfe8a 100644 --- a/crates/sos24-presentation/src/route/form_answer.rs +++ b/crates/sos24-presentation/src/route/form_answer.rs @@ -12,7 +12,7 @@ use percent_encoding::NON_ALPHANUMERIC; use sos24_use_case::form_answer::interactor::create::CreateFormAnswerCommand; use crate::context::Context; -use crate::csv::{serialize_to_csv, CsvSerializationError}; +use crate::csv::serialize_to_csv; use crate::model::form_answer::{ CreatedFormAnswer, ExportFormAnswerQuery, FormAnswerSummary, UpdateFormAnswer, }; @@ -154,7 +154,7 @@ pub async fn handle_export( AppError::from(err) })?; - let data = (|| -> Result { + let data = { let mut csv_data = vec![]; let form_item_names_len = form_answer_list.form_item_names.len(); @@ -184,7 +184,7 @@ pub async fn handle_export( } serialize_to_csv(csv_data) - })() + } .map_err(|err| { tracing::error!("Failed to serialize to csv: {err:?}"); AppError::from(err) diff --git a/crates/sos24-use-case/src/form/interactor/check_form_and_send_notify.rs b/crates/sos24-use-case/src/form/interactor/check_form_and_send_notify.rs index 4f7e2389..6d5cb4d4 100644 --- a/crates/sos24-use-case/src/form/interactor/check_form_and_send_notify.rs +++ b/crates/sos24-use-case/src/form/interactor/check_form_and_send_notify.rs @@ -1,5 +1,3 @@ -use std::convert::identity; - use chrono_tz::Asia::Tokyo; use sos24_domain::repository::{form::FormRepository, project::ProjectRepository, Repositories}; @@ -42,7 +40,7 @@ impl FormUseCase { .map(|it| it.email().clone().value()), ] }) - .filter_map(identity) + .flatten() .collect::>(); let command = SendEmailCommand { diff --git a/crates/sos24-use-case/src/form/interactor/create.rs b/crates/sos24-use-case/src/form/interactor/create.rs index b2474c48..e3001b3a 100644 --- a/crates/sos24-use-case/src/form/interactor/create.rs +++ b/crates/sos24-use-case/src/form/interactor/create.rs @@ -113,8 +113,8 @@ mod tests { CreateFormCommand { title: fixture::form::title1().value(), description: fixture::form::description1().value(), - starts_at: fixture::form::starts_at1().value().to_rfc3339(), - ends_at: fixture::form::ends_at1().value().to_rfc3339(), + starts_at: fixture::form::starts_at1_opened().value().to_rfc3339(), + ends_at: fixture::form::ends_at1_opened().value().to_rfc3339(), categories: ProjectCategoriesDto::from(fixture::form::categories1()), attributes: ProjectAttributesDto::from(fixture::form::attributes1()), items: vec![NewFormItemDto::new( @@ -159,8 +159,8 @@ mod tests { CreateFormCommand { title: fixture::form::title1().value(), description: fixture::form::description1().value(), - starts_at: fixture::form::starts_at1().value().to_rfc3339(), - ends_at: fixture::form::ends_at1().value().to_rfc3339(), + starts_at: fixture::form::starts_at1_opened().value().to_rfc3339(), + ends_at: fixture::form::ends_at1_opened().value().to_rfc3339(), categories: ProjectCategoriesDto::from(fixture::form::categories1()), attributes: ProjectAttributesDto::from(fixture::form::attributes1()), items: vec![NewFormItemDto::new( diff --git a/crates/sos24-use-case/src/form/interactor/delete_by_id.rs b/crates/sos24-use-case/src/form/interactor/delete_by_id.rs index 99f81800..8aa06f24 100644 --- a/crates/sos24-use-case/src/form/interactor/delete_by_id.rs +++ b/crates/sos24-use-case/src/form/interactor/delete_by_id.rs @@ -79,7 +79,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_find_by_form_id() @@ -104,7 +104,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_find_by_form_id() diff --git a/crates/sos24-use-case/src/form/interactor/find_by_id.rs b/crates/sos24-use-case/src/form/interactor/find_by_id.rs index 23268d78..7e10975d 100644 --- a/crates/sos24-use-case/src/form/interactor/find_by_id.rs +++ b/crates/sos24-use-case/src/form/interactor/find_by_id.rs @@ -61,7 +61,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .project_repository_mut() .expect_find_by_owner_id() diff --git a/crates/sos24-use-case/src/form/interactor/update.rs b/crates/sos24-use-case/src/form/interactor/update.rs index 05603e97..34199c36 100644 --- a/crates/sos24-use-case/src/form/interactor/update.rs +++ b/crates/sos24-use-case/src/form/interactor/update.rs @@ -145,7 +145,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_find_by_form_id() @@ -191,7 +191,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_find_by_form_id() diff --git a/crates/sos24-use-case/src/form_answer.rs b/crates/sos24-use-case/src/form_answer.rs index 64d7dbbc..e89209b1 100644 --- a/crates/sos24-use-case/src/form_answer.rs +++ b/crates/sos24-use-case/src/form_answer.rs @@ -42,6 +42,8 @@ pub enum FormAnswerUseCaseError { NotProjectOwner, #[error("Export failed")] ExportFailed, + #[error("Form closed")] + FormClosed, #[error(transparent)] FileIdError(#[from] FileIdError), diff --git a/crates/sos24-use-case/src/form_answer/interactor/create.rs b/crates/sos24-use-case/src/form_answer/interactor/create.rs index 03edf2e8..3f2a66ee 100644 --- a/crates/sos24-use-case/src/form_answer/interactor/create.rs +++ b/crates/sos24-use-case/src/form_answer/interactor/create.rs @@ -152,7 +152,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_create() @@ -234,7 +234,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_create() diff --git a/crates/sos24-use-case/src/form_answer/interactor/export_by_form_id.rs b/crates/sos24-use-case/src/form_answer/interactor/export_by_form_id.rs index 2dcc1b87..38416b17 100644 --- a/crates/sos24-use-case/src/form_answer/interactor/export_by_form_id.rs +++ b/crates/sos24-use-case/src/form_answer/interactor/export_by_form_id.rs @@ -73,11 +73,11 @@ impl FormAnswerUseCase { }); } - Ok(dbg!(FormAnswerToBeExportedListDto { + Ok(FormAnswerToBeExportedListDto { form_title: form.title().clone().value(), form_item_names: header, form_answers, - })) + }) } } diff --git a/crates/sos24-use-case/src/form_answer/interactor/find_by_form_id.rs b/crates/sos24-use-case/src/form_answer/interactor/find_by_form_id.rs index 90484722..151224bf 100644 --- a/crates/sos24-use-case/src/form_answer/interactor/find_by_form_id.rs +++ b/crates/sos24-use-case/src/form_answer/interactor/find_by_form_id.rs @@ -89,7 +89,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_find_by_form_id() diff --git a/crates/sos24-use-case/src/form_answer/interactor/find_by_id.rs b/crates/sos24-use-case/src/form_answer/interactor/find_by_id.rs index ce278727..18b1cb4a 100644 --- a/crates/sos24-use-case/src/form_answer/interactor/find_by_id.rs +++ b/crates/sos24-use-case/src/form_answer/interactor/find_by_id.rs @@ -86,7 +86,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); let use_case = FormAnswerUseCase::new(Arc::new(repositories)); let ctx = TestContext::new(fixture::actor::actor1(UserRole::General)); @@ -151,7 +151,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); let use_case = FormAnswerUseCase::new(Arc::new(repositories)); let ctx = TestContext::new(fixture::actor::actor1(UserRole::Committee)); diff --git a/crates/sos24-use-case/src/form_answer/interactor/update.rs b/crates/sos24-use-case/src/form_answer/interactor/update.rs index 34927ef3..99112bae 100644 --- a/crates/sos24-use-case/src/form_answer/interactor/update.rs +++ b/crates/sos24-use-case/src/form_answer/interactor/update.rs @@ -36,6 +36,18 @@ impl FormAnswerUseCase { ensure!(form_answer.is_updatable_by(&actor, owned_project_id.clone())); + let form_id = form_answer.form_id().clone(); + let form = self + .repositories + .form_repository() + .find_by_id(form_id.clone()) + .await? + .ok_or(FormAnswerUseCaseError::FormNotFound(form_id))?; + + if !form.can_be_updated(&actor, ctx.requested_at()) { + return Err(FormAnswerUseCaseError::FormClosed); + } + let mut new_form_answer = form_answer; let new_items = form_answer_data .items @@ -44,14 +56,6 @@ impl FormAnswerUseCase { .collect::>()?; new_form_answer.set_items(&actor, owned_project_id, new_items)?; - let form_id = new_form_answer.form_id().clone(); - let form = self - .repositories - .form_repository() - .find_by_id(form_id.clone()) - .await? - .ok_or(FormAnswerUseCaseError::FormNotFound(form_id))?; - verify_form_answer::verify(&form, &new_form_answer)?; self.repositories @@ -101,7 +105,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_update() @@ -146,7 +150,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_update() @@ -196,7 +200,7 @@ mod tests { repositories .form_repository_mut() .expect_find_by_id() - .returning(|_| Ok(Some(fixture::form::form1()))); + .returning(|_| Ok(Some(fixture::form::form1_opened()))); repositories .form_answer_repository_mut() .expect_update() @@ -218,4 +222,98 @@ mod tests { .await; assert!(matches!(res, Ok(()))); } + + #[tokio::test] + async fn 実委人は回答終了時刻後に回答を更新できない() { + let mut repositories = MockRepositories::default(); + repositories + .project_repository_mut() + .expect_find_by_owner_id() + .returning(|_| { + Ok(Some(fixture::project::project_with_owners1( + fixture::user::user1(UserRole::Committee), + ))) + }); + repositories + .project_repository_mut() + .expect_find_by_sub_owner_id() + .returning(|_| Ok(None)); + repositories + .form_answer_repository_mut() + .expect_find_by_id() + .returning(|_| { + Ok(Some(fixture::form_answer::form_answer1( + fixture::project::id1(), + ))) + }); + repositories + .form_repository_mut() + .expect_find_by_id() + .returning(|_| Ok(Some(fixture::form::form1_closed()))); + repositories + .form_answer_repository_mut() + .expect_update() + .returning(|_| Ok(())); + let use_case = FormAnswerUseCase::new(Arc::new(repositories)); + + let ctx = TestContext::new(fixture::actor::actor1(UserRole::Committee)); + let res = use_case + .update( + &ctx, + UpdateFormAnswerCommand { + id: fixture::form_answer::id1().value().to_string(), + items: fixture::form_answer::items2() + .into_iter() + .map(FormAnswerItemDto::from) + .collect(), + }, + ) + .await; + assert!(matches!(res, Err(FormAnswerUseCaseError::FormClosed))); + } + + #[tokio::test] + async fn 実委人管理者は回答終了時刻後に回答を更新できる() { + let mut repositories = MockRepositories::default(); + repositories + .project_repository_mut() + .expect_find_by_owner_id() + .returning(|_| Ok(None)); + repositories + .project_repository_mut() + .expect_find_by_sub_owner_id() + .returning(|_| Ok(None)); + repositories + .form_answer_repository_mut() + .expect_find_by_id() + .returning(|_| { + Ok(Some(fixture::form_answer::form_answer1( + fixture::project::id1(), + ))) + }); + repositories + .form_repository_mut() + .expect_find_by_id() + .returning(|_| Ok(Some(fixture::form::form1_closed()))); + repositories + .form_answer_repository_mut() + .expect_update() + .returning(|_| Ok(())); + let use_case = FormAnswerUseCase::new(Arc::new(repositories)); + + let ctx = TestContext::new(fixture::actor::actor1(UserRole::CommitteeOperator)); + let res = use_case + .update( + &ctx, + UpdateFormAnswerCommand { + id: fixture::form_answer::id1().value().to_string(), + items: fixture::form_answer::items2() + .into_iter() + .map(FormAnswerItemDto::from) + .collect(), + }, + ) + .await; + assert!(res.is_ok()); + } } diff --git a/crates/sos24-use-case/src/news/interactor/create.rs b/crates/sos24-use-case/src/news/interactor/create.rs index ab54530e..c9397a4c 100644 --- a/crates/sos24-use-case/src/news/interactor/create.rs +++ b/crates/sos24-use-case/src/news/interactor/create.rs @@ -1,5 +1,3 @@ -use std::convert::identity; - use sos24_domain::{ ensure, entity::{ @@ -88,7 +86,7 @@ impl NewsUseCase { .map(|it| it.email().clone().value()), ] }) - .filter_map(identity) + .flatten() .collect::>(); let command = SendEmailCommand { diff --git a/crates/sos24-use-case/src/project/dto.rs b/crates/sos24-use-case/src/project/dto.rs index e6a8c2af..0e824789 100644 --- a/crates/sos24-use-case/src/project/dto.rs +++ b/crates/sos24-use-case/src/project/dto.rs @@ -83,9 +83,9 @@ impl fmt::Display for ProjectCategoryDto { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { match self { ProjectCategoryDto::General => write!(f, "普通企画"), - ProjectCategoryDto::FoodsWithKitchen => write!(f, "調理企画(仕込み場が必要)"), - ProjectCategoryDto::FoodsWithoutKitchen => write!(f, "調理企画(仕込み場が不要)"), - ProjectCategoryDto::FoodsWithoutCooking => write!(f, "既成食品販売企画"), + ProjectCategoryDto::FoodsWithKitchen => write!(f, "調理企画(仕込場が必要)"), + ProjectCategoryDto::FoodsWithoutKitchen => write!(f, "調理企画(仕込場が不要)"), + ProjectCategoryDto::FoodsWithoutCooking => write!(f, "既製食品販売企画"), ProjectCategoryDto::Stage1A => write!(f, "ステージ企画(1Aステージ)"), ProjectCategoryDto::StageUniversityHall => write!(f, "ステージ企画(大学会館ステージ)"), ProjectCategoryDto::StageUnited => write!(f, "ステージ企画(UNITEDステージ)"), @@ -126,7 +126,7 @@ pub struct ProjectCategoriesDto(pub Vec); impl From for ProjectCategories { fn from(value: ProjectCategoriesDto) -> Self { - let res = value + value .0 .into_iter() .map(|category| match category { @@ -138,8 +138,7 @@ impl From for ProjectCategories { ProjectCategoryDto::StageUniversityHall => ProjectCategories::STAGE_UNIVERSITY_HALL, ProjectCategoryDto::StageUnited => ProjectCategories::STAGE_UNITED, }) - .fold(ProjectCategories::empty(), |acc, category| acc | category); - res + .fold(ProjectCategories::empty(), |acc, category| acc | category) } } @@ -195,7 +194,7 @@ pub struct ProjectAttributesDto(pub Vec); impl From for ProjectAttributes { fn from(value: ProjectAttributesDto) -> Self { - let res = value + value .0 .into_iter() .map(|attribute| match attribute { @@ -205,8 +204,7 @@ impl From for ProjectAttributes { ProjectAttributeDto::Inside => ProjectAttributes::INSIDE, ProjectAttributeDto::Outside => ProjectAttributes::OUTSIDE, }) - .fold(ProjectAttributes::empty(), |acc, attribute| acc | attribute); - res + .fold(ProjectAttributes::empty(), |acc, attribute| acc | attribute) } } diff --git a/schema.yml b/schema.yml index 3c73afa1..2ca62b3f 100644 --- a/schema.yml +++ b/schema.yml @@ -13,7 +13,6 @@ paths: tags: - files summary: ファイル一覧の取得 - description: ファイル一覧の取得 operationId: getFiles responses: '200': @@ -48,7 +47,6 @@ paths: tags: - files summary: ファイルの作成 - description: ファイルの作成 operationId: postFiles parameters: - name: visibility @@ -115,7 +113,6 @@ paths: tags: - files summary: ファイル一覧のエクスポート - description: ファイル一覧のエクスポート operationId: getFilesExport parameters: - name: project_id @@ -164,7 +161,6 @@ paths: tags: - files summary: 特定のIDのファイルの取得 - description: 特定のIDのファイルの取得 operationId: getFileById parameters: - name: file_id @@ -203,7 +199,6 @@ paths: tags: - files summary: 特定のIDのファイルの削除 - description: 特定のIDのファイルの削除 operationId: deleteFileById parameters: - name: file_id @@ -239,7 +234,6 @@ paths: tags: - form-answers summary: 申請回答一覧を取得 - description: 申請回答一覧を取得 operationId: getFormAnswers parameters: - name: project_id @@ -289,7 +283,6 @@ paths: tags: - form-answers summary: 申請回答を作成 - description: 申請回答を作成 operationId: postFormAnswer requestBody: content: @@ -341,7 +334,6 @@ paths: tags: - form-answers summary: 申請回答一覧のエクスポート - description: 申請回答一覧のエクスポート operationId: getFormAnswersExport parameters: - name: form_id @@ -383,7 +375,6 @@ paths: tags: - form-answers summary: 特定のIDの申請回答を取得 - description: 特定のIDの申請回答を取得 operationId: getFormAnswerById parameters: - name: form_answer_id @@ -428,7 +419,6 @@ paths: tags: - form-answers summary: 特定のIDの申請回答を更新 - description: 特定のIDの申請回答を更新 operationId: putFormAnswerById parameters: - name: form_answer_id @@ -488,7 +478,6 @@ paths: tags: - forms summary: 申請一覧の取得 - description: 申請一覧の取得 operationId: getForms parameters: - name: project_id @@ -537,7 +526,6 @@ paths: tags: - forms summary: 申請の作成 - description: 申請の作成 operationId: postForm requestBody: content: @@ -589,7 +577,6 @@ paths: tags: - forms summary: 特定のIDの申請を取得 - description: 特定のIDの申請を取得 operationId: getFormById parameters: - name: form_id @@ -628,7 +615,6 @@ paths: tags: - forms summary: 特定のIDの申請を更新 - description: 特定のIDの申請を更新 operationId: putFormById parameters: - name: form_id @@ -687,7 +673,6 @@ paths: tags: - forms summary: 特定のIDの申請を削除 - description: 特定のIDの申請を削除 operationId: deleteFormById parameters: - name: form_id @@ -729,7 +714,6 @@ paths: tags: - meta summary: サーバーの状態を確認する - description: サーバーの状態を確認する operationId: getHealth responses: '200': @@ -741,7 +725,6 @@ paths: tags: - invitations summary: 招待一覧の取得 - description: 招待一覧の取得 operationId: getInvitations responses: '200': @@ -776,7 +759,6 @@ paths: tags: - invitations summary: 招待の作成 - description: 招待の作成 operationId: postInvitation requestBody: content: @@ -828,7 +810,6 @@ paths: tags: - invitations summary: 特定のIDの招待の取得 - description: 特定のIDの招待の取得 operationId: getInvitationById parameters: - name: invitation_id @@ -873,7 +854,6 @@ paths: tags: - invitations summary: 特定のIDの招待の受諾 - description: 特定のIDの招待の受諾 operationId: postInvitationById parameters: - name: invitation_id @@ -914,7 +894,6 @@ paths: tags: - invitations summary: 特定のIDの招待の削除 - description: 特定のIDの招待の削除 operationId: deleteInvitationById parameters: - name: invitation_id @@ -956,7 +935,6 @@ paths: tags: - news summary: お知らせ一覧の取得 - description: お知らせ一覧の取得 operationId: getNews responses: '200': @@ -985,7 +963,6 @@ paths: tags: - news summary: お知らせの作成 - description: お知らせの作成 operationId: postNews requestBody: content: @@ -1037,7 +1014,6 @@ paths: tags: - news summary: 特定のIDのお知らせの取得 - description: 特定のIDのお知らせの取得 operationId: getNewsById parameters: - name: news_id @@ -1076,7 +1052,6 @@ paths: tags: - news summary: 特定のIDのお知らせを更新 - description: 特定のIDのお知らせを更新 operationId: putNewsById parameters: - name: news_id @@ -1135,7 +1110,6 @@ paths: tags: - news summary: 特定のIDのお知らせの削除 - description: 特定のIDのお知らせの削除 operationId: deleteNewsById parameters: - name: news_id @@ -1177,7 +1151,6 @@ paths: tags: - projects summary: 企画募集期間を取得する - description: 企画募集期間を取得する operationId: getProjectApplicationPeriod responses: '200': @@ -1205,7 +1178,6 @@ paths: tags: - projects summary: 企画一覧の取得 - description: 企画一覧の取得 operationId: getProjects responses: '200': @@ -1240,7 +1212,6 @@ paths: tags: - projects summary: 企画の作成 - description: 企画の作成 operationId: postProject requestBody: content: @@ -1286,7 +1257,6 @@ paths: tags: - projects summary: 企画一覧のエクスポート - description: 企画一覧のエクスポート operationId: getProjectsExport responses: '200': @@ -1320,7 +1290,6 @@ paths: tags: - projects summary: 自分が企画責任者・副企画責任者になっている企画の取得 - description: 自分が企画責任者・副企画責任者になっている企画の取得 operationId: getMyProject responses: '200': @@ -1354,7 +1323,6 @@ paths: tags: - projects summary: 特定のIDの企画の取得 - description: 特定のIDの企画の取得 operationId: getProjectById parameters: - name: project_id @@ -1399,7 +1367,6 @@ paths: tags: - projects summary: 特定のIDの企画を更新 - description: 特定のIDの企画を更新 operationId: putProjectById parameters: - name: project_id @@ -1458,7 +1425,6 @@ paths: tags: - projects summary: 特定のIDの企画の削除 - description: 特定のIDの企画の削除 operationId: deleteProjectById parameters: - name: project_id @@ -1500,7 +1466,6 @@ paths: tags: - users summary: ユーザー一覧の取得 - description: ユーザー一覧の取得 operationId: getUsers responses: '200': @@ -1535,7 +1500,6 @@ paths: tags: - users summary: ユーザーの作成 - description: ユーザーの作成 operationId: postUser requestBody: content: @@ -1575,7 +1539,6 @@ paths: tags: - users summary: ユーザー一覧のエクスポート - description: ユーザー一覧のエクスポート operationId: getUsersExport responses: '200': @@ -1609,7 +1572,6 @@ paths: tags: - users summary: 自分のユーザーの取得 - description: 自分のユーザーの取得 operationId: getMyUser responses: '200': @@ -1637,7 +1599,6 @@ paths: tags: - users summary: 特定のIDのユーザーの取得 - description: 特定のIDのユーザーの取得 operationId: getUserById parameters: - name: user_id @@ -1682,7 +1643,6 @@ paths: tags: - users summary: 特定のIDのユーザーの更新 - description: 特定のIDのユーザーの更新 operationId: putUserById parameters: - name: user_id @@ -1741,7 +1701,6 @@ paths: tags: - users summary: 特定のIDのユーザーの削除 - description: 特定のIDのユーザーの削除 operationId: deleteUserById parameters: - name: user_id @@ -2203,8 +2162,12 @@ components: - project_title - form_id - form_title + - created_at - updated_at properties: + created_at: + type: string + format: date-time form_id: type: string format: uuid