diff --git a/api/Dockerfile b/api/Dockerfile index 472da99f..d4e3ed19 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -14,6 +14,6 @@ WORKDIR /app COPY --from=build /app/build/libs/*.jar app.jar -EXPOSE 8000 +EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"] diff --git a/api/build.gradle.kts b/api/build.gradle.kts index a5325448..95bbd28b 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -28,8 +28,9 @@ repositories { extra["snippetsDir"] = file("build/generated-snippets") dependencies { - implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-security") + + implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-actuator") implementation("org.springframework.boot:spring-boot-starter-data-elasticsearch") implementation("org.springframework.boot:spring-boot-starter-data-mongodb") @@ -38,6 +39,8 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-opentelemetry") implementation("org.springframework.boot:spring-boot-starter-data-mongodb") + implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0") + developmentOnly("org.springframework.boot:spring-boot-devtools") developmentOnly("org.springframework.boot:spring-boot-docker-compose") diff --git a/api/compose.yaml b/api/compose.yaml index 2ce3dd19..17a770f2 100644 --- a/api/compose.yaml +++ b/api/compose.yaml @@ -3,7 +3,9 @@ services: build: . container_name: boardmate-api ports: - - "8000:8000" + - "8000:8080" + environment: + - SPRING_BOOT_DOCKER_COMPOSE_TCP_CONNECT_PORT=8080 depends_on: - mongodb - elasticsearch diff --git a/api/mongo-data/.mongodb/mongosh/693806b52d140fda009dc29c_log b/api/mongo-data/.mongodb/mongosh/693806b52d140fda009dc29c_log new file mode 100644 index 00000000..95d04700 --- /dev/null +++ b/api/mongo-data/.mongodb/mongosh/693806b52d140fda009dc29c_log @@ -0,0 +1,14 @@ +{"t":{"$date":"2025-12-09T11:23:33.037Z"},"s":"E","c":"MONGOSH","id":1000000006,"ctx":"telemetry","msg":"Error: Failed to resolve machine ID","attr":{"stack":"Error: Failed to resolve machine ID\n at i (eval at module.exports (node:lib-boxednode/mongosh:103:20), :341:193848)\n at async LoggingAndTelemetry.setupTelemetry (eval at module.exports (node:lib-boxednode/mongosh:103:20), :341:302397)","name":"Error","message":"Failed to resolve machine ID","code":null}} +{"t":{"$date":"2025-12-09T11:23:33.054Z"},"s":"I","c":"MONGOSH","id":1000000048,"ctx":"config","msg":"Loading global configuration file","attr":{"filename":"/etc/mongosh.conf","found":false}} +{"t":{"$date":"2025-12-09T11:23:33.064Z"},"s":"I","c":"MONGOSH","id":1000000000,"ctx":"log","msg":"Starting log","attr":{"execPath":"/usr/bin/mongosh","envInfo":{"EDITOR":null,"NODE_OPTIONS":null,"TERM":null},"installationMethod":"linux-system-wide","version":"2.5.9","distributionKind":"compiled","buildArch":"x64","buildPlatform":"linux","buildTarget":"linux-x64","buildTime":"2025-10-29T17:07:55.258Z","gitVersion":"f48698c7446594d355e043f608570da5f2c68891","nodeVersion":"v20.19.5","opensslVersion":"3.0.16","sharedOpenssl":false,"runtimeArch":"x64","runtimePlatform":"linux","runtimeGlibcVersion":"2.39","deps":{"nodeDriverVersion":"6.19.0","libmongocryptVersion":"1.15.1","libmongocryptNodeBindingsVersion":"6.5.0","kerberosVersion":"2.1.0"}}} +{"t":{"$date":"2025-12-09T11:23:33.263Z"},"s":"I","c":"DEVTOOLS-CONNECT","id":1000000049,"ctx":"mongosh-connect","msg":"Loaded system CA list","attr":{"caCount":296,"asyncFallbackError":null,"systemCertsError":null,"messages":[]}} +{"t":{"$date":"2025-12-09T11:23:33.275Z"},"s":"I","c":"DEVTOOLS-CONNECT","id":1000000042,"ctx":"mongosh-connect","msg":"Initiating connection attempt","attr":{"uri":"mongodb://127.0.0.1:27017/admin?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.5.9","driver":{"name":"nodejs|mongosh","version":"6.19.0|2.5.9"},"devtoolsConnectVersion":"3.9.4","host":"127.0.0.1:27017"}} +{"t":{"$date":"2025-12-09T11:23:33.284Z"},"s":"I","c":"DEVTOOLS-CONNECT","id":1000000035,"ctx":"mongosh-connect","msg":"Server heartbeat succeeded","attr":{"connectionId":"127.0.0.1:27017"}} +{"t":{"$date":"2025-12-09T11:23:33.327Z"},"s":"I","c":"DEVTOOLS-CONNECT","id":1000000037,"ctx":"mongosh-connect","msg":"Connection attempt finished"} +{"t":{"$date":"2025-12-09T11:23:33.329Z"},"s":"I","c":"MONGOSH","id":1000000010,"ctx":"shell-api","msg":"Initialized context","attr":{"method":"setCtx","arguments":{}}} +{"t":{"$date":"2025-12-09T11:23:33.335Z"},"s":"I","c":"MONGOSH-SNIPPETS","id":1000000019,"ctx":"snippets","msg":"Loaded snippets","attr":{"installdir":"/data/db/.mongodb/mongosh/snippets"}} +{"t":{"$date":"2025-12-09T11:23:33.340Z"},"s":"I","c":"MONGOSH","id":1000000003,"ctx":"repl","msg":"Start loading CLI scripts"} +{"t":{"$date":"2025-12-09T11:23:33.340Z"},"s":"I","c":"MONGOSH","id":1000000013,"ctx":"repl","msg":"Evaluating script passed on the command line"} +{"t":{"$date":"2025-12-09T11:23:33.341Z"},"s":"I","c":"MONGOSH","id":1000000007,"ctx":"repl","msg":"Evaluating input","attr":{"input":"quit(0)"}} +{"t":{"$date":"2025-12-09T11:23:33.341Z"},"s":"I","c":"MONGOSH","id":1000000004,"ctx":"connect","msg":"Connecting to server","attr":{"userId":null,"telemetryAnonymousId":"693806b42d140fda009dc29b","connectionUri":"mongodb://:27017/admin?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.5.9","is_localhost":true,"is_do_url":false,"is_atlas_url":false,"is_atlas":false,"server_version":null,"node_version":"v20.19.5","server_os":null,"server_arch":null,"is_enterprise":false,"auth_type":null,"is_data_federation":false,"is_stream":false,"dl_version":null,"atlas_version":null,"is_genuine":true,"non_genuine_server_name":"mongodb","is_local_atlas":false,"fcv":null,"api_version":null,"api_strict":null,"api_deprecation_errors":null,"atlas_hostname":null}} +{"t":{"$date":"2025-12-09T11:23:33.342Z"},"s":"I","c":"MONGOSH","id":1000000045,"ctx":"analytics","msg":"Flushed outstanding data","attr":{"flushError":"Trying to persist throttle state before userId is set","flushDuration":0}} diff --git a/api/mongo-data/.mongodb/mongosh/693806b5f7a39d50b89dc29c_log b/api/mongo-data/.mongodb/mongosh/693806b5f7a39d50b89dc29c_log new file mode 100644 index 00000000..bd9c1f7c --- /dev/null +++ b/api/mongo-data/.mongodb/mongosh/693806b5f7a39d50b89dc29c_log @@ -0,0 +1,16 @@ +{"t":{"$date":"2025-12-09T11:23:33.522Z"},"s":"E","c":"MONGOSH","id":1000000006,"ctx":"telemetry","msg":"Error: Failed to resolve machine ID","attr":{"stack":"Error: Failed to resolve machine ID\n at i (eval at module.exports (node:lib-boxednode/mongosh:103:20), :341:193848)\n at async LoggingAndTelemetry.setupTelemetry (eval at module.exports (node:lib-boxednode/mongosh:103:20), :341:302397)","name":"Error","message":"Failed to resolve machine ID","code":null}} +{"t":{"$date":"2025-12-09T11:23:33.535Z"},"s":"I","c":"MONGOSH","id":1000000005,"ctx":"config","msg":"User updated"} +{"t":{"$date":"2025-12-09T11:23:33.540Z"},"s":"I","c":"MONGOSH","id":1000000048,"ctx":"config","msg":"Loading global configuration file","attr":{"filename":"/etc/mongosh.conf","found":false}} +{"t":{"$date":"2025-12-09T11:23:33.540Z"},"s":"I","c":"MONGOSH","id":1000000000,"ctx":"log","msg":"Starting log","attr":{"execPath":"/usr/bin/mongosh","envInfo":{"EDITOR":null,"NODE_OPTIONS":null,"TERM":null},"installationMethod":"linux-system-wide","version":"2.5.9","distributionKind":"compiled","buildArch":"x64","buildPlatform":"linux","buildTarget":"linux-x64","buildTime":"2025-10-29T17:07:55.258Z","gitVersion":"f48698c7446594d355e043f608570da5f2c68891","nodeVersion":"v20.19.5","opensslVersion":"3.0.16","sharedOpenssl":false,"runtimeArch":"x64","runtimePlatform":"linux","runtimeGlibcVersion":"2.39","deps":{"nodeDriverVersion":"6.19.0","libmongocryptVersion":"1.15.1","libmongocryptNodeBindingsVersion":"6.5.0","kerberosVersion":"2.1.0"}}} +{"t":{"$date":"2025-12-09T11:23:33.618Z"},"s":"I","c":"DEVTOOLS-CONNECT","id":1000000049,"ctx":"mongosh-connect","msg":"Loaded system CA list","attr":{"caCount":296,"asyncFallbackError":null,"systemCertsError":null,"messages":[]}} +{"t":{"$date":"2025-12-09T11:23:33.628Z"},"s":"I","c":"DEVTOOLS-CONNECT","id":1000000042,"ctx":"mongosh-connect","msg":"Initiating connection attempt","attr":{"uri":"mongodb://127.0.0.1:27017/admin?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.5.9","driver":{"name":"nodejs|mongosh","version":"6.19.0|2.5.9"},"devtoolsConnectVersion":"3.9.4","host":"127.0.0.1:27017"}} +{"t":{"$date":"2025-12-09T11:23:33.633Z"},"s":"I","c":"DEVTOOLS-CONNECT","id":1000000035,"ctx":"mongosh-connect","msg":"Server heartbeat succeeded","attr":{"connectionId":"127.0.0.1:27017"}} +{"t":{"$date":"2025-12-09T11:23:33.659Z"},"s":"I","c":"DEVTOOLS-CONNECT","id":1000000037,"ctx":"mongosh-connect","msg":"Connection attempt finished"} +{"t":{"$date":"2025-12-09T11:23:33.671Z"},"s":"I","c":"MONGOSH","id":1000000010,"ctx":"shell-api","msg":"Initialized context","attr":{"method":"setCtx","arguments":{}}} +{"t":{"$date":"2025-12-09T11:23:33.673Z"},"s":"I","c":"MONGOSH-SNIPPETS","id":1000000024,"ctx":"snippets","msg":"Fetching snippet index","attr":{"refreshMode":"allow-cached"}} +{"t":{"$date":"2025-12-09T11:23:33.674Z"},"s":"I","c":"MONGOSH-SNIPPETS","id":1000000019,"ctx":"snippets","msg":"Loaded snippets","attr":{"installdir":"/data/db/.mongodb/mongosh/snippets"}} +{"t":{"$date":"2025-12-09T11:23:33.674Z"},"s":"I","c":"MONGOSH-SNIPPETS","id":1000000028,"ctx":"snippets","msg":"Modifying snippets package.json failed","attr":{"error":"ENOENT: no such file or directory, open '/data/db/.mongodb/mongosh/snippets/package.json'"}} +{"t":{"$date":"2025-12-09T11:23:33.745Z"},"s":"I","c":"MONGOSH","id":1000000004,"ctx":"connect","msg":"Connecting to server","attr":{"userId":null,"telemetryAnonymousId":"693806b42d140fda009dc29b","connectionUri":"mongodb://:27017/admin?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.5.9","is_localhost":true,"is_do_url":false,"is_atlas_url":false,"is_atlas":false,"server_version":"8.2.2","node_version":"v20.19.5","server_os":"linux","server_arch":"x86_64","is_enterprise":false,"auth_type":null,"is_data_federation":false,"is_stream":false,"dl_version":null,"atlas_version":null,"is_genuine":true,"non_genuine_server_name":"mongodb","is_local_atlas":false,"fcv":"8.2","api_version":null,"api_strict":null,"api_deprecation_errors":null,"atlas_hostname":null}} +{"t":{"$date":"2025-12-09T11:23:33.746Z"},"s":"I","c":"MONGOSH","id":1000000002,"ctx":"repl","msg":"Started REPL","attr":{"version":"2.5.9"}} +{"t":{"$date":"2025-12-09T11:23:33.829Z"},"s":"I","c":"MONGOSH","id":1000000011,"ctx":"shell-api","msg":"Performed API call","attr":{"method":"createUser","class":"Database","db":"admin","arguments":{}}} +{"t":{"$date":"2025-12-09T11:23:33.903Z"},"s":"I","c":"MONGOSH","id":1000000045,"ctx":"analytics","msg":"Flushed outstanding data","attr":{"flushError":"Trying to persist throttle state before userId is set","flushDuration":0}} diff --git a/api/mongo-data/.mongodb/mongosh/config b/api/mongo-data/.mongodb/mongosh/config new file mode 100644 index 00000000..71a97867 --- /dev/null +++ b/api/mongo-data/.mongodb/mongosh/config @@ -0,0 +1 @@ +{"userId":"693806b42d140fda009dc29b","telemetryAnonymousId":"693806b42d140fda009dc29b","enableTelemetry":true} \ No newline at end of file diff --git a/api/mongo-data/.mongodb/mongosh/mongosh_repl_history b/api/mongo-data/.mongodb/mongosh/mongosh_repl_history new file mode 100644 index 00000000..e69de29b diff --git a/api/mongo-data/.mongodb/mongosh/snippets/package.json b/api/mongo-data/.mongodb/mongosh/snippets/package.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/api/mongo-data/.mongodb/mongosh/snippets/package.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/api/mongo-data/WiredTiger b/api/mongo-data/WiredTiger new file mode 100644 index 00000000..420d79a1 --- /dev/null +++ b/api/mongo-data/WiredTiger @@ -0,0 +1,2 @@ +WiredTiger +WiredTiger 12.0.0: (November 15, 2024) diff --git a/api/mongo-data/WiredTiger.lock b/api/mongo-data/WiredTiger.lock new file mode 100644 index 00000000..3d842068 --- /dev/null +++ b/api/mongo-data/WiredTiger.lock @@ -0,0 +1 @@ +WiredTiger lock file diff --git a/api/mongo-data/WiredTiger.turtle b/api/mongo-data/WiredTiger.turtle new file mode 100644 index 00000000..84100fa0 --- /dev/null +++ b/api/mongo-data/WiredTiger.turtle @@ -0,0 +1,6 @@ +WiredTiger version string +WiredTiger 12.0.0: (November 15, 2024) +WiredTiger version +major=12,minor=0,patch=0 +file:WiredTiger.wt +access_pattern_hint=none,allocation_size=4KB,app_metadata=,assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,collator=,columns=,dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key=,huffman_value=,id=0,ignore_in_memory_cache_size=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=S,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,readonly=false,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),value_format=S,verbose=[],version=(major=1,minor=1),write_timestamp_usage=none,checkpoint=(WiredTigerCheckpoint.164=(addr="018081e4dca2cc978181e4fa36b91c8281e4cf2c793b808080e3014fc0e25fc0",order=164,time=1765290467,size=36864,newest_start_durable_ts=0,oldest_start_ts=0,newest_txn=7,newest_stop_durable_ts=0,newest_stop_ts=-1,newest_stop_txn=-11,prepare=0,write_gen=465,run_write_gen=452)),checkpoint_backup_info=,checkpoint_lsn=(27,9984) diff --git a/api/mongo-data/WiredTiger.wt b/api/mongo-data/WiredTiger.wt new file mode 100644 index 00000000..0bc3187a Binary files /dev/null and b/api/mongo-data/WiredTiger.wt differ diff --git a/api/mongo-data/WiredTigerHS.wt b/api/mongo-data/WiredTigerHS.wt new file mode 100644 index 00000000..3f019cba Binary files /dev/null and b/api/mongo-data/WiredTigerHS.wt differ diff --git a/api/mongo-data/_mdb_catalog.wt b/api/mongo-data/_mdb_catalog.wt new file mode 100644 index 00000000..7ae92d65 Binary files /dev/null and b/api/mongo-data/_mdb_catalog.wt differ diff --git a/api/mongo-data/_tmp/spilldb/WiredTiger b/api/mongo-data/_tmp/spilldb/WiredTiger new file mode 100644 index 00000000..420d79a1 --- /dev/null +++ b/api/mongo-data/_tmp/spilldb/WiredTiger @@ -0,0 +1,2 @@ +WiredTiger +WiredTiger 12.0.0: (November 15, 2024) diff --git a/api/mongo-data/_tmp/spilldb/WiredTiger.lock b/api/mongo-data/_tmp/spilldb/WiredTiger.lock new file mode 100644 index 00000000..3d842068 --- /dev/null +++ b/api/mongo-data/_tmp/spilldb/WiredTiger.lock @@ -0,0 +1 @@ +WiredTiger lock file diff --git a/api/mongo-data/_tmp/spilldb/WiredTiger.turtle b/api/mongo-data/_tmp/spilldb/WiredTiger.turtle new file mode 100644 index 00000000..5d7c9fac --- /dev/null +++ b/api/mongo-data/_tmp/spilldb/WiredTiger.turtle @@ -0,0 +1,6 @@ +WiredTiger version string +WiredTiger 12.0.0: (November 15, 2024) +WiredTiger version +major=12,minor=0,patch=0 +file:WiredTiger.wt +access_pattern_hint=none,allocation_size=4KB,app_metadata=,assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,collator=,columns=,dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key=,huffman_value=,id=0,ignore_in_memory_cache_size=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=S,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,readonly=false,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),value_format=S,verbose=[],version=(major=1,minor=1),write_timestamp_usage=none,checkpoint=(WiredTigerCheckpoint.4=(addr="018081e4688f71288181e454c359c08281e4565948be808080e26fc0cfc0",order=4,time=1765290467,size=8192,newest_start_durable_ts=0,oldest_start_ts=0,newest_txn=2,newest_stop_durable_ts=0,newest_stop_ts=-1,newest_stop_txn=-11,prepare=0,write_gen=8,run_write_gen=1)),checkpoint_backup_info=,checkpoint_lsn=(4294967295,2147483647) diff --git a/api/mongo-data/_tmp/spilldb/WiredTiger.wt b/api/mongo-data/_tmp/spilldb/WiredTiger.wt new file mode 100644 index 00000000..3cfee911 Binary files /dev/null and b/api/mongo-data/_tmp/spilldb/WiredTiger.wt differ diff --git a/api/mongo-data/_tmp/spilldb/WiredTigerHS.wt b/api/mongo-data/_tmp/spilldb/WiredTigerHS.wt new file mode 100644 index 00000000..3f019cba Binary files /dev/null and b/api/mongo-data/_tmp/spilldb/WiredTigerHS.wt differ diff --git a/api/mongo-data/collection-04ae52de-d9bd-47c6-870b-eae48c7dd6aa.wt b/api/mongo-data/collection-04ae52de-d9bd-47c6-870b-eae48c7dd6aa.wt new file mode 100644 index 00000000..96f56362 Binary files /dev/null and b/api/mongo-data/collection-04ae52de-d9bd-47c6-870b-eae48c7dd6aa.wt differ diff --git a/api/mongo-data/collection-13ab11c8-8d75-4982-a881-ed12f6014314.wt b/api/mongo-data/collection-13ab11c8-8d75-4982-a881-ed12f6014314.wt new file mode 100644 index 00000000..42eac307 Binary files /dev/null and b/api/mongo-data/collection-13ab11c8-8d75-4982-a881-ed12f6014314.wt differ diff --git a/api/mongo-data/collection-252ed027-b709-43e7-a3f6-8599e1b91b69.wt b/api/mongo-data/collection-252ed027-b709-43e7-a3f6-8599e1b91b69.wt new file mode 100644 index 00000000..0c6d88d1 Binary files /dev/null and b/api/mongo-data/collection-252ed027-b709-43e7-a3f6-8599e1b91b69.wt differ diff --git a/api/mongo-data/collection-bb3a057e-e6aa-4680-a8e1-f2e4bc398a3f.wt b/api/mongo-data/collection-bb3a057e-e6aa-4680-a8e1-f2e4bc398a3f.wt new file mode 100644 index 00000000..3f019cba Binary files /dev/null and b/api/mongo-data/collection-bb3a057e-e6aa-4680-a8e1-f2e4bc398a3f.wt differ diff --git a/api/mongo-data/collection-e74f5e49-4721-45d1-aad2-ec4efc92da09.wt b/api/mongo-data/collection-e74f5e49-4721-45d1-aad2-ec4efc92da09.wt new file mode 100644 index 00000000..38017ef0 Binary files /dev/null and b/api/mongo-data/collection-e74f5e49-4721-45d1-aad2-ec4efc92da09.wt differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-23-32Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-23-32Z-00000 new file mode 100644 index 00000000..bfbb595a Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-23-32Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-23-45Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-23-45Z-00000 new file mode 100644 index 00000000..212cb607 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-23-45Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-36-06Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-36-06Z-00000 new file mode 100644 index 00000000..2e4d50bd Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-36-06Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-42-36Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-42-36Z-00000 new file mode 100644 index 00000000..e37a1756 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-42-36Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-44-14Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-44-14Z-00000 new file mode 100644 index 00000000..c1f0dbfa Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-44-14Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-46-21Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-46-21Z-00000 new file mode 100644 index 00000000..0b0349fc Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T11-46-21Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T12-41-23Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T12-41-23Z-00000 new file mode 100644 index 00000000..0c026e84 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T12-41-23Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T12-42-24Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T12-42-24Z-00000 new file mode 100644 index 00000000..9b97f5a4 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T12-42-24Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T12-43-30Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T12-43-30Z-00000 new file mode 100644 index 00000000..3eb30411 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T12-43-30Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-15-16Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-15-16Z-00000 new file mode 100644 index 00000000..a21b70ea Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-15-16Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-17-27Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-17-27Z-00000 new file mode 100644 index 00000000..2c1d02f8 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-17-27Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-21-09Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-21-09Z-00000 new file mode 100644 index 00000000..8fbfd8c6 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-21-09Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-23-19Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-23-19Z-00000 new file mode 100644 index 00000000..2c082767 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-23-19Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-25-21Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-25-21Z-00000 new file mode 100644 index 00000000..1cf544aa Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-25-21Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-26-43Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-26-43Z-00000 new file mode 100644 index 00000000..936751c3 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-26-43Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-31-19Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-31-19Z-00000 new file mode 100644 index 00000000..2afd14f4 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-31-19Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-37-34Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-37-34Z-00000 new file mode 100644 index 00000000..51c6cb13 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-37-34Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-43-37Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-43-37Z-00000 new file mode 100644 index 00000000..afbccb25 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-43-37Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-52-38Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-52-38Z-00000 new file mode 100644 index 00000000..04080cda Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T13-52-38Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-02-25Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-02-25Z-00000 new file mode 100644 index 00000000..d2c4f370 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-02-25Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-05-44Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-05-44Z-00000 new file mode 100644 index 00000000..3fe61131 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-05-44Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-06-13Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-06-13Z-00000 new file mode 100644 index 00000000..4e54129a Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-06-13Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-07-30Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-07-30Z-00000 new file mode 100644 index 00000000..ca2338ba Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-07-30Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-15-27Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-15-27Z-00000 new file mode 100644 index 00000000..9591858d Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-15-27Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-19-39Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-19-39Z-00000 new file mode 100644 index 00000000..0c882861 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-19-39Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-22-35Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-22-35Z-00000 new file mode 100644 index 00000000..4689c7fa Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-22-35Z-00000 differ diff --git a/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-24-43Z-00000 b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-24-43Z-00000 new file mode 100644 index 00000000..faed9566 Binary files /dev/null and b/api/mongo-data/diagnostic.data/metrics.2025-12-09T14-24-43Z-00000 differ diff --git a/api/mongo-data/index-0c6830cf-6dda-4ad4-ae8b-51f08ae21f91.wt b/api/mongo-data/index-0c6830cf-6dda-4ad4-ae8b-51f08ae21f91.wt new file mode 100644 index 00000000..3f019cba Binary files /dev/null and b/api/mongo-data/index-0c6830cf-6dda-4ad4-ae8b-51f08ae21f91.wt differ diff --git a/api/mongo-data/index-28eacc5a-0e7e-4969-bdc7-8bad4f3c8770.wt b/api/mongo-data/index-28eacc5a-0e7e-4969-bdc7-8bad4f3c8770.wt new file mode 100644 index 00000000..7aec79e0 Binary files /dev/null and b/api/mongo-data/index-28eacc5a-0e7e-4969-bdc7-8bad4f3c8770.wt differ diff --git a/api/mongo-data/index-c2cf7321-be84-453a-b905-4d25c0cc37e9.wt b/api/mongo-data/index-c2cf7321-be84-453a-b905-4d25c0cc37e9.wt new file mode 100644 index 00000000..6f0102ce Binary files /dev/null and b/api/mongo-data/index-c2cf7321-be84-453a-b905-4d25c0cc37e9.wt differ diff --git a/api/mongo-data/index-cd6540a5-e8f2-4ebc-8a86-e02aa88c2ec7.wt b/api/mongo-data/index-cd6540a5-e8f2-4ebc-8a86-e02aa88c2ec7.wt new file mode 100644 index 00000000..f977a987 Binary files /dev/null and b/api/mongo-data/index-cd6540a5-e8f2-4ebc-8a86-e02aa88c2ec7.wt differ diff --git a/api/mongo-data/index-ceded858-db8b-4ba6-9c50-9aec83119d3b.wt b/api/mongo-data/index-ceded858-db8b-4ba6-9c50-9aec83119d3b.wt new file mode 100644 index 00000000..b2eb81ec Binary files /dev/null and b/api/mongo-data/index-ceded858-db8b-4ba6-9c50-9aec83119d3b.wt differ diff --git a/api/mongo-data/index-cfad8669-81b7-415b-895c-5d7d9cff6f2f.wt b/api/mongo-data/index-cfad8669-81b7-415b-895c-5d7d9cff6f2f.wt new file mode 100644 index 00000000..f74b4274 Binary files /dev/null and b/api/mongo-data/index-cfad8669-81b7-415b-895c-5d7d9cff6f2f.wt differ diff --git a/api/mongo-data/index-ed6ddffb-a69a-4ae3-9fc4-b2fc2787f431.wt b/api/mongo-data/index-ed6ddffb-a69a-4ae3-9fc4-b2fc2787f431.wt new file mode 100644 index 00000000..9dda3d70 Binary files /dev/null and b/api/mongo-data/index-ed6ddffb-a69a-4ae3-9fc4-b2fc2787f431.wt differ diff --git a/api/mongo-data/journal/WiredTigerLog.0000000027 b/api/mongo-data/journal/WiredTigerLog.0000000027 new file mode 100644 index 00000000..b05bf554 Binary files /dev/null and b/api/mongo-data/journal/WiredTigerLog.0000000027 differ diff --git a/api/mongo-data/journal/WiredTigerPreplog.0000000001 b/api/mongo-data/journal/WiredTigerPreplog.0000000001 new file mode 100644 index 00000000..aa52a216 Binary files /dev/null and b/api/mongo-data/journal/WiredTigerPreplog.0000000001 differ diff --git a/api/mongo-data/mongod.lock b/api/mongo-data/mongod.lock new file mode 100644 index 00000000..e69de29b diff --git a/api/mongo-data/sizeStorer.wt b/api/mongo-data/sizeStorer.wt new file mode 100644 index 00000000..a2613161 Binary files /dev/null and b/api/mongo-data/sizeStorer.wt differ diff --git a/api/mongo-data/storage.bson b/api/mongo-data/storage.bson new file mode 100644 index 00000000..276b6945 Binary files /dev/null and b/api/mongo-data/storage.bson differ diff --git a/api/src/main/java/be/naaturel/boardmateapi/configurations/SwaggerConfig.java b/api/src/main/java/be/naaturel/boardmateapi/configurations/SwaggerConfig.java new file mode 100644 index 00000000..cac40f0d --- /dev/null +++ b/api/src/main/java/be/naaturel/boardmateapi/configurations/SwaggerConfig.java @@ -0,0 +1,10 @@ +package be.naaturel.boardmateapi.configurations; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springdoc.core.models.GroupedOpenApi; + +@Configuration +public class SwaggerConfig { + +} \ No newline at end of file diff --git a/api/src/main/java/be/naaturel/boardmateapi/controllers/PartyController.java b/api/src/main/java/be/naaturel/boardmateapi/controllers/PartyController.java index 080dfe05..09903f16 100644 --- a/api/src/main/java/be/naaturel/boardmateapi/controllers/PartyController.java +++ b/api/src/main/java/be/naaturel/boardmateapi/controllers/PartyController.java @@ -1,26 +1,59 @@ package be.naaturel.boardmateapi.controllers; -import org.apache.coyote.Response; +import be.naaturel.boardmateapi.models.Move; +import be.naaturel.boardmateapi.models.Party; +import be.naaturel.boardmateapi.services.PartyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController public class PartyController { + private final PartyService service; - public PartyController(){ - + @Autowired + public PartyController(PartyService service){ + this.service = service; } - public ResponseEntity CreateParty(){ - return null; + @GetMapping("/party/{id}") + public ResponseEntity RetrieveParty(@PathVariable String id){ + try{ + service.retrieveParty(id); + + return ResponseEntity + .status(HttpStatus.INTERNAL_SERVER_ERROR) + .build(); + } catch (Exception e){ + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } } - public ResponseEntity RetrieveParty(int id){ - return null; + @PostMapping("/create") + public ResponseEntity CreateParty(@RequestBody Party party){ + try{ + service.create(); + + return ResponseEntity. + status(HttpStatus.INTERNAL_SERVER_ERROR) + .build(); + } catch (Exception e){ + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } } - public ResponseEntity AddMove(){ - return null; + @PostMapping("/moves/add") + public ResponseEntity AddMove(@RequestBody Move move){ + try{ + service.addMove(); + + return ResponseEntity + .status(HttpStatus.OK) + .build(); + } catch (Exception e){ + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } } } diff --git a/api/src/main/java/be/naaturel/boardmateapi/models/Party.java b/api/src/main/java/be/naaturel/boardmateapi/models/Party.java index 9ab88fc3..ed820f73 100644 --- a/api/src/main/java/be/naaturel/boardmateapi/models/Party.java +++ b/api/src/main/java/be/naaturel/boardmateapi/models/Party.java @@ -1,9 +1,22 @@ package be.naaturel.boardmateapi.models; +import java.util.ArrayList; import java.util.List; public class Party { - private List moves; + private final String whiteName; + private final String blackName; + private final int timeControl; + private final int increment; + private final List moves; + + public Party(String whiteName, String blackName, int timeControl, int increment){ + this.whiteName = whiteName; + this.blackName = blackName; + this.timeControl = timeControl; + this.increment = increment; + this.moves = new ArrayList<>(); + } } diff --git a/api/src/main/java/be/naaturel/boardmateapi/repository/test/CustomPartyRepo.java b/api/src/main/java/be/naaturel/boardmateapi/repository/CustomPartyRepo.java similarity index 78% rename from api/src/main/java/be/naaturel/boardmateapi/repository/test/CustomPartyRepo.java rename to api/src/main/java/be/naaturel/boardmateapi/repository/CustomPartyRepo.java index e03f741c..fded8ad6 100644 --- a/api/src/main/java/be/naaturel/boardmateapi/repository/test/CustomPartyRepo.java +++ b/api/src/main/java/be/naaturel/boardmateapi/repository/CustomPartyRepo.java @@ -1,4 +1,4 @@ -package be.naaturel.boardmateapi.repository.test; +package be.naaturel.boardmateapi.repository; import be.naaturel.boardmateapi.models.Party; diff --git a/api/src/main/java/be/naaturel/boardmateapi/repository/test/CustomPartyRepoImpl.java b/api/src/main/java/be/naaturel/boardmateapi/repository/CustomPartyRepoImpl.java similarity index 75% rename from api/src/main/java/be/naaturel/boardmateapi/repository/test/CustomPartyRepoImpl.java rename to api/src/main/java/be/naaturel/boardmateapi/repository/CustomPartyRepoImpl.java index 19346aec..32de281f 100644 --- a/api/src/main/java/be/naaturel/boardmateapi/repository/test/CustomPartyRepoImpl.java +++ b/api/src/main/java/be/naaturel/boardmateapi/repository/CustomPartyRepoImpl.java @@ -1,7 +1,9 @@ -package be.naaturel.boardmateapi.repository.test; +package be.naaturel.boardmateapi.repository; import be.naaturel.boardmateapi.models.Party; +import org.springframework.stereotype.Repository; +@Repository public class CustomPartyRepoImpl implements CustomPartyRepo{ @Override diff --git a/api/src/main/java/be/naaturel/boardmateapi/repository/PartyRepo.java b/api/src/main/java/be/naaturel/boardmateapi/repository/PartyRepo.java deleted file mode 100644 index 67ddb922..00000000 --- a/api/src/main/java/be/naaturel/boardmateapi/repository/PartyRepo.java +++ /dev/null @@ -1,10 +0,0 @@ -package be.naaturel.boardmateapi.repository; - -import be.naaturel.boardmateapi.models.Party; -import org.springframework.data.mongodb.repository.MongoRepository; - -import java.util.Optional; - -public interface PartyRepo extends MongoRepository { - Optional findById(String id); -} \ No newline at end of file diff --git a/api/src/main/java/be/naaturel/boardmateapi/services/PartyService.java b/api/src/main/java/be/naaturel/boardmateapi/services/PartyService.java index d672db92..d9598b00 100644 --- a/api/src/main/java/be/naaturel/boardmateapi/services/PartyService.java +++ b/api/src/main/java/be/naaturel/boardmateapi/services/PartyService.java @@ -1,7 +1,8 @@ package be.naaturel.boardmateapi.services; import be.naaturel.boardmateapi.models.Party; -import be.naaturel.boardmateapi.repository.test.CustomPartyRepoImpl; +import be.naaturel.boardmateapi.repository.CustomPartyRepoImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service @@ -9,6 +10,7 @@ public class PartyService { private final CustomPartyRepoImpl repo; + @Autowired public PartyService(CustomPartyRepoImpl repo){ this.repo = repo; } diff --git a/api/src/main/resources/application.properties b/api/src/main/resources/application.properties index ebf347fa..df2bacf3 100644 --- a/api/src/main/resources/application.properties +++ b/api/src/main/resources/application.properties @@ -2,7 +2,8 @@ spring.application.name=boardmate-api #=============SERVER============= -server.port=8000 +server.port=8080 +server.address=0.0.0.0 #=============SECURITY============= sec.cors.authorizedHots=* @@ -11,4 +12,9 @@ sec.cors.authorizedHeader=Authorization,Content-type #=============METRICS============= management.endpoints.web.exposure.include=* -management.endpoint.prometheus.enabled=true \ No newline at end of file +management.endpoint.health.show-details=always +management.endpoint.prometheus.enabled=true + +#=============DOCUMENTATION============= +springdoc.swagger-ui.path=/api-docs +springdoc.api-docs.path=/v1/api-docs \ No newline at end of file