From 32d57da094d3ed7c004dc844c19318c02f7fbc42 Mon Sep 17 00:00:00 2001 From: apple Date: Fri, 9 Jan 2026 14:43:01 +0900 Subject: [PATCH 01/12] 2026-01-09 --- .gitignore | 1 + discordit.iml | 12 + .../.gradle/9.0.0/checksums/checksums.lock | Bin 0 -> 17 bytes .../executionHistory/executionHistory.bin | Bin 0 -> 19732 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/9.0.0/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 0 -> 18897 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes discordit/.gradle/9.0.0/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .../buildOutputCleanup/cache.properties | 2 + .../buildOutputCleanup/outputFiles.bin | Bin 0 -> 18713 bytes discordit/.gradle/file-system.probe | Bin 0 -> 8 bytes discordit/.gradle/vcs-1/gc.properties | 0 discordit/build.gradle | 20 ++ discordit/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + discordit/gradlew | 251 ++++++++++++++++++ discordit/gradlew.bat | 94 +++++++ discordit/settings.gradle | 1 + 20 files changed, 388 insertions(+) create mode 100644 .gitignore create mode 100644 discordit.iml create mode 100644 discordit/.gradle/9.0.0/checksums/checksums.lock create mode 100644 discordit/.gradle/9.0.0/executionHistory/executionHistory.bin create mode 100644 discordit/.gradle/9.0.0/executionHistory/executionHistory.lock create mode 100644 discordit/.gradle/9.0.0/fileChanges/last-build.bin create mode 100644 discordit/.gradle/9.0.0/fileHashes/fileHashes.bin create mode 100644 discordit/.gradle/9.0.0/fileHashes/fileHashes.lock create mode 100644 discordit/.gradle/9.0.0/gc.properties create mode 100644 discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 discordit/.gradle/buildOutputCleanup/cache.properties create mode 100644 discordit/.gradle/buildOutputCleanup/outputFiles.bin create mode 100644 discordit/.gradle/file-system.probe create mode 100644 discordit/.gradle/vcs-1/gc.properties create mode 100644 discordit/build.gradle create mode 100644 discordit/gradle/wrapper/gradle-wrapper.jar create mode 100644 discordit/gradle/wrapper/gradle-wrapper.properties create mode 100755 discordit/gradlew create mode 100644 discordit/gradlew.bat create mode 100644 discordit/settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..485dee64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/discordit.iml b/discordit.iml new file mode 100644 index 00000000..e6db0928 --- /dev/null +++ b/discordit.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/discordit/.gradle/9.0.0/checksums/checksums.lock b/discordit/.gradle/9.0.0/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..81351ce25f9c7d875138f20e422f9dadc14afe00 GIT binary patch literal 17 TcmZQxBeY@1C4=Xp3{U_7G_?dM literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e1ad93abce9f9c3fc21e95aedbeaf09ab7bdc49 GIT binary patch literal 19732 zcmeI%OK1~87zgm#G=dbxtymEh1g-eM?lwtnte#pDt)jKG)(1VLlg+f5Hji~?lV~q0 zi1AE*aKsl|hjn|crg-Ax)=(SuM0k^jQ(4l}#+ee>g+ zy=;JxS?agZgNz-;V@8O86n zyCysXxut}vQ#=-FFa$TPP)SIn5+Ng&lqtbHCHa;&-GAV zd;H5={6?k6r_QbU)O4bwXm{tO)y+p=1nw0cqQZ#sG^?hPO+NiQD=n#`R@8aCb9H@H zU|lfO*buA_)ofTF%+KXKP;ht@NRM!7$xi1gcsOP8Wa3Z6`eDLf1UxoAU_+F8msK>R z;^c?dHtsOl6f zE2q**txPK`4fBN7!Og?D&P_~68>wJ#cJN4oS(&70-^k-EnX=r3EL6MFG{z%#t&Pvh zPCy~-q%LODjs9Xvx!8}^HnkmlHXPK zVUw2}6j=0=MOp&xVpT(KX=J4`w*(?So!cEk3mxp&PD*Rvux6Z37f82cjY?it!;8yIf G*wA+`DF1>0 literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock b/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..9381f4ff8a2bc23cd3cac14a6b4eedfff68fd703 GIT binary patch literal 17 UcmZR6G0Sa*#+A@h3=qH!06CEak^lez literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/fileChanges/last-build.bin b/discordit/.gradle/9.0.0/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin b/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..19d6813a8540643d0d479f50338ed065893c19d8 GIT binary patch literal 18897 zcmeI&&r8#B9LMqRbU`kc9+YMbLm{0h{-BK*dYCYCi{T+qi#!D7AxcrKSyq&XIz&(+ zRw%kgEeI(Q(YmzQsl&vk9XtrioEB&|%S*!ge))Vq$oT#T^8CX0`+f8J^5XmXJg(ob zS5a*FY5h?4kHY}EUKmY**5I_I{1Q0*~0R#|0009ILKmY**4vIjlx)F=mjIAn5 z8}j-Ur8ZX`4u9&r`!(*~Z4r`~_#4^}JE$oxx%I*^1HABKLR6{Mt-;Pp{)` zv7U!yF7Il-D4uae009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0;rU<+tJ-B+k*iFW1>WN+H-rda4i(CPf(?mMX{rm?W=jZYXH zxuf2zGaC=$kv~iEP}kJTc=SuE?vQAN*F|G`$k_0Ct9BBX67yEGqkn6yMg4;KeuJ{q*@cbrq(unzbfT z$mwV^Hina)=wxcaa@Fg36fE3p&uDaqE*Kl<61V4KSFTT6|9-sn>fUotMx&_hl(CUA Ze}CetH~)%FZqK_X9#>~HvR8Yx#((K$*9ZUr literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.lock b/discordit/.gradle/9.0.0/fileHashes/fileHashes.lock new file mode 100644 index 0000000000000000000000000000000000000000..28681fc3c8e20f5e6768f754877e0b93f15be5ca GIT binary patch literal 17 UcmZQ>Zi(JD^~t+O3=qHr06=;LaR2}S literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/gc.properties b/discordit/.gradle/9.0.0/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000000000000000000000000000000000000..15532f1b3a52f12d025d1431dc7d585f01bbd735 GIT binary patch literal 17 TcmZQ>_0_1)+G*X)00H~}DV+mt literal 0 HcmV?d00001 diff --git a/discordit/.gradle/buildOutputCleanup/cache.properties b/discordit/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 00000000..1928a7b3 --- /dev/null +++ b/discordit/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Fri Jan 09 14:23:24 KST 2026 +gradle.version=9.0.0 diff --git a/discordit/.gradle/buildOutputCleanup/outputFiles.bin b/discordit/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000000000000000000000000000000000000..f9a67992294c072c2b7ac65d9234cfc54a7ee357 GIT binary patch literal 18713 zcmeI%%_{_99Ki8sH|1rwMWLY_*1-ieXj5)vW3=r>{0DMyqOCdY!BK5FNDf<@l5%ly z+wztaxoi!QazjbVWpmoYc-B0>Hn}-a`c6GFPv3c_r{{B>38kzS-(0G8wb!Q15I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0;rzX;6ggER$)vHHW+Nwcez9o3U)-i{n)uH8cL zdTL(&A9&^7%vvt&2i>Wce$}~R#a>SnX8pVL+hjaDe!kscx+nelEPa>g9!Q%0DE)1; zeBV=d+-mxa^vYq!`fhe;%k)+0T@RZ(8^wxk`iXQWK3%$4PEDHbN>BNHC8upf`k3^& z{oG=D;qu0;&r4r=Iq-^4g^1~U(&edCXfSxk9RUOoKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~fxi_P*4sDg5i&!?zLaYIt)jR3 K!Cv3L`Ya!c5w8~j literal 0 HcmV?d00001 diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe new file mode 100644 index 0000000000000000000000000000000000000000..2fe2fbca5319184461d7fc92c45164c6d2ec4efe GIT binary patch literal 8 PcmZQzV4S_sba4;>2haj& literal 0 HcmV?d00001 diff --git a/discordit/.gradle/vcs-1/gc.properties b/discordit/.gradle/vcs-1/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/discordit/build.gradle b/discordit/build.gradle new file mode 100644 index 00000000..973cc485 --- /dev/null +++ b/discordit/build.gradle @@ -0,0 +1,20 @@ +plugins { + id 'java' +} + +group = 'org.example' +version = '1.0-SNAPSHOT' + +repositories { + mavenCentral() +} + +dependencies { + testImplementation platform('org.junit:junit-bom:5.10.0') + testImplementation 'org.junit.jupiter:junit-jupiter' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/discordit/gradle/wrapper/gradle-wrapper.jar b/discordit/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8bdaf60c75ab801e22807dde59e12a8735a34077 GIT binary patch literal 45457 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 c82=K%QXLKFx%@O{wJjEi6Y56o#$)Bpeg literal 0 HcmV?d00001 diff --git a/discordit/gradle/wrapper/gradle-wrapper.properties b/discordit/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..2a84e188 --- /dev/null +++ b/discordit/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/discordit/gradlew b/discordit/gradlew new file mode 100755 index 00000000..ef07e016 --- /dev/null +++ b/discordit/gradlew @@ -0,0 +1,251 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH="\\\"\\\"" + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/discordit/gradlew.bat b/discordit/gradlew.bat new file mode 100644 index 00000000..5eed7ee8 --- /dev/null +++ b/discordit/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/discordit/settings.gradle b/discordit/settings.gradle new file mode 100644 index 00000000..955baf54 --- /dev/null +++ b/discordit/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'discordit' \ No newline at end of file From fa0234d8f5ea0ffdf780826cac6294a975445b20 Mon Sep 17 00:00:00 2001 From: apple Date: Fri, 9 Jan 2026 18:51:18 +0900 Subject: [PATCH 02/12] 2026-01-09[FRI] --- .../executionHistory/executionHistory.bin | Bin 19732 -> 28039 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 18897 -> 20247 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../9.0.0/fileHashes/resourceHashesCache.bin | Bin 0 -> 19211 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../buildOutputCleanup/outputFiles.bin | Bin 18713 -> 18983 bytes discordit/.gradle/file-system.probe | Bin 8 -> 8 bytes .../classes/java/main/JavaApplication.class | Bin 0 -> 1683 bytes .../classes/java/main/entity/Channel.class | Bin 0 -> 351 bytes .../classes/java/main/entity/Message.class | Bin 0 -> 351 bytes .../build/classes/java/main/entity/User.class | Bin 0 -> 2203 bytes .../java/main/service/ChannelService.class | Bin 0 -> 117 bytes .../java/main/service/MessageService.class | Bin 0 -> 117 bytes .../java/main/service/UserService.class | Bin 0 -> 438 bytes .../main/service/jcf/JCFChannelService.class | Bin 0 -> 300 bytes .../main/service/jcf/JCFMessageService.class | Bin 0 -> 300 bytes .../main/service/jcf/JCFUserService.class | Bin 0 -> 1242 bytes .../stash-dir/JavaApplication.class.uniqueId0 | Bin 0 -> 1695 bytes .../compileJava/previous-compilation-data.bin | Bin 0 -> 542 bytes discordit/src/main/java/JavaApplication.java | 32 ++++++++ discordit/src/main/java/entity/Channel.java | 10 +++ discordit/src/main/java/entity/Message.java | 10 +++ discordit/src/main/java/entity/User.java | 72 ++++++++++++++++++ .../src/main/java/service/ChannelService.java | 4 + .../src/main/java/service/MessageService.java | 4 + .../src/main/java/service/UserService.java | 25 ++++++ .../java/service/jcf/JCFChannelService.java | 4 + .../java/service/jcf/JCFMessageService.java | 4 + .../main/java/service/jcf/JCFUserService.java | 53 +++++++++++++ 30 files changed, 218 insertions(+) create mode 100644 discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin create mode 100644 discordit/build/classes/java/main/JavaApplication.class create mode 100644 discordit/build/classes/java/main/entity/Channel.class create mode 100644 discordit/build/classes/java/main/entity/Message.class create mode 100644 discordit/build/classes/java/main/entity/User.class create mode 100644 discordit/build/classes/java/main/service/ChannelService.class create mode 100644 discordit/build/classes/java/main/service/MessageService.class create mode 100644 discordit/build/classes/java/main/service/UserService.class create mode 100644 discordit/build/classes/java/main/service/jcf/JCFChannelService.class create mode 100644 discordit/build/classes/java/main/service/jcf/JCFMessageService.class create mode 100644 discordit/build/classes/java/main/service/jcf/JCFUserService.class create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 create mode 100644 discordit/build/tmp/compileJava/previous-compilation-data.bin create mode 100644 discordit/src/main/java/JavaApplication.java create mode 100644 discordit/src/main/java/entity/Channel.java create mode 100644 discordit/src/main/java/entity/Message.java create mode 100644 discordit/src/main/java/entity/User.java create mode 100644 discordit/src/main/java/service/ChannelService.java create mode 100644 discordit/src/main/java/service/MessageService.java create mode 100644 discordit/src/main/java/service/UserService.java create mode 100644 discordit/src/main/java/service/jcf/JCFChannelService.java create mode 100644 discordit/src/main/java/service/jcf/JCFMessageService.java create mode 100644 discordit/src/main/java/service/jcf/JCFUserService.java diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin index 0e1ad93abce9f9c3fc21e95aedbeaf09ab7bdc49..4a920541c47905ca93623232bbda71159b668abe 100644 GIT binary patch literal 28039 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 wb?k delta 49 zcmZp_%{XNi;{*{_1|SgKX!t^WqJzX_NeO92#>u`C%8Z&Ip^XkVfx_yW9X&3y003k! B4-NnT diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock b/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock index 9381f4ff8a2bc23cd3cac14a6b4eedfff68fd703..91206a134c149812d1c2593de8c9dc769063df5c 100644 GIT binary patch literal 17 UcmZR6G0Sa*#+A@h3=rT906EbF(f|Me literal 17 UcmZR6G0Sa*#+A@h3=qH!06CEak^lez diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin b/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin index 19d6813a8540643d0d479f50338ed065893c19d8..a52dc8ffdc5412f28bf3c93f343d3d67efef16b7 100644 GIT binary patch literal 20247 zcmeI3do&e!9KeSwdG?aricOqF5)$gVR+q(k-0Wr}kL`g}Rw{2LEnAchl@&`@E*nXd zS1Bq*dwc14SF3jOh~1NCl8V*Zx%W4}EqCmn`_G>5oO9>S`IyhlZ$2|~|1o1t5X@N< z)I@xkls_!O5)^;}Pyh-*0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU@P8@bLLP`5 zIvA#&q;O$oI6)XHkPDhTeZ@!oZ_;W3x2!Gwp_-Kr?&GY z=8eNzA;%IVClI%LjCs@i80L)LY7>g*V*Ydmr>62%dluqrG%@e*54k+;-iRII4(XT= zY<##mB8J7F_^DPZHl{KE?@Dpc3JFud&C`+F;}{^E#dH+zI4PL7?>~U{4qD>%Abaa+XZ8;;q3WN zE>~TN+I|J*2A*>al$y^{<8(B@+-O;G!Hc`)$EfuW{lnY)PUb6hZAaWm4RbReg`U>a z0X>L2Y{UGstMUU4g>DvzbB8cry~XED^a)w&xVVX!b0?P8+0R}11zO+E5_4yP?|t=G z7mcay*JAFOF97KErx?sP^_~ls8Fzk+xT6>5-h%JbGBQ}lsr9=t_YF%{wOw+O z+Kzny=6+?`y90G{K0)i-^D+0|e>SY9>DF|LH)0-?Po($vEu_wiqX2XKO%M!sC;$bZ02F`%Pyh-*0Vn_kpa2wr0#E=7 zKmjNK1)u;FfC5ke3P1rU@ZS{>J{-M-{45rJX6)3%j1G}N5aV>Ctg0hgN3L(Tjk|`War5R&)TovtLxV{-v~(I2f6r3krrxoOns6>B zM^H7-Be{c9Rq(t{Zi_W1HcWYZ{Ul>2-;HiKG(?nF`}mhAj$8;$+jpEZ z$(Zk|OE;cN)gLioOZ`z@(EEUu8K*zVU_1+?8|5xF_Y>acxsLhPw&=C8vnLtT44%-9 z=Dmk!9|&eHEiGMXv|+%ae3C&l@#)5)fbHzjxf3dW?(=sR{u)6(z5h|GX+hWNhJB8~ zAX{md>Megu#m@W0ok<4Mn?pBP%x-7Kw^Ku*#DBek*8wnyO#Y~JXuZhTqtS*8!jx`2yjxVLART{D$}c-#M*8_>kdgM)qCZn11*{; zgZvgwQyKNGR?)SiX)Q(kedm8LtR&Ba@O;#(B148pev6ID$Gl|G@`W{H-Xoo>6oMl| zL`H|13NoaV=|)gS#Xeu2R^Ff>$kgMnEu+*vG>{=d-Y??&=uiu~62)+8E7xNOel_C- zdBmboX(2;uihD4V#~C#2YI$c7Tf#Rtvm)PbA&o0pR~e8LQLQO}LbJ#`9xxC*)sNTBA{!YKjDcV9||KcljL; z588Tsz2oQ*;}IiXWc)Hd=iiM`H=V?zOgBzv=GxD5#`YgZMp_hQOmSUh6c=R8u)A@s z%jfa4I%t#^-cmpYEA4372Mu$QOm?Yld; Q?ISWn5tN}#jY?GaZ{(4E1ONa4 delta 57 zcmbO}kMZJU#tkMCj2x4vN*GMO3&c+)B_=PGl9((jZNT#%3K$p|E^bu(A->VTLwvKN H#{@Zi(JD^~t+O3=l9E06_}|0ssI2 literal 17 UcmZQ>Zi(JD^~t+O3=qHr06=;LaR2}S diff --git a/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin b/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000000000000000000000000000000000000..927504e28971bb1f43c8b03b3c904de8742cb640 GIT binary patch literal 19211 zcmeI(|1Z>W0LSsGxF$8!?5?a^%sEB4zO7I~b==U^G__N@zR{VoX;kZraFbjrv3%>x zIF%F~Hdd9S_a^Z51dma$k|%OCWE z_4{G{`w~|WfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2>dSsYYaCsfw~#4^H}4B zMI4LeHqmflo!vC0=5G6hG1S{)FY@_8Zuf|$<%3xs)%~@kpYPwgbZ?4=L+@pzS3llW z?xF}1P~C4c=?xJj3Xx>DoIWRp^yVXj-49dKF4Fr4q`y-29+pds!sz`f(%*CyedZ6T z&d_~`^tb%``TK8a7tsCLub$7(*Tihhpt?AbboRGwd55K>hwg7l=gxWRv~!2kP5K;H z(p_3bo;9)|Ke}g4Cws zyP666*HLUsR1q;C$*ZHn}&45GTYj`Y|)93K-8 zo|-=A0_o&0i#67adJnG zZ-~4<7d1KQk1yp--otJ!Ry?_W+=jVu^sS0kyMIxJuZ-g?*1t43hXH2X1u+3*KlIt%;*IipH_q-j}96zva9&_Q#?Q^*kp|q{;jyXTAr8b_q zuwUbt?mx09Q&Bap!8c7Xp1EjxS+wI5TlywM!nqMUS69niv_;JknimY5>N?(FYEqG& z$XrwwOPqRlhNh(l2pWq&_ibe^Jaz8sb&>;G!Fu6GPGk6A?nPJH?R;pTLt)^xdW(Dd zO{UB<;#4y)R(B>W6%Q)AO6%+HF&8}xWr|*#4X021SY#L6ZWYK}WO-DUg$*QicG{ea Lx|}2qH7_0_1)+G*X)009jEDh>nQ literal 17 TcmZQ>_0_1)+G*X)00H~}DV+mt diff --git a/discordit/.gradle/buildOutputCleanup/outputFiles.bin b/discordit/.gradle/buildOutputCleanup/outputFiles.bin index f9a67992294c072c2b7ac65d9234cfc54a7ee357..8d945e5e90052265137ac3878d957ba1e7bfd4aa 100644 GIT binary patch delta 413 zcmbO^iE;T9#tkMCj?%LYxc8P^E}zE$1|F&Zp?&a)aFs{t^B&Vbzo3F=CznbD2z=(ZxGCXY*8&mrVxGKLLc!r5i(Ho&mvuc< zWh=~BhNxpv8GCqypyK{8amJ??xo&U%_Z=#JfAUocg?dGei(4)Dr(J*wPKPO03X1;0 zwNybED*h2BuKoG48s~ITn58RW;uhQbS&c%jD?!wIiNeGkwX#mFJ7lf`HD@3rtW!?a8u|3IZ|3LUTWH&)NnRw4H1!sl~)JbED!9 h@r?!zqLUpxZcJwP6ar%2$q622ll?rRfEYw;0stu7s#5>} delta 70 zcmZ2Jg>mL2#tkMCf;_Vgxc8P^E}zE$1|F%COC>BOAC>T!tSTunxfO_Yr3@yQN=Zy! XDy784Xt+`FhxkT=7h;ngJ#GL17}OU4 diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe index 2fe2fbca5319184461d7fc92c45164c6d2ec4efe..ea07746fc520b138d683e0dcdce50835be88a358 100644 GIT binary patch literal 8 PcmZQzV4S`1($Yo%3EBfT literal 8 PcmZQzV4S_sba4;>2haj& diff --git a/discordit/build/classes/java/main/JavaApplication.class b/discordit/build/classes/java/main/JavaApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..6ca14eaaf13007f6a9a8b34cb40617e1886675eb GIT binary patch literal 1683 zcma)6&2JM&6#tDKvd(4`U=vJ3OKNBUJ0x)e;nRsraO*s%;nI%-DNt4FwSP)u{sq)GUYFXzMYZIec^~uM@4fe%`Sazo-vP|x za~&asHFO!+g>HsDYkY$zZSItliz{oQC>gqEEXR^*hHyMl&=6th6^^vzX7ZXZya;rL zp8D5!Ufg@I{o`*D7!13GZ42ju!#9LCQFJR2^fUBLPEC$aoj5r?e(Lm@vpO{FQ91WA zoQvoF&6<~<<&;zZN2AaTFdQHh8&**y*NV52^O>wdl@C-pOoV$8#eNNM85qI=hJkwqC$;vYt*NG0cOihUZoNw6(V>g z6~SSKW3#V*v6-3rlP~}J>2|Ds|IYTechl+EE8DD&5ggHQ)W9*s32LJ)?EwjDRfV@5 z%GjZCi9!UU|CRBJ?_S*fp)I3o&X|F5OfcwWA?Iv6XoDF~1ohOUWhZl%FH<@uF{R;z zfs>eSZ$x8g1Z{)cHL-Y$;b<$gfJv!lzy`URV>XF|rwyFJS%&=;zAiGZQ{?ixC0A+Z zOYTU2N3iC}4#6~>C+^J?f#<4K+oCv@OI_;9xFtb`oaKlswaSX{miUTI8Z+k>xn1C% zrR1ivORid!a&K-&oD>DBaEsza<2PStXQDuM?v?52KnF7!YYlewwULXil2Ydbwkisd z)ZnrjLQ_qd6+5#wFEg+kbd&Ou7uOefwFz0zyEU&UvX&}pa0l)Q#UUEjMc0+S^muha z$W^!G@9xH;j;r`Y!>4Khd4>_?8r*%$*>KlIGU# zF&LK}M|c^V`@Zlse8zC(wNg7(pnRa2OH#>gb1h1xyTM zfOLcO7(~f;2$xAx=tctsxQGl%{dD#Nd`S4Bm_`;KQMtny!zJ<$W1c+v5PFGm4Vs21 f(@6O-DMQF%fz}8eyh8sa6iCu(cOA>PiJ`v%ytBR~ literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/entity/Channel.class b/discordit/build/classes/java/main/entity/Channel.class new file mode 100644 index 0000000000000000000000000000000000000000..1eb93ba5c4e8af5c045723382007bec015d6511a GIT binary patch literal 351 zcmY*V%TB{E5S&fYhKA6V0w2H)IN%T9A)z89qzDes-krp1T^R=j2Z_((gv5al;G+<0 zD;&7Y?9O;cyZ-+9`~q-+gA5Vk6iJQ&hJ@)xzDi-FU5Wd0qbf%jo@=Y!B_TdKUZ&V0 zjFolTy@~l+TB{5p(lw73VYYMHh{fXe`iwBDS|y#TuQ;Z+Lv+#DmAAX+`p-`0O|1x% zLR)p$J(a3`l%-*1Ry36~OWA7Q_hRDK`o(Ad--I)>ho);Qb))@k-fwv7H^U)PJ{E`> wN65H}u#G(MPGAE0Z(tm=Dwv6RaPk3q56>oy-ewU~#=Nh0G2@P~#~5M%7ofIBeE~RN_8gtHKh-r`l+HP6!VUS1~pS zQ)R5SZ{k*Uovaig&?S#%ezv!|7R%+$)d^uzv`Si4UU1A{`{=AOm9zVo^3RSgo05}e znKtUKf6i6=DD#??Mb;FuUddLweh?%3q&t`Se-qA39-6)_)U|fA>9FCk+YI}N`B)%i woFL&Uz$Q}9Tb>EzzJYPds$eGO(a{I!-9MW#I-5nz8PlQO#)3P-4r74bU%Hk@p#T5? literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/entity/User.class b/discordit/build/classes/java/main/entity/User.class new file mode 100644 index 0000000000000000000000000000000000000000..ff3b6b477753274d63470bd583ae5cfeed166ea0 GIT binary patch literal 2203 zcmaJ?ZC4vb6n+LmHVMm12{tX&0+vD&pix?_HKj^JvCsgmAylnjmSlu2o86q<37#DF zfA|CZ0eX%(a{8e^z#rxD&g>>x(k&lm@66;r_dfS!ZvOr6&07HL_%Vec3~Pw#7(tw2 z^0jeh6fDC&F6KG5u3^`m zhJTpK=E@fpib;%PLc^qvE0|&!<+dtO8RxvYg$Ho&uDOl zDPL8wtq9k&kCpvvI<8CQ5#BINOM1Ma<3j~+o;Wt&Yc-Czo5D@ZYM9e8kB=_|UTJ%R zHyEzeTCPh356lMNH7(2ZR1S7hSio%!i#nE&?dCv{C_DBsgLY{4y!R%8BEy5r z-M`=1Aw#U>)Tv1(%4WCZ2gZ@5+Qz9F)}i5=@*G^o#EGo$SUJ>@MXI;${LH|1sGE+t z*rxu}NtXI$>-BiQaK28pTQTYof^3Exce?v96ex&-AwhaiWY7AL=ly1-hef|_SeE}# z62kF8bYF2=ZjEo5GP0!n`Hp;Y)ESQ*M|i?Dn!8+_ICXC#j{Ov#r@R2g2#pnoyz>uhDN_nzdT_h#fFG&t6m*wV_J8V>$8G!^8AOfafl0)O$tZD|M4CqKG-l{KOFpy6(B!#>hop6ne3Li&`*=iB?j%d5 zc9N%zX-!UC;x$WlzQWgJmtg~Xz_>tC>W}3A#@L^<8G>CS&qWr0Zs_fM(tE;R8yxMS|X6GBnn8{-YjIPs3oYLn)AYcs;U&~>A1*D_%} z5ZoN(-HATz-YaFyd^|n!ZZk*NdV(*hX9TP<<(Io1k>_`3BAM?yx6^`T&;DQi!w+`qw|fftmFS;(7f52 zFiy_8J`mznxvLD%tg{-P?7erV;~J5CcD~U?i2JOf`?epjR7B*f}KMj NO1%^%LPr1q literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/service/jcf/JCFUserService.class b/discordit/build/classes/java/main/service/jcf/JCFUserService.class new file mode 100644 index 0000000000000000000000000000000000000000..b916d5955c7d82c01da25db58cbdb7b99baa7185 GIT binary patch literal 1242 zcmah|+iuf95IyT$Oq{d{2`x~F?U^;&n-Fi4CqMZkViqsN&%}VGHgtRdn$Xv z9P~b!2YdS;$nFF#hP2H+PK4G4n8Io2aTR49l>)9|jbSx@O)9u;GpyBvyol0v<5j)| zIpVHVcIZrdCvwVAwHD0F^%AB|!W9A4T#pepj)`#Q->k$gD5o#HAg2~BxZ}BU)NeNu z(Ro`=Ck~$<@}V#F;w{4j27>^19Vfsn*BgmWkj&bWbGbdnY(lRm0+hFxD2qH!NWJVy zs?UfamkvXIaxz|Yodny$5eur=t1p^B-7`AlncEZlQaw>6K51L33#id#YG7EWudJq% z_8asEXt;?iooV=K-5}2!r04{cnrC3mU(i3EA@?1|S3mj|t*aEF)-<6MQ9_lhLXd;o zxI-3=81995uZcq=U%vSbM(YPk8a|V$K|v`}(4Z@b^&l*Spac?qpY9nR;9&^%l6D2A zu`g~E0ioJTV~dy|u%O~sAQjW5N`t7uP_!?XyP51wW_a_# zxBA!zov|G|cBUUM{dkb7o&Eux=|589zu@%TY-$rso$k)=z4x4R&-tBme)sh6pC4|jk3EeL~Qzp!oLTyS_*l&5lTF^CXD@AS;{PAa!4QTuyk+1Z4lxY; zW8P%Ppz(ZO38(_mbW?iq*v)RdgTop|47`g-ONBDqo)kqYj9Z~P9q=(*u6dPGkd%nv z#dr|!F&vwJ^+e|8YEQoS>!&-B+Jn2hkMAWCkypBT9iup^Va&iWLrLTD$ay~NlY>51tAw~+b=^n8uRn1NXs_UmM7ynrZJ=8 zgn^Sd)mn&p(+FCX+ZC~Vn_;XOn$M(o!(p9VjW&mggr^Oh!C8jkBHt28*U53YYRL_n zd6GNQ+vBXUvyC$i=ZSlZMBs%|$+pOk3O+8TL;>xNm;40tG9(*bd;1hLLimv0j|l4!c}n49N_`9yxP;5(dyy=9 n5qODN4Vs1_rjhUy5(bdQ5{*IHc!j@FHp#|s?f%7+=8czS5 zab^AdnzfS*b}5Pli-&TGvI#ttE!t7b?00{gj&)%G-^+&*j*<+mUWsLiQViV%1v#0? zi6xo&c>>8c8|4k95B*B|`pAN(xVl6-SSFMSsJ&>;&YINOYRlgrEi#Mxm-18AS(sH| z)2D5m)^TFH&aapFD(&SXCg&?GC~$4srQ_MZ4m=W7c+JIDXm?3ISizT5kWFCDhSdxB zJofK-l6?K%xx`yLnS~e`C78sd8Ki+UqZor2kYZq9XaHh3Xn?bT5{y6&m!h6hu(Gd; zo2s*#m%6@&J~JOE@C4a38CtV|o&hRhl-JVJ4%N{YVG-2?afNjC^n&$$4fL78%77yL zhI&T9#-RqHKwUttw27XnvkohmEo-J{9&8b+0+kZ8)RO>W~|w!wDJ W2CNY64EA~s!H&)> =========="); + else + System.out.println("========== <<추가 실패>> =========="); + + //userService.getAllUser(); + System.out.println("유저 목록 : "+ userService.getAllUser()); + + + + + + + + + } +} diff --git a/discordit/src/main/java/entity/Channel.java b/discordit/src/main/java/entity/Channel.java new file mode 100644 index 00000000..f9adc6cd --- /dev/null +++ b/discordit/src/main/java/entity/Channel.java @@ -0,0 +1,10 @@ +package entity; + +import java.util.UUID; + +public class Channel { + private UUID id; + private Long createdAt; + private Long updatedAt; + +} diff --git a/discordit/src/main/java/entity/Message.java b/discordit/src/main/java/entity/Message.java new file mode 100644 index 00000000..3386db0b --- /dev/null +++ b/discordit/src/main/java/entity/Message.java @@ -0,0 +1,10 @@ +package entity; + +import java.util.UUID; + +public class Message { + private UUID id; + private Long createdAt; + private Long updatedAt; + +} diff --git a/discordit/src/main/java/entity/User.java b/discordit/src/main/java/entity/User.java new file mode 100644 index 00000000..e1fd3a6e --- /dev/null +++ b/discordit/src/main/java/entity/User.java @@ -0,0 +1,72 @@ +package entity; + +import java.util.UUID; + +public class User { + private UUID id; + private Long createdAt; + private Long updatedAt; + + //추가적으로 필요한 필드들 추가. 예시) 유저네임, + private String displayName; + private String email; + private String phoneNumber; + + //생성자 메소드 + public User(String displayName, String email, String phoneNumber) { + this.id = UUID.randomUUID(); + this.displayName = displayName; + this.email = email; + this.phoneNumber = phoneNumber; + this.createdAt = System.currentTimeMillis(); + this.updatedAt = System.currentTimeMillis(); + } + + public UUID getId() { + return id; + } + + public Long getCreatedAt() { + return createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public String getDisplayName() { + return displayName; + } + + public String getEmail() { + return email; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void getAllUser() { + } + + //TODO 업데이트 추가 + + public void update(String displayName, String phoneNumber, String email){ + this.displayName = displayName; + this.phoneNumber = phoneNumber; + this.email = email; + this.updatedAt = System.currentTimeMillis(); + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", createdAt=" + createdAt + + ", updatedAt=" + updatedAt + + ", displayName='" + displayName + '\'' + + ", email='" + email + '\'' + + ", phoneNumber='" + phoneNumber + '\'' + + '}'; + } +} diff --git a/discordit/src/main/java/service/ChannelService.java b/discordit/src/main/java/service/ChannelService.java new file mode 100644 index 00000000..839a65ba --- /dev/null +++ b/discordit/src/main/java/service/ChannelService.java @@ -0,0 +1,4 @@ +package service; + +public interface ChannelService { +} diff --git a/discordit/src/main/java/service/MessageService.java b/discordit/src/main/java/service/MessageService.java new file mode 100644 index 00000000..6150e794 --- /dev/null +++ b/discordit/src/main/java/service/MessageService.java @@ -0,0 +1,4 @@ +package service; + +public interface MessageService { +} diff --git a/discordit/src/main/java/service/UserService.java b/discordit/src/main/java/service/UserService.java new file mode 100644 index 00000000..7ec45feb --- /dev/null +++ b/discordit/src/main/java/service/UserService.java @@ -0,0 +1,25 @@ +package service; + +import entity.User; + +import java.util.List; + +public interface UserService { + //생성 + boolean addUser(User user); + + //조회 + User getUser(String displayName); + + + //전체조회 + List getAllUser(); + + //수정 + User updateUser(String displayName, String email, String phoneNumber); + + //삭제 + //전체목록 검색 -> User객체 가져오기 -> 가져온 User 객체 안에서 id 조회 -> 리스트에서 검색 후 삭제 + //삭제가 되었는지 체크하는 것이 중요 + boolean deleteUser(String displayName); +} diff --git a/discordit/src/main/java/service/jcf/JCFChannelService.java b/discordit/src/main/java/service/jcf/JCFChannelService.java new file mode 100644 index 00000000..ca685055 --- /dev/null +++ b/discordit/src/main/java/service/jcf/JCFChannelService.java @@ -0,0 +1,4 @@ +package service.jcf; + +public class JCFChannelService { +} diff --git a/discordit/src/main/java/service/jcf/JCFMessageService.java b/discordit/src/main/java/service/jcf/JCFMessageService.java new file mode 100644 index 00000000..93943ae9 --- /dev/null +++ b/discordit/src/main/java/service/jcf/JCFMessageService.java @@ -0,0 +1,4 @@ +package service.jcf; + +public class JCFMessageService { +} diff --git a/discordit/src/main/java/service/jcf/JCFUserService.java b/discordit/src/main/java/service/jcf/JCFUserService.java new file mode 100644 index 00000000..ca78efc0 --- /dev/null +++ b/discordit/src/main/java/service/jcf/JCFUserService.java @@ -0,0 +1,53 @@ +package service.jcf; + +import entity.User; +import service.UserService; + +import java.util.*; + +public class JCFUserService implements UserService { + + + private final Map data = new HashMap<>(); + + + //생성자에서 초기화하세요 + /* + public JCFUserService(){ + this.data = new ArrayList<>(); + this.data = new + }*/ + + @Override + public boolean addUser(User user) { + boolean guess = true; + data.put(user.getId(), user); + + + return guess; + //boolean flag = data.add(user); + //if(flag){ return user;} + //else throw new Exception(); <<이런 방법도 있다 라고 참고만! + } + + @Override + public User getUser(String displayName) { + return null; + } + + @Override + public List getAllUser() { + return data; + + } + + @Override + public User updateUser(String displayName, String email, String phoneNumber) { + return null; + } + + @Override + public boolean deleteUser(String displayName) { + return false; + } +} From f9b7804439c6ecee8512672282be742407fed9f0 Mon Sep 17 00:00:00 2001 From: apple Date: Mon, 12 Jan 2026 19:08:05 +0900 Subject: [PATCH 03/12] 2026-01-12MON --- .../executionHistory/executionHistory.bin | Bin 28039 -> 28039 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 20247 -> 20247 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../9.0.0/fileHashes/resourceHashesCache.bin | Bin 19211 -> 20503 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes discordit/.gradle/file-system.probe | Bin 8 -> 8 bytes .../classes/java/main/JavaApplication.class | Bin 1683 -> 1742 bytes .../build/classes/java/main/entity/User.class | Bin 2203 -> 2376 bytes .../java/main/service/UserService.class | Bin 438 -> 450 bytes .../main/service/jcf/JCFUserService.class | Bin 1242 -> 2152 bytes .../reports/problems/problems-report.html | 663 ++++++++++++++++++ .../stash-dir/JavaApplication.class.uniqueId0 | Bin 1695 -> 2289 bytes .../compileJava/previous-compilation-data.bin | Bin 542 -> 542 bytes discordit/src/main/java/JavaApplication.java | 39 +- discordit/src/main/java/entity/User.java | 25 +- .../src/main/java/service/UserService.java | 9 +- .../main/java/service/jcf/JCFUserService.java | 43 +- 18 files changed, 739 insertions(+), 40 deletions(-) create mode 100644 discordit/build/reports/problems/problems-report.html diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin index 4a920541c47905ca93623232bbda71159b668abe..ca48e43f24e3cc9440c27e9f3ddfc5503500b94b 100644 GIT binary patch delta 431 zcmZp_&DegMaf5D*ZDK)DN^)gdp;1|KQdO#PWl=$9sd+|bVOFldqOYZFcZ&bHt@4RV zi;4?x6u=OfydlPQ^ZJ-)>;hannwHFvd$+bl#MF7`i~l^6XNBep&3eu`Gp(ofq|C!O z$8Iq@f5xekKZc4-)(z|5d^~jlqY$US9L+gXzx-MxbJN`B${!U0> zM|{rf%q}XUpovHx?dUtd_sA%q;}b&63 zZY9*mT=0#at`sa6aqanAp!#!@?X&i1&%Z8GuWt9;qKDVmEtDt3U)dLaNb%XKSH zSChLavZ$6&7fN`=?xZ&g(>F*|Q3NH|tpw0iaLo=;YeG!##^*(h%)edt%x*GCpS#nmO#zqIu4GM+ryK5LKmL)oGo zwak9^x9M0H2JpRnxNP3@zFo$*IGGs)9wmQSsxV2OD^)@=I9Afuc(Piyi(S#2oi(Ym z)t0|MT4WaWFXiVVu=;JxK=terJKSz>m7K#I_aszywuLlM=-z}FwM5QKcbOlZ*t%@D p{QAxIQ3o02HqDm(d6YeA&qSNV?QO9~|I7fpXC4a+BLjnA3IH3xo(cc} diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock b/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock index 91206a134c149812d1c2593de8c9dc769063df5c..ac68db443c47e6f2e6a4cfe1b21a6319de68619f 100644 GIT binary patch literal 17 UcmZR6G0Sa*#+A@h3=pst06IejL;wH) literal 17 UcmZR6G0Sa*#+A@h3=rT906EbF(f|Me diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin b/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin index a52dc8ffdc5412f28bf3c93f343d3d67efef16b7..e425046bc7ab7791f539ef9b783241feb8a9e83a 100644 GIT binary patch delta 388 zcmbO}k8%1u#tpXK3L&3lp(HO(0eTVSxo3CEXS?O!>7_)U>8yJ?kg1 z4x#npKuI8A@|pbE+eKl<%$oF#H-xV3S|;}8Yj)`Yu%Zgan_x8ztd*0)eah-DxJPZ) zlKrz~_2L@~k1kfrhd9v55Tc0F14yIUeeI*W(XE8~m_ zcA)JcOxb{&kUhb-U*#7uP&U(Om3N0o7swR0#we k8IzlRT_lVWU({Z(f12#4D)m>xp`#k=k{g@v`&uvp08VXq+yDRo delta 388 zcmbO}k8%1u#tpXK3STBJH;eLlsTJPys+!j*rJR9*arVNS=M)*hfGu}&thY7!>bnC{>zZBNrqzLU ztoB(Almr4Mx5=NqT@r-su% zXIxo7zh>)Y)pw-ybb9i~5)H6KaPNP^CE#Gj7Aw@=&&DM=i78{cSqdg#mmoA40XL0aXG4 l%dN@HzAh4*X3PFO%AT}mqD|uVw%DV8pe~WveBalC5dah#cfJ4s diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.lock b/discordit/.gradle/9.0.0/fileHashes/fileHashes.lock index 5ca90a6b5bcb14ae8369580fb349c42420892e6b..b9209b4556b1d3e4e6df317e0ff5cd4f0405b1c7 100644 GIT binary patch literal 17 VcmZQ>Zi(JD^~t+O3}C>x1^_`E1`+@O literal 17 UcmZQ>Zi(JD^~t+O3=l9E06_}|0ssI2 diff --git a/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin b/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin index 927504e28971bb1f43c8b03b3c904de8742cb640..6817128cb178d106e92ed04230ea329225b0170f 100644 GIT binary patch literal 20503 zcmeI3`8!nmAHXL?mI_6qVlr8VY^l^OljUZz%$V^l(nQ>m-L>57UQ4%7wv=_sO`1}c zN_HuRDN9-6DnhQ(qEbk*CQ`oUd(OvwzH>a^Kj8a(&hy|ruk(7|=JT3kesMk~IGmi+ zEPCMnIb{Dig=eq;EC36@0B-M%pq;g*(wN3~uI zAt>=ED4zs8`L0Tfug;>|2xoW$e!g{8b#1r!B7|EQ0)C8aR;8lqllwijG#R#XZ1H8#SKho4H$P?k_ z{(v{n{Ms9c4_%J>#{qwQYO43q>G1mhkh+HuL7vOz8*&`}nGcTe1E8zVq4e7_KO1GiBYo4d8q?h>rbQa+j;ed}= zbcjZk9Zo|y{T|@cM|kP7rD^Ex%a{QCy8-Kwz7s_m^{)UfGJW3jrIghNbbdeJl5tf& zNi@1T!l|8rK{X7rC+Zu+7`5>I3KF`CSnW{Xs^+LEs z7T~)0mpik>GSE2|3V?5I|47O*twi4!`WnD@wyBDTbFUSm^AqOz*ctk2c}d@5l+HeSFCo;pWQ$KWu-Y)yt4eN4P~j;BKWXo3KEqwFqYv0q#DKpm;26 z0R8)7Pyr7J#{alPpHPJOX4e1@eq%}0%-FAsaJoL=;3p0zd>*+5zrzBs04x9tzyh!U zEC36@0*+d!hajpsqFR}oRz^M zPjVtVD-zdX4Yl1ozoMNJv2Kh&{I1D2{HLh}W-M7{ONpUnZVJi#;6|~`Z^0V76yF!6 zO%C5xU%5f=MDy)YtdYzj(8s!Fc zQ%TXy$-ey2<8;x@VyvNB@;Np&)-He}?EcluY?A+kxxiWmo=D`~KSK&4c${5ZsZUJD z8qtk6{OZdNc#>-zABT;*@}Jfhn6X=KRQsNLEU~iJ|LWR~`(ao^*+z|R{(VPsByVxk z?s(EttkL==+hn?leMp)QmjXG7WNKgE? zoWg=1(#jiF7hsLf<~&YRSI8;(lp}Gu6zL|cp%g0=`Z?p&;%di=nJG7E{`3C=@7yr+ z_6>RaWpwf3ljLTd0RE;M0i#9zTy*b)!kWESy!+Q`Zt<{2%4P#HFP zywas@Mw}r1Rnu&f4QkAXF2>jygLzdiXJ%K+`=?MjkNma%z#5&WKRH-mDNCX$y6`GW zRW~eP?C`rJN+cL`yRK;Gvd43<#;D1|Yz3=3H?7a;##z@mPhbr(1CrjMfZUj(blL>D zpH+@E#>*P?BF<2Sg-l{o8WRc^xRW&~3Q8lh*?RX9wJSFkFXcZOFVHk#yJ?h{EYF2O zZT!71YxM$6haJV8u6h6ARx;%)RMdDu6gz{ms1g4v-5}qVee8?9wowMwSZ}aLVdf&W zu0`!}vHtZ*1FWGw9iysU;n&o~^gZ^9CI2_p__BgYP!7s&y-@XwT(gxpt@i5k__Vhw2(f?>kGWRBLuZ89<@tqZJ$dowzTDeKc;8OA#+(pJmg zjUn(#ck)taZuI`?dbeqv)ScKJ3w%0=NpaLU$>Y=M@?G1>Z>K7;GhU8zIeruSY;4PE z4vM#AUtA`p!1%yjN2V2N zOC~WcX78psL2xZ(cXq>I#+B>eD}Gh`WY`ddH8cz44i=6DD-Kd<_}5<)`MZDwdOTsu zK!JSUvL aw@1K8eJ^(2H8%2re2;_i>D2}dzVUAx9{SJ# delta 97 zcmbQffU$cT;|3E6M$ySrB@8C>N=i%)1>#m9-U`IAQVEk;r6nf&0&%UhqsJ*G05_0_1)+G*X)00xX!04d4?nE(I) literal 17 TcmZQ>_0_1)+G*X)009jEDh>nQ diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe index ea07746fc520b138d683e0dcdce50835be88a358..840fae2ae27dde3aa42706d39323e0c88f6ab085 100644 GIT binary patch literal 8 PcmZQzV4S_7lp_NG2dn}z literal 8 PcmZQzV4S`1($Yo%3EBfT diff --git a/discordit/build/classes/java/main/JavaApplication.class b/discordit/build/classes/java/main/JavaApplication.class index 6ca14eaaf13007f6a9a8b34cb40617e1886675eb..85b6128fbbe5ede4d39434456f9a64f66dac2f0c 100644 GIT binary patch literal 1742 zcma)6{ZCtE6n@^)axbO8cKL8J+&V?q4oZPdbQbCu0|g74bS=W1dTFoq;%!UHEy;dc z3_mP!iza?#L}Ex>qKPJc28J{K0sbj#`45cxyuB4E!(=b?{W#~m=RD^*@40{c_3Q5d zMv(Htg*pXpA3UfRII^U#>S0UIWx|&imyDDxP(N(uOgk!27YHU5r~;iUMq$-V8R4bW zyWy#^i3HDaN92Vf-8Bj{8admvZ-k{%MUy~7`OCH4yBnqNe^b#S&|+AYk-Lz|>Za9~ z%4by^6=>=o=noBWR3<$0$aCz&~hd9*FV3JxL9Y)X^bu->s9J}Fx-8vWIYvB$N=Z}y|3&=p-tO&hY9dN<27Ne- za{}IsVUJptLxUCwI{6fB(+bDT6+0r)4M}J(90=_^ut+c|>wMmamk<%~(A#8Mpw>|$ zF?orcjIeThuc&@VkNwVY=;LUNLb$9%YiaUw1*r*+$K5GSf^ zQ~+1vJkGOv)FxO{e-*C?1S=)-J3vbxZ}`g_o8`@$fkb?KHs~k#($Bv*Wt8Y9eVD>) zEEE}Vpq+dKT5S*o)69K}9XqtXKy+5rlSJF^GINo@^SV$QYrp&eNKstT0 zDR2rge(&UPfk9Bud4{JjSHabDW*g$iiuy8VsiqKDIQy#m*D=de1LC+!2``J)iX-5= z2T(GYt8@4V*InzbX_(55S=cI^r6NuFkUdUtT#g}I(kb#=}|?soS&nt#G6?erFc zU!zfO!`xO4hdk|`!wqQIvjcLth39*ExA3AitVOj8JGkhDI;Tm^!jFZQkxDGcX%)LSH&s%;nI%-DNt4FwSP)u{sq)GUYFXzMYZIec^~uM@4fe%`Sazo-vP|x za~&asHFO!+g>HsDYkY$zZSItliz{oQC>gqEEXR^*hHyMl&=6th6^^vzX7ZXZya;rL zp8D5!Ufg@I{o`*D7!13GZ42ju!#9LCQFJR2^fUBLPEC$aoj5r?e(Lm@vpO{FQ91WA zoQvoF&6<~<<&;zZN2AaTFdQHh8&**y*NV52^O>wdl@C-pOoV$8#eNNM85qI=hJkwqC$;vYt*NG0cOihUZoNw6(V>g z6~SSKW3#V*v6-3rlP~}J>2|Ds|IYTechl+EE8DD&5ggHQ)W9*s32LJ)?EwjDRfV@5 z%GjZCi9!UU|CRBJ?_S*fp)I3o&X|F5OfcwWA?Iv6XoDF~1ohOUWhZl%FH<@uF{R;z zfs>eSZ$x8g1Z{)cHL-Y$;b<$gfJv!lzy`URV>XF|rwyFJS%&=;zAiGZQ{?ixC0A+Z zOYTU2N3iC}4#6~>C+^J?f#<4K+oCv@OI_;9xFtb`oaKlswaSX{miUTI8Z+k>xn1C% zrR1ivORid!a&K-&oD>DBaEsza<2PStXQDuM?v?52KnF7!YYlewwULXil2Ydbwkisd z)ZnrjLQ_qd6+5#wFEg+kbd&Ou7uOefwFz0zyEU&UvX&}pa0l)Q#UUEjMc0+S^muha z$W^!G@9xH;j;r`Y!>4Khd4>_?8r*%$*>KlIGU# zF&LK}M|c^V`@Zlse8zC(wNg7(pnRa2OH#>gb1h1xyTM zfOLcO7(~f;2$xAx=tctsxQGl%{dD#Nd`S4Bm_`;KQMtny!zJ<$W1c+v5PFGm4Vs21 f(@6O-DMQF%fz}8eyh8sa6iCu(cOA>PiJ`v%ytBR~ diff --git a/discordit/build/classes/java/main/entity/User.class b/discordit/build/classes/java/main/entity/User.class index ff3b6b477753274d63470bd583ae5cfeed166ea0..5ea50aae1988438d77d84e5bb716b604d0b115d4 100644 GIT binary patch delta 753 zcmZ{iO>YuG7{~v!uq>`r3oSHklxz`8TuVhgXpw@oRr{j#wZ5KEHnB;e4YcuM!WZyh zGSS3%@$9XURbrwi55|k1!js;-8~-~{+8&%_W}e?O&pdB4Z=&B~=J&s!z5tlQ!!2`M zlXKdlT+?DwYOmz!z;h$Cxn8YoxbkzLaA3*AHC#7vBZ4!yDfQsj)@^|oxxK?K7MGiD zL-R#yXE2~{aRykOI zvQ~GOHfxXEhGK!pe7){AW>zcBrrR`dSLSsmcwZnTPX<%+nLfNPhA3jJJ0@T2*_H_b z9g|!O)JX&oKco=Ywdl+)YJ&ZUx4;HnDJ2>LuSYOI*@rs6XT+;}19i)>e z_A|^Nh7iXvEUp3fVq@*e75TyXMW%)ETCM@~GhzHJN zT7C#+L`u;G(jQV<(F|r~-pGhCMHfjmlB4Jn=^bgpCvjQ+G}5h8Dw&9iEBF)qTm6kKp&vaTX>$9Arn6Y|2i#RxbinJ6P=`FIfF@Eo_%Nk6EVSKgc3N wD!Eao&4#y;;~eN9FU#RkQI?f({OAJBG#Xyv9;WeC&RbX}`EPp%_wWG8e`)-JiU0rr delta 573 zcmYk2&rTCj6vn?he>!bbOeg{tk+zmFGPJ>e0TilY0WH-EYE@7cqrK54?NB=qqlQ;- za}pM~{yB73#L@ zO4q;(a&${u6&RxT`Vj5wXCn%_5ohBH9qDEz0s$R2IN#*nE>wiLUbVhMSZx>{x~wq| zJyzC3zm@Ya(8h&H&Fa(I$aok%5xG78MND%ZL4=kLJ-CfK(D;0oc0(iLJpC|w)w?LracEd11Daz>8N(tI&^#7s zjmZq?9@7rfSU~rgj+n-M5=DxKFHT(xT*U$hqT@o*8jk9Ja>1&-GDPbaM^qBIp6utIp00`{qLWD z0dNsY03LWH_+pY?H!b;-W@|u#>85+jbf~rq2c>CiS35^V4)2OPeTH-RV ztj_UL01~`SXof7IMMe;<4BZu_ysl=I#9H=t;>z^Q0`1e*5rZ$sb3Vlqup{=i;3%HwVV zZ6;MW8iQ04*jk~EECo{wE6I39}buGd}*-*m_v|^nvlkUE|&ptBJ!B-k{tM1nyFHQ(9dqaJ^b4g2NUY zGaZumxMOR|Hs#QFaw193V!D_kzt)smQ0A-oWu<(BFKcuXNfonP%kZ))_V%GqUsb8J zJ*fjCM_(FYN<5dd9#E*?6)?U;0juWIYH?lA@okN-Ffg)cN$WiO5wW*}N~94BuGiTu zGoN@Jj7O#C8miBlAwU?Dnr6YcpR*7Uk?wQJMI4U1utl)~mJTeGg(GDCj}ngB)Thv# zQ!6EnZ_M+&*#`5un$N(N7tJLl&sB}4Olh@v&^BV1Q#3_aEOu>2*u^tsk}g)uS!G5Q z9d2`v$YBu(eKb-%V7Nqo5iwTj{|pUo58gxrebdaQ^)j7I!AoC2XkZU);3=fVJv2Q* z;Cs`0mewFyfDn8L(Hh1T+R2s=t|CP{hB?gJc$;J`?1u(+5E$G=XdfLOTSeH3WIC7PN9S7 z#anor5=@g7CHEJ4NQbzA1)JCu-FfIPXa?WMum`^){FqKWW@J$i(2NyPIxNe>C_!X! zlkOSb!6My>!X=4`@CZM}$fCg9$9aZ5T&RZ}a8xX8Lt4F9B7k@C9<2iKbE>dNKIS4g z=8yV+gBW%l#x1;WCKtm8 z^d&kK!-w?cGkYtF={HN*C`x!zqJA@QEYm7D-XdS&(`j>j%`D=a=F?U^;&n-Fi4CqMZkViqsN&%}VGHgtRdn$Xv z9P~b!2YdS;$nFF#hP2H+PK4G4n8Io2aTR49l>)9|jbSx@O)9u;GpyBvyol0v<5j)| zIpVHVcIZrdCvwVAwHD0F^%AB|!W9A4T#pepj)`#Q->k$gD5o#HAg2~BxZ}BU)NeNu z(Ro`=Ck~$<@}V#F;w{4j27>^19Vfsn*BgmWkj&bWbGbdnY(lRm0+hFxD2qH!NWJVy zs?UfamkvXIaxz|Yodny$5eur=t1p^B-7`AlncEZlQaw>6K51L33#id#YG7EWudJq% z_8asEXt;?iooV=K-5}2!r04{cnrC3mU(i3EA@?1|S3mj|t*aEF)-<6MQ9_lhLXd;o zxI-3=81995uZcq=U%vSbM(YPk8a|V$K|v`}(4Z@b^&l*Spac?qpY9nR;9&^%l6D2A zu`g + + + + + + + + + + + + Gradle Configuration Cache + + + +

+ +
+ Loading... +
+ + + + + + diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 index e2a236b0a6ff9c7ddc36ce5d3c5a9bdb26df85bc..890b8dc037dc6428f5b302dcf7d883a2ba40092a 100644 GIT binary patch delta 1243 zcmZux+fy556#somw!3T=unR%jQW`a_2}uaIVgad@k}4ReLIYB7UC0_kLy9Dz^_Gr< zGy2f6amSgWSaHVD7iS!W;nF%j`K0~+U4>r{Pswn~a0|H2OfHqX9EoSm1qIatRizutx38}jzx_c$tw61r zPMeui$vGpHZk@R_r(nN8bz6H|xSgv^RH&%aAfaBM$6xruS6HtfRM5a&w^y$IvAtdV za795Qb0v(WRAO(ggOywzTw$BI(S*Y?nl&7OxA50-_k(yyhEKy$9J6{vr|?_9i$?1` zQSWX+P)0~Y7_HWqqF1!h6H=Pcp`jC9R-MC_Z$Y>1e?-9JkIfoOMkH-yl9991v*t{$ zFEC+O-lL%xeF9R_%nc<3bbnwsbTOAoN8<6J!9E53EdK6XO7CAUt$nQEF&d+>Safu6 zM~_!J>g0-qZECl4TEifs0_x&?!pNESum$3kn(hJ>){Yj|>+-QZM?&l;1Ool`^6ml` zudRAZt81mTEB^R+bS&UyF~#)_Z#l*W8`3b0rvzknw2O4)zes(7dq7l-U{uCg4Nv14 zYrrwQZ(PGU#I27UQ88)#=J>?=zwv*DD0Hp-jeH zIGr}KSu-o+b?c6+#r1|jvn8ZvYgp3q6L9do1}W>nKGJ8YMaTuY)UpNfUD-WFYP)H~ zc~Y$+KZob3RpAA^NDDWMcgl%?ja!hXwonzj1$9c-^cwxXE$Aa<&7_et0lI z>j)YV$3gaf2s3bc%Rzj?HsyI%mD#Ptn1 znOBTbWu?)<_D*Do`yuLcG-zXZQY)iW@%D99Xj#+c! zoT%Bp_AD@X_cpipwjTuRZ(i45JPW3Sj6t0$m5jCVqFyc=WsWOi%O1AU&<+u_2Smfh zMcuBhABRMb3$lz}#7_1EMKMA~XbV@t-Z#@3vSyk{`U^n)=a1qPMNW+2G%;rLcdD=w z&ep&Snp0CWR~0R}8ni+czI>!_2m2)~HgR3TX!{emKj4sd_#?VrK{4H4atR|l=wtYV z*e+54ai$atOerBc5|H7B`E71=z(brDVQ5tABZ&dbAlQ@|{woJ(Fit&goTW8EV*SWW zV-n}+@*zZU9#b?tOC>Hy4Wu|Yho5mGr-_u1L!Qt8M>5)Ae_YT_TbCkJ9#|Vw9904p1`uf%g{Q_Y@$22^N!#OSd=0Vx9|5dt BDMkPQ delta 95 zcmV-l0HFV#1fB$tm?+QLLV(NpnAESIe65l&x*--*7gY%r1`y#La=3j1PT#gHJ8@7B z>EV&U7bs&qu^%xT!un$M;y4U*dvqI99904p1`u+bxqM}tCa3SkayDB2WcjiG9|6=V BDY^gv diff --git a/discordit/src/main/java/JavaApplication.java b/discordit/src/main/java/JavaApplication.java index df359dfc..ca42b513 100644 --- a/discordit/src/main/java/JavaApplication.java +++ b/discordit/src/main/java/JavaApplication.java @@ -5,24 +5,51 @@ public class JavaApplication { public static void main(String[] args) { //JCFUserService 테스트 해보세요~~ + UserService userService = new JCFUserService(); //User객체 활용 - User user = new User("임혜민", "ellen@naver.com","010-1234-5678"); - UserService userService = new JCFUserService(); + User user1 = new User("임혜민", "ellen@gmail.com","010-1111-1111"); + User user2 = new User("홍길동", "david@gmail.com","010-2222-2222"); + + userService.addUser(user1); + userService.addUser(user2); + - //userService.addUser(user); + //유저 등록 확인 - boolean addFlag = userService.addUser(user); + boolean addFlag = userService.addUser(user1); if(addFlag) System.out.println("========== <<추가 완료>> =========="); else System.out.println("========== <<추가 실패>> =========="); - //userService.getAllUser(); - System.out.println("유저 목록 : "+ userService.getAllUser()); + boolean addFlag2 = userService.addUser(user2); + if(addFlag2) + System.out.println("========== <<추가 완료>> =========="); + else + System.out.println("========== <<추가 실패>> =========="); + + + + + + System.out.println(userService.getAllUser()); + + + //수정 및 조회 + userService.updateUser( + user1.getId(), + "임혜민수정", + "ELLEN@gmail.com", + "010-3333-3333" + ); + System.out.println("===== 수정된 유저(USER) 정보 ====="); + //게터함수 활용하기!! + System.out.println(userService.getUser(user1.getId())); + // diff --git a/discordit/src/main/java/entity/User.java b/discordit/src/main/java/entity/User.java index e1fd3a6e..727ada0a 100644 --- a/discordit/src/main/java/entity/User.java +++ b/discordit/src/main/java/entity/User.java @@ -3,8 +3,8 @@ import java.util.UUID; public class User { - private UUID id; - private Long createdAt; + private final UUID id; + private final Long createdAt; private Long updatedAt; //추가적으로 필요한 필드들 추가. 예시) 유저네임, @@ -51,22 +51,23 @@ public void getAllUser() { //TODO 업데이트 추가 - public void update(String displayName, String phoneNumber, String email){ + public void update(String displayName, String email, String phoneNumber){ this.displayName = displayName; - this.phoneNumber = phoneNumber; this.email = email; + this.phoneNumber = phoneNumber; this.updatedAt = System.currentTimeMillis(); } @Override public String toString() { - return "User{" + - "id=" + id + - ", createdAt=" + createdAt + - ", updatedAt=" + updatedAt + - ", displayName='" + displayName + '\'' + - ", email='" + email + '\'' + - ", phoneNumber='" + phoneNumber + '\'' + - '}'; + return + "--------------- <> ---------------\n"+ + "createdAt : " + createdAt +"\n"+ + "updatedAt : " + updatedAt +"\n"+ + "id : " + id + "\n"+ + "name : " + displayName + "\n"+ + "email : " + email + '\n' + + "phoneNumber : " + phoneNumber + '\n' + ; } } diff --git a/discordit/src/main/java/service/UserService.java b/discordit/src/main/java/service/UserService.java index 7ec45feb..617d7ea9 100644 --- a/discordit/src/main/java/service/UserService.java +++ b/discordit/src/main/java/service/UserService.java @@ -3,23 +3,24 @@ import entity.User; import java.util.List; +import java.util.UUID; public interface UserService { //생성 boolean addUser(User user); //조회 - User getUser(String displayName); - + User getUser(UUID id); //전체조회 List getAllUser(); //수정 - User updateUser(String displayName, String email, String phoneNumber); + + User updateUser(UUID id, String displayName, String email, String phoneNumber); //삭제 //전체목록 검색 -> User객체 가져오기 -> 가져온 User 객체 안에서 id 조회 -> 리스트에서 검색 후 삭제 //삭제가 되었는지 체크하는 것이 중요 - boolean deleteUser(String displayName); + void deleteUser(UUID id); } diff --git a/discordit/src/main/java/service/jcf/JCFUserService.java b/discordit/src/main/java/service/jcf/JCFUserService.java index ca78efc0..62eac382 100644 --- a/discordit/src/main/java/service/jcf/JCFUserService.java +++ b/discordit/src/main/java/service/jcf/JCFUserService.java @@ -8,46 +8,53 @@ public class JCFUserService implements UserService { - private final Map data = new HashMap<>(); + private final Map data ; - //생성자에서 초기화하세요 - /* + //생성자에서 초기화 public JCFUserService(){ - this.data = new ArrayList<>(); - this.data = new - }*/ + this.data = new HashMap<>(); + } @Override public boolean addUser(User user) { - boolean guess = true; - data.put(user.getId(), user); - + //boolean guess = true; + boolean flag = data.containsKey(user.getId()); + if(flag){ + System.out.println("이미 존재하는 유저입니다!"); + return false; + } + data.put(user.getId(),user); + return true; - return guess; //boolean flag = data.add(user); //if(flag){ return user;} //else throw new Exception(); <<이런 방법도 있다 라고 참고만! } @Override - public User getUser(String displayName) { - return null; + public User getUser(UUID id) { + return data.get(id); } @Override public List getAllUser() { - return data; - + return new ArrayList<>(data.values()); } + @Override - public User updateUser(String displayName, String email, String phoneNumber) { - return null; + public User updateUser(UUID id, String displayName, String email, String phoneNumber) { + User user = data.get(id); + if(user!=null){ + user.update(displayName,email,phoneNumber); + } + return user; } @Override - public boolean deleteUser(String displayName) { - return false; + public void deleteUser(UUID id) { + User user = data.remove(id); + System.out.println("유저 정보가 삭제되었습니다."); } } From 7b91970b115adb96673b3d3692fb6f5ab5a5ac8f Mon Sep 17 00:00:00 2001 From: apple Date: Tue, 13 Jan 2026 19:08:36 +0900 Subject: [PATCH 04/12] 2026-01-13TUE --- .../executionHistory/executionHistory.bin | Bin 28039 -> 37006 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 20247 -> 20297 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../9.0.0/fileHashes/resourceHashesCache.bin | Bin 20503 -> 22645 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes discordit/.gradle/file-system.probe | Bin 8 -> 8 bytes .../classes/java/main/JavaApplication.class | Bin 1742 -> 4911 bytes .../main/entity/Channel$ChannelType.class | Bin 0 -> 1117 bytes .../classes/java/main/entity/Channel.class | Bin 351 -> 2437 bytes .../build/classes/java/main/entity/User.class | Bin 2376 -> 2346 bytes .../java/main/service/ChannelService.class | Bin 117 -> 625 bytes .../java/main/service/UserService.class | Bin 450 -> 491 bytes .../main/service/jcf/JCFChannelService.class | Bin 300 -> 3694 bytes .../main/service/jcf/JCFUserService.class | Bin 2152 -> 3568 bytes .../reports/problems/problems-report.html | 2 +- .../Channel$ChannelType.class.uniqueId3 | Bin 0 -> 1117 bytes .../stash-dir/Channel.class.uniqueId4 | Bin 0 -> 2392 bytes .../stash-dir/ChannelService.class.uniqueId0 | Bin 0 -> 625 bytes .../JCFChannelService.class.uniqueId2 | Bin 0 -> 3694 bytes .../stash-dir/JavaApplication.class.uniqueId0 | Bin 2289 -> 0 bytes .../stash-dir/JavaApplication.class.uniqueId1 | Bin 0 -> 4841 bytes .../compileJava/previous-compilation-data.bin | Bin 542 -> 612 bytes discordit/src/main/java/JavaApplication.java | 113 ++++++++++++++---- discordit/src/main/java/entity/Channel.java | 61 ++++++++++ discordit/src/main/java/entity/User.java | 4 +- .../src/main/java/service/ChannelService.java | 21 ++++ .../src/main/java/service/UserService.java | 4 +- .../java/service/jcf/JCFChannelService.java | 48 +++++++- .../main/java/service/jcf/JCFUserService.java | 47 ++++++-- 30 files changed, 264 insertions(+), 36 deletions(-) create mode 100644 discordit/build/classes/java/main/entity/Channel$ChannelType.class create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId3 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId4 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/ChannelService.class.uniqueId0 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFChannelService.class.uniqueId2 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId1 diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin index ca48e43f24e3cc9440c27e9f3ddfc5503500b94b..88d84ea3ecca989f4121848d9ff47af2d53859b8 100644 GIT binary patch delta 1258 zcmZp_&Dgh)X@ZC*GXog-iZC$nb3@oM@(c`u84z}EJCL0TWLs`DydyqYQbLQV?!#tR z38zqRW1vg|5J!OU?9$xwl1iiebYs($l8oGxq^hjUbfdJYB-2CzznSu-*_Pif_Q^Qk z{q6784|^uh3e6Sj67e~9?B_M_=b~PkPYyRLGESZRF;rx-Zdj7Qp{X?~k8>hfLVwj| z9N5P3e)9Y<+0DmO7cdH`6!KQOF)v^@ec!kE&a}rij0+|+hRaW$k^W97JTw0K%b7cF z1%x%YuD-_*z&LYqPKLzf4H<3%YpY)Uss5uOeef>N{66ORg_GGb`z4m|Y}jR6>EIx~ zwYz)XOX2++dR}haZTwSU^4d&uZHHdZ*(_~gAs_$keqZ69zG)p;a+MG>gTV3E{|*T( zb)9zQ^pWEldga$9^Jhs)l!ksaGx2_-`?-CpOO5^NDVxFSA4^Pj$WoM$Jk-GG=$GRo z_T=MPTN^!}EnvxG%#$m!nzc7?)vw$%gUeliU)Y(MMQ+n~f+hb+18q{Xd(k@KZDq!S zR~fsGa>#FO2^GbLQjpVLgs9?k2=VhdHS-^%U-ETD+LZ+)w=$^q;wD1&J8RqjKHLj z3Q8AKfw&ihXJ;6fn51PD78n<0Yz8Kl`q){{ z8Hss$sW~c8I;657RWCUwvACE)KrH$~zUqQl$v58dS9-Ry9&Btrv2C~UT@J=RsA8DH zdk3Z!mC7{*F~&UlD_ybBwF#`SRhUqUdo`QSW`@P$rQg-PrloS~OaQ02b%uf_myEhz zOgbHNsg=2UZwJ`0^=jZ0=d<?t-YCF?8oZ;&yIa~ZpgkiEuiD_gCARV8-D;L$2*4(E?kl- z`&@{LD_Uq$!%}c^^g6Mr;CF5D?b(mQZwkziVm}U6{~DAWE$cS+O|7!wnEt`}?8gUx z!hk~83q5(&JPjAkP!@kOp}}e=I62DQ}^)A?hsAv0zg{N7)WRWu_6cy ztZwyqCG^cJA@Zy8Y*XoNcfmR?F`NcU0s&h;kU-P1?s3qL>)-vCur5CpBFqxw1=VpB zsInf2h1)T;JpD3hI={@zuNWq5(t<|fCQQ)65i{Iz8npF^eh1lS@WjFD9Lixzx&By%%b12SkUkKBf+@6PpTt*B0NN{V4pVzzivNu#R~K zplAaHDdTHQEt~npeyraA?AV9rhU{z80)U1CV|t!JFi<5B@O}UiXukE?`gWqc;>q3b z``V}euUuw;>MW*0OdU7*wwC#I_2@7C>vUHmOj4u=s%0X`3ShjY00}fpuKpH3mXy$E z_pIviml+y@MPMC=UtI!gU|`)cS<-KXLf!1&O$^^dCqC2N+wkK6E6i9>S_1;UyvYy! l%qH*j%hzL2lFAXf5?cl?!}?W_l(_BTQlvcv*uJpi0C=AZxo delta 740 zcmX>(k8%1u#tkMCg37b?c(=ZZ3QA-E125Cfu@cVAjFB4^e~521I3Tjw(c=$OeaNRD zJGtkqY`e4O{XcEP;+YH#jI%e+a-0Ft#I6UV^^AdpCJ-xvut1xbjMh?_w3D;fm_GQt z!bTLNV`0+ME}$d`OaNju9TnR%7CgSOJ^aUxC3cLdp(jO+J3pPr+ zEoPYVYp1AbO~ZQDPhc%V>&1a8fq=;eNT69FsOKtvnQOzYE9>XY|H)Q*9_*}2rTbtF z3=C$NI%dqQN%z}$L+IMBWny2xW|tlSTT;Pz6QYH+5>v~jPun=H8kJ_vy`)AAQ#WxlnU96T5Hg=YiAw&_U2d1&tKDry-N~n*y z;2S+%DOfH7tYdcZHHZ$jbC^0Z#aovj)BE`P?sL!Ek27j`p>~)6Rf6K1@ern#`PW72 z)$N{}TwL=YMRT!71yqX#P$dv>WB>`YAe}ec;l06=D?jX7H_o@QasnC-jOiTZi(JD^~t+O3}C?Q2LM3A1-1YH literal 17 VcmZQ>Zi(JD^~t+O3}C>x1^_`E1`+@O diff --git a/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin b/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin index 6817128cb178d106e92ed04230ea329225b0170f..7ff30b99e705864cd867382c9fd0b980e9dcbf13 100644 GIT binary patch delta 3643 zcmZve2{=@11AvFgPR71#6u-f>HH3;R$yUGFm_btaW+zwK!^~t!)^bWzQnsuiT`F7A zb}i|;(&B*LO~B zsR>d*{cqb_vBxqLvlXM zvrUU!jyfKLeCjk1E|10J(i-~e)7@o2*;N9_;J^!85B9{PH(5hv9-xE+FFV+T-HRL3 zgkUAmBJXEe*_8SIgd4^jgk%kPtg4u{7EM-gA;<}4Ft6s>O4~=dbPeRh1wcgsi>aF= z@($1}qd`cy2pB7v;@W1(`l`m=??C8c3m5L%kIY{m->U&~avI>RfWJ7`CvYtVyTQDV1mLWZ)d9@I=xY|I-&@I|vB{aN&=LG-3Pk z`A?8+2vjQ&FwY8wdX6+ReV}X)z~*F!HHv?d6Et#$pf4b%Xo`736E8Yi?rIBVJpgk> zEM_z|>7!y|!%+yv0WOMI+^gk1i)luzDG-vz;RBemWA8A^dLs>TaxW09=!f~#wVS0J zz$X9|SU`^=)^e%*xOr&T#4HGjHE?0sbCB5=)yEIUX2>;pN`0p{vYTtp`y9C`zF)L^b{?99dsCO!r^sSW13GLJ@zoj(FWN~bXTV@aYn z`a=exv08v>&RH0Gd!l!FjUNXgc@ExjD{H_#YvO`CBufE&$_(7D58n(bx+TRx=nA{5 zR{v>C_79MR=8a?m#3}n>$X4|lwI~1H2g)upz=$#yN2&7MoZh>|1S;U+gbQ=u7wz{_ z(A6i&0BnxzX`-S=&P$$zWEWUIu<4Ghg$R%ga+)|Groy26Z*T{8ohBVjqHRZq*5 zKtBn}#Edn*>>)fiBUb@(vOmm2+s+?4)mM@Va!NGJk81cdO&NX)f;xOKKQ{U2#F%Ef z8FV93M&U0auvgqrQH)2>4w`G6eEi(5+tNiKrrG{qnh7CunU%>%_asG zc@^D2?%D+8t6%7W{5NaoFuNTw+`D6)vHMy7qSIiRPRG4| z@7RPdhmnTE)0^`-`1DL09}0b0V}Bj@3apDzo>Uq|>kB3=rAP6*Esb%Pnso-%-)rz~ z-mPJRE5o+(C5nJFWQ_|iHJ@PqY#wGEULj-ESc3veb>tM_Kso)5YCL<-?&x zzOo20wcx&h0@IP8ZAfFtV?X~y@dfKHuOZ^NPtOk;6C=*oqlUH=t<8{w$)N(#0urEJf) zxL30Gkw%1@%-Q;DamitXrPkQQ&p9X*eeFn~NazjgFOg4%)Jdi8A_44q3uI*RszQ5e zAB~D{J#dKOIK)O8PNgE^-coVT!!9@XS~v2pAPv!8VY3H}>pG!y8o$@ERvqqB5}p$1 zK%xhdBw_klF=j4I)WZoqvjzZUuD0Rx7}$ie0=w0PP=uyNDr zVw=ZRkw{~vYmmRFMKbJNrBuz1Qa{s8UYn)#iU~BT8?JHH; z(4G)X8$}wcBlGnMMke%a;et+9$z@x)ldvvwW|x48*H?5JeZE4Y#A%#?GzQD}*iYuP zDwO4~Xvt@_a34wQ8e4d6ah)bIuQe<-zt6Z-NsDJZolxzy)juP{d~=Uu>ZfMKYqpoRpY$aC;0!krzr}Z~%J}jhGY-m~ zbBOyv!?Y+`S8!^3<2iHN^SMKpzZ;y(0^Su<$_3^RrVejIl@wYTUd+?_uE0hzv-o*^ zO~X7s#BTa)(rh!*NR{6E@ZpzdPH$u!wI(|f)R0E|x!A+3Ah!)JOYwep8w6)i-iV1* z4;72vgT5kQJd;`UB8RmT8L?q@mr7A1BR%l_3uhc(g(3}O2ZGmB@BS;KZba?P^;%2+9KuiGC<%Rbht!O{dFCmyGq1*9RH9I{Zdi^X(R%y!&) z3ak=Lgr{`rw66=rg%1p50@l{BMk+?Z+P9KGSbm2IR+oiCZBQ^;Ptm` zhlZeY6D=!Hn`~6rsC(@?G9vVnFF!?O_Bmhv!l%^Upgg1zjLBQE+40mb=9k|;|6Vrs z8EJeo8>~2tey2m2jKf;1M_tN9Do-l-ynKAf)=@kJUR_zGeLe1Bb8%EIo? KnC^(+8vg)W#_0_1)+G*X)00vAR04dr7r~m)} literal 17 UcmZQ>_0_1)+G*X)00xX!04d4?nE(I) diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe index 840fae2ae27dde3aa42706d39323e0c88f6ab085..95ba0871443005a57e93376f229f1863dd2ad977 100644 GIT binary patch literal 8 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 literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/entity/Channel.class b/discordit/build/classes/java/main/entity/Channel.class index 1eb93ba5c4e8af5c045723382007bec015d6511a..269702ab2688718f9184db22904848c71aee9cac 100644 GIT binary patch literal 2437 zcma)7>r&fB6#mxO2!sg4!AYEOakvEx#ckRqZJf{~rVxmMw%pp%Oh?#T5XcfEt(oCL zI@6zdgmxOHOn&qM`YP=+bb59rWZ9TZJtLjn)wz78ZH9zZB@nGvItGx@aMQpo+-?H7 zaq0_RW4KhY;V%~zT72~Od0n*g)j}3f+ zPZ@62%p+cMor)=TEO9_9Uzm=dq8-Ma$r=@7&Rh4P=a|NoCv5;Vin4inOhp+iH?v_p zWQF`%WY`IjMQnQ?vj2^AdYd6xa;p@-uWUJdtzO&X-ln-{t2Vh6)7~~cOYXzNq&Sf5 z>Tf|y2=B*hcXcHwVrrj@Wn#KPvee*JbYU9I3UszEC`A;OCUGteT->ran*zOs28|ec z171c~txLE8M!K~dZr!W!MN1}agc@`5>Qax^xGz?@tctIp%y8%GE>TrpxUTSpXCAL| zao|?{zD}&`_zGWZ_(qa%gJHZeV=U*yJ>rD`N5IELvm#vYl;M|nHABU~=}Ve1HuuNN zu6tBJj?>_B(VGkvlPGzP-GRi#Dvliw?iCMx~domYG6#4-&M;k~H3wq=BX+%_=1y;t|Pi5U=qWy+5bj8+4El zU^f2;SpFQ^8G1?FI7jvjBhhLspG}@&GM`PIA^)55_L$zo(CB>=NgDV)xQz_57@<)< zfxDQ&Ad2*LKJbqx^fxAdvkEU$D~VWUF)K$hA(1PII;mC?cS@n15791>lv*i?wgE%_ zIZ7}|3NAzD0;MQqN;#DwQ*v;VHp3S%LZ=0i>RbLTdVeLQ1Y~ZV>Tpy!l&aD=$bsP* zp3{k}U)*@4)p)Y4@r$;`W39&dw#Fqaw23^~YCPB0_{+A&`BvixZH*VHlR?fuQh8+; zGWi+FiCLmVgD8!zq*WUqQrR9sC&CR-!5ZDkMBT|m-N{7VS&EP@DGC5X)SVG}#$=by z@d1fRdh+k^0BFtNX)J@GFi;XN33CF=SRt9DTwY<7R$a7Oqh}M_v`dr5E4o`d&$9Ry J-{S{l{{xto7v delta 158 zcmZn_zR$#U>ff$?3=9mm45Aac^qJWiI3~7fPBvte=V4^vEG@}I6 zMJk&?k%66o38hv`T2hR%ULl(t?!4lGM=R)S}IMnE4s`@}fcPHw&h|-n=DNVe@YmUlss_-x47J delta 74 zcmZ1_bV6vuR%Uj#(t?!4lGM!ynE4qECg`F91sj{t;?$xy3#Pu_yhXvzP61U~ck^8q GUlsstiWX)7 diff --git a/discordit/build/classes/java/main/service/ChannelService.class b/discordit/build/classes/java/main/service/ChannelService.class index ac025dcacf0e81aae239160a15dc5116f5d4ac52..43a26bb630ae2d6b1a4e3bef54fe51bc25288ab2 100644 GIT binary patch literal 625 zcmbVKO;5r=5Pge6<)et8C>{+5xY!?n8V!bogv7*(_mxiSl1(M;mW03N!5`p{GEPfH z6ufxZ$-bHQW_I4bf4sf{xJ1iBPM{f4I9C&L`p+^5NW06cgbe^8)2eII*lC yAh5%q1IV-ec@&U*0}Fd;ETY8uGG}wBFm9uo;`^wj*g<;M(cqX=9-@hp>((c%)Ug%- delta 44 vcmey!Qp$De->!WO3=Fmm>=U_6C$C~u5MyIxU}Rthih%$l11peZVqgOR1Ox|G diff --git a/discordit/build/classes/java/main/service/UserService.class b/discordit/build/classes/java/main/service/UserService.class index 13550874e75c7772e701583e2c58a57c4663b1f7..31ef89ff2fdc59e18abf8e7988a3df17d5068e15 100644 GIT binary patch delta 31 ncmX@a{F-@!E0e3nWOhcC$&!pp6C=7AJtsc#U<{jV$=C@1nwAN! delta 40 wcmaFOe2961tDt~}PikICW=W-fXmM(hwPw`B?q0^w$&!p76YKaVr!cky03enP*Z=?k diff --git a/discordit/build/classes/java/main/service/jcf/JCFChannelService.class b/discordit/build/classes/java/main/service/jcf/JCFChannelService.class index 8b5f8c1e7b4b186b16b6216c60ab94edc816ecd8..3d1ed65ec00f989e53f946d787e54b62d5fddc87 100644 GIT binary patch literal 3694 zcmcIm`EwN27XEH#l1`e=!T^yG2!jU9goFVVpO1kkghZkfKm)Rq9VxY5AWd{s*sKy>oBh%=9dU{vuUOW^SMRo$q|-yQl9j z|GV@(fIawBM;$^M!UpQmz|eMr&+>%Loyo+Z@e^j+V`$iIIhNPQ5bBDLYG`CwDT4~0 zWhV~s{M0bd>d+8s!U`A~nhms|m0?5P%*|S9GjSq4k+{8ouz!j>j%knhs|?``_c%jq zs)R;J$rV_Mh=x@LR$~oAbJ(R3D;=2)<7pVGh9_7RF;jQkvnt4+)Ga}Y*J~Y$TcwI$2DBXuu)=3E<+^1 zB)3OAN;&XQ+RO?u8WCr>Zt3j{i(h^hTYB%p()rJSd-d$%Gq1#!zCO8l^339ArDYp;!UsJJYigBA-QUL0VmhAX%_USnb@XDp*tLT))!0=-u2He)1_L)@ zCqwF1H`LYF4|K?x<-=N7r0=1(05pc1DN*dUWJp@G= z8Mf4bs)%_iKAJ2a#W4C7$gSsa?;kY-GQIdp{eq-knBs+ zpy+oqw6!&5Ip)E_%($65!pCh|iKN^#w?}!-62H}A*qgG5=*HACoto2EHOMw+Oxr9D1v(a0!0}O9wfW3=hIf`c(7Byq zvx*HKgG#b-(pw*K3%Rs8XbBg#SG|h2iRng)?Q>l(@8x)Q*z~5{Oun@Nr*%Aw=QKQT z;02r^{Y&o~%b9hj%|uEPqaA#Lr#&|}M}40O{`xgYQf=}R9ND_aSXU?fBMQk}hXAH&=UHNkTHqYnHyoUD}t}a(9IJd|-fhnfpLvnbPWVNiL z;bVr5D~Hlc!S@+9QS<8P#Wq3zBjTz`f2Zi8R|ku3v2-Cp1AU&Lm0bwYH=wP10j&En zw6O&=eGC0-89hy(A`&oQ%TF1L894Nd!9`Z#{ERR~0z=&wpkG8A!$q_+^jyMv(AQWU zZVImnzk%k<*fJLBT0r*?m(e@c)4PDgu6nU4T0f8LqxBbYQwYbR^OXy8HQB=I5S;ZfmYtw7&Ggs}~?_&X8aNk|W2 zj^y|UJ*Ptdi*6d<_$U6Q%GyUe#oiXdaO*|vs>6@y72N71H(#9fl0&;6S>(`yf8#%d z!|*U3p=Uzwq>_8(W%P{|rCPwPm5>_)daqQFeg_{VzyUm_2%aIpdIFA>5!@AyhJQkH zG~ClWkN#-*D^`-TUB+Kap6I0VH!ApD|?F(qRwwM2*)mf|%E z@j5iR(l9)ZlZsu2$_^2`4#jRz$~XKChI+okp-VUl%ww$NwH6tjAjfXU2JDcWVm?BV zQ-|Wzf;O4Iu1yzHN@d(b8AZdIw$9`J?s<%VPCtUZiUfMqB#WW|G)XABeBwzN{}i64 kzY*H`46VJ0m+&fHrxb7F9ku>0mHPgzQG9@p@Cl;-2eLZY;{X5v delta 113 zcmaDSvxbT5)W2Q(7#J9A83ZPBnM_PkoE*yO+p5eQis*nlJ_ wkf#skGcd4fZD(NI2ozvq-~y5$X$A&n25un917@=VX*xA`P-rZOYiU|8Qi`b9f*OLMeO-137@3_}cV|iZ{<19l z{c={L90QSas-OCy(|-c}2c1suy)(!ROV%%O4!d{m-21%G`@GM6_x|?Rjh_JQ z!B;9uP^zFzLkQ&z;nRGK$4zbx$Bzu2)>95cd7EJwPCG+sQ>1;aAAsNfi8{1DHN zbn~nV1*Mg!f~KHaLk(&f*5>uxn32-sr&B}m!yO0u=(*ROVkk>V(0Jj0r%m~Ur?ZJI>Yuq^^ujWr6Q8rEVR!-@rfg++vucXB$< zFsuvUxU=zI`7#k9fi`HU!$zX(=y{Ujt|m9C)Q6TC)^Ng4WT;?C8u6n!J#D18qZ6S9 z+@|1m4UO2uuzG<|AR0pjx5m4K(R4=00IKBQ(l8+;Zql24oB#4*z*kaT2E#Jgngn z;Wk&$U=BnvD>5=IVUNc&JPzs=HB_wqMm}ru@gAPh>2S~cBnW>LDGh1Rf^z*#fty4v zVCi{l&>HQ{m~fV93zvcdI9}&-nj1 z6ASR9vz+#887YRK1F2`YVbapMf>KVo(PNFV>ij3}NgwO&2EEA;cLZi5lkZAS)#%+XB2qX}XHy7w7$7W@7!s zD6N~idx*(KMZjW7*yNePG;j2Z*SL-0wx!DFcTkLUReSA1E~OtZglm=ue>=B|4n)xV zY}?5@IiBs-oe?{ouPw*xDlXs+1#fD23vW}bg&zpR8nZ|BcvAAA9ejwV96L8o#m)Gi ze)rS!Hn{-~aVu@=`NpJej~252UR!Lrz{ca_S>3<XUQG3W8+%$U)`t1!v zCsp24>0a`_hL>?Jj1Nh;^>nW1Hm`&Zwzzcbl+yfZfU;x}^>muBC&tcUlT#0CyG zUxPZ0FvB!fkw`bN9yF{k!OpUkWuKsW2Ac;WO;c$8c?PWmEn8Zr5Z@gVyP}~<+!YN? zV`nK&L_^(b1kMuoae7bM{E24jy?7E&d3o)lonmi|VAwK^-6i-1t%6&L znC;(Np|%vLJ_+fgk}7auqrx`7jX|o6nraNCh=(VBnH2x2YsxANk delta 1139 zcmZ8gSx*yD6#i~I)53IG+Om{Fkya4OE{h8kP!<&g+zW!BR;UDnK%kJ2m|%P&k{HR2 zTS8(Vd@`7zECx)BPd@lBd^5HtJosW_jOWgjMIYwOnR}M+JKwppo&C+OeEGBW5kLdN zi^`)x1r9jPNL7)BbOuX!EHVOlU2FJ%Dp^>qvj_@r1A!S;Vk%I$fOK10pFI=xJR<^ zGGnr@njv+MNz>$HXtr}?Dk6FuQE?Q<7T5C?1y!h3A)}7>7!Nocs8>miMh4UL#84;_ z=3R#R7Ey9iMUy}>O@{A|&xDiE!cZ7ripHb&z47Ri*y`H%74jauiAR@WkDte%&Bq_E z#}?*e3$Mz}IK`9X)oQ!HbDyMvqCN&`S`*j$Pk@eZkA{XBSRd~b>J+0 zsgwu$?m#EK8M<(eY#aFtlr8ehir1i&Y{0&W3z zQ-KizEQ`Q_3<7l#xw%X_aKnRal#mt3UcGw)nQ(9(7YN&iTwKH@n&L8L(Hy_wAxUrr z!348riWw+o)6h3jZonrvR_Mf_L5tZz*GZsc=$Ui7FgA3fhY}dBqL+eV)BsTtC5{iM z>J?2lQN!>a$N%qHyiYSnqNT2QA2qm!ezKzBQ_@(B@7-ZIr%|kv-STIsZn?C~Eo~s+ zmIZ*Wmy=3Bw>kxt^cz;uuTrCdHR_Fa`Fj)msW}F4T^rAf8{~;)d2y3GNn5XwQ`SUG z!aY(k$4onC2;ml4!E%6#MUgAP@`OgROKi89w)>Vsx}f^SsioD_k)VNn>vQe$awT}# OkgP3IT+BhO!_Z&-NxvHa diff --git a/discordit/build/reports/problems/problems-report.html b/discordit/build/reports/problems/problems-report.html index d529c4e5..e3e0b2f2 100644 --- a/discordit/build/reports/problems/problems-report.html +++ b/discordit/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId3 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId3 new file mode 100644 index 0000000000000000000000000000000000000000..4c887c4b463a8a7fd40f8bc13186c32d8ba2fa06 GIT binary patch literal 1117 zcmaJ|G3bg_#9CwP7;N zmMwnXk6L!0(#0A#Xu{3C&pG$?{QCXvCxF*@CBny$(kHqv)d;IwHt02T}!h^1HuVerA5~*bxd~$c@L3qsx+;K-6Dh3 z=#K^+eb3-i$ga@x{9crIUmx0U`$JpAHXZS{#t2;}aSoiD>D1SZN2TRW+H`^xEtHd7 zs{mP2AP`G&)zM3U{0vqJ_k_F^viv8FA$>*U8qv?>F+8RJpz|gYegV&1{5E_}REo3Q z74BVwalG#qK1&gKf`Wpa^G=E(6tB1mfj&UYt)(xK{Ng-&%iYjLtnt?I+`+8JB(5O0 z5e0sV0&{^MV8_B3LgUy!hS<2yRt literal 0 HcmV?d00001 diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId4 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId4 new file mode 100644 index 0000000000000000000000000000000000000000..b0f77f5390e2e2d81b6a785d7eb84128de858e3f GIT binary patch literal 2392 zcmaJ?ZBrXn6n-uwSqR%g18EytFs&(tZ6#W@)uv$EAe0(F<;|In<1EP)7B;(?-5X~3 zA

8@h9k5My4P90sSlb8ywHQd&zEMXl8cLeK{}BIp^7vxBtHR3%~-t%VGe722v){ z$S{l@+Q)X;wY~lF#@->X3x>=S$8*FY!{F@P&M<~BY#?i51SZ2}?g>Ynl&c4}=W&-| zz-f?^n)1>Xj$7W|UR|nWaT%iq#!Os6t}DpqNho-e;Yz(71mtYXY4SD4b)8Vfdzr-q z@&>M&xQ6Q#FNRn1y?qAb*mm1|<41<^*_U%sT!mg^VYnV}Tkys+N=XCk zR-88Ro>FYL8j+$jzh&Y!-e(x8M=7q`P0o-@MA{UAqhsAMF{6|lJgf&!OE|ul#VqCw zSTciq-MK46hMC!fx2WosWGXs9jvDrXiFuS6t~Ko=UiH1YEp{DoK&w#Lo}i)~CY`Aw zB%Jr|wdaJ!g(rOg#YNdVX;D#b*1FkH(yWlT6^31nET%;wZZERl{l&O;7*bWgLGedx zj>p&A%{?A$*?X>PlV7*p9XoL3ULU5!fn?WM4_ZQaH(9%PMojN>u}VzO&FZ?uNimpo zS&hlo(TV96>1?0#jCd_gk_4MLcdU#wmPl_Y<`%=Hh^(FOZ%Fu&GDCLLZwGb0?8r)( zT4P>*K-9Q(9*Q+COBEVeVVJzQbyTY7zAr)%*sV1#4*W(qngM;8U!i7TO)_$wp%j0a zj(6-I@p6PCBI&YS7k+TU@N=@nS}}6^!uA?24@))QKWeus32x}@6DM7Uie8CJt^O); z)aRqpE~>WcZaRWjhVV6m{YsbVpI?9a`;XV(7qgwAQ7jf87g@G58}#03&_e&@eLZfX z(oYNmwWm(3(xeQkt{sM)XgH!H$}9|QG2HoIA^X+G0P%kM-KsRYqhjI~4YC0m9~pYn z+@{rl9EwWP%u|x4oRT!al>87MksJo2KZXbN{+M>ZV32$Omh~r?b?+30b%sl47(Yd! zvzoFBsZ$iKLi!Y?-<7XV=sgXC-dB;LIXH~#7)Jq9n51YoFh>|ZrQ5~GJ09W@?I?~y z%hXEZl{r{)N)rybl9*F!B~hmp*3UH76_QdbEwRQhrC#F)eT|>tybC{2d1V*!k}XB+K2ahjO5By4YU4wy`6Fb> zc!FvkcPHQJPQKHfe5X6lJ4ja)1%N5)PJtdNjWgUOQKYBz2KRy93>Fd@OzA)=R8?=6 l@FmF{+5xY!?n8V!bogv7*(_mxiSl1(M;mW03N!5`p{GEPfH z6ufxZ$-bHQW_I4bf4sf{xJ1iBPM{f4I9C&L`p+^5NW06cgbe^8)2eII*lC yAh5%q1IV-ec@&U*0}Fd;ETY8uGG}wBFm9uo;`^wj*g<;M(cqX=9-@hp>((c%)Ug%- literal 0 HcmV?d00001 diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFChannelService.class.uniqueId2 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFChannelService.class.uniqueId2 new file mode 100644 index 0000000000000000000000000000000000000000..3d1ed65ec00f989e53f946d787e54b62d5fddc87 GIT binary patch literal 3694 zcmcIm`EwN27XEH#l1`e=!T^yG2!jU9goFVVpO1kkghZkfKm)Rq9VxY5AWd{s*sKy>oBh%=9dU{vuUOW^SMRo$q|-yQl9j z|GV@(fIawBM;$^M!UpQmz|eMr&+>%Loyo+Z@e^j+V`$iIIhNPQ5bBDLYG`CwDT4~0 zWhV~s{M0bd>d+8s!U`A~nhms|m0?5P%*|S9GjSq4k+{8ouz!j>j%knhs|?``_c%jq zs)R;J$rV_Mh=x@LR$~oAbJ(R3D;=2)<7pVGh9_7RF;jQkvnt4+)Ga}Y*J~Y$TcwI$2DBXuu)=3E<+^1 zB)3OAN;&XQ+RO?u8WCr>Zt3j{i(h^hTYB%p()rJSd-d$%Gq1#!zCO8l^339ArDYp;!UsJJYigBA-QUL0VmhAX%_USnb@XDp*tLT))!0=-u2He)1_L)@ zCqwF1H`LYF4|K?x<-=N7r0=1(05pc1DN*dUWJp@G= z8Mf4bs)%_iKAJ2a#W4C7$gSsa?;kY-GQIdp{eq-knBs+ zpy+oqw6!&5Ip)E_%($65!pCh|iKN^#w?}!-62H}A*qgG5=*HACoto2EHOMw+Oxr9D1v(a0!0}O9wfW3=hIf`c(7Byq zvx*HKgG#b-(pw*K3%Rs8XbBg#SG|h2iRng)?Q>l(@8x)Q*z~5{Oun@Nr*%Aw=QKQT z;02r^{Y&o~%b9hj%|uEPqaA#Lr#&|}M}40O{`xgYQf=}R9ND_aSXU?fBMQk}hXAH&=UHNkTHqYnHyoUD}t}a(9IJd|-fhnfpLvnbPWVNiL z;bVr5D~Hlc!S@+9QS<8P#Wq3zBjTz`f2Zi8R|ku3v2-Cp1AU&Lm0bwYH=wP10j&En zw6O&=eGC0-89hy(A`&oQ%TF1L894Nd!9`Z#{ERR~0z=&wpkG8A!$q_+^jyMv(AQWU zZVImnzk%k<*fJLBT0r*?m(e@c)4PDgu6nU4T0f8LqxBbYQwYbR^OXy8HQB=I5S;ZfmYtw7&Ggs}~?_&X8aNk|W2 zj^y|UJ*Ptdi*6d<_$U6Q%GyUe#oiXdaO*|vs>6@y72N71H(#9fl0&;6S>(`yf8#%d z!|*U3p=Uzwq>_8(W%P{|rCPwPm5>_)daqQFeg_{VzyUm_2%aIpdIFA>5!@AyhJQkH zG~ClWkN#-*D^`-TUB+Kap6I0VH!ApD|?F(qRwwM2*)mf|%E z@j5iR(l9)ZlZsu2$_^2`4#jRz$~XKChI+okp-VUl%ww$NwH6tjAjfXU2JDcWVm?BV zQ-|Wzf;O4Iu1yzHN@d(b8AZdIw$9`J?s<%VPCtUZiUfMqB#WW|G)XABeBwzN{}i64 kzY*H`46VJ0m+&fHrxb7F9ku>0mHPgzQG9@p@Cl;-2eLZY;{X5v literal 0 HcmV?d00001 diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 deleted file mode 100644 index 890b8dc037dc6428f5b302dcf7d883a2ba40092a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2289 zcma)8ZBrXn6n-uwYzSLuw?JQQQ>ATEUIJ~cw!B!NV8K8uX@aG`^pY%LVY3^P4T?HW z$KiuBwqs}185ps{jE?%j8DH9=&^rDAe@aRJfuo+gyTt@zrweoU-gD1A=RD6j_iXN!Z!_FB#$HO`|QsGOJGit(OsOr)T&FW#O42I$od<^?@YIaUb zsNtE!RCu_5Fh=XBBl1HM=4u#fRKwD&`LNjZVFyEX;m*S2#pR8kfA^t|p-$Cx)i|F@ zb4_ncm}wt&G3;pXXm9PH#~%FfW48#bp5bgT@?U6CE2|l)&S#N?;yyHz^T$iK9<8ly ze7@wvUUHt~b6T?4`F_{=NqSnvP=kYbPQoD>hY?`d{RDFnSO$qFlR`km1tUd(J3|xI zcpfiEXp(Uh$4ZEe&gU#OO?;YpqPM|8p_$>!1j-_4Do=O%5M(&sz4-*Xx(cgbKKkWG zps=*C@$Jo?p1|f_w;w0aETKh4E7~Yjo2XKQ6lzA8*A4PmhDt$G`~P|T?7PP|e=PAR z$T=zF6izevQ>xXg>kbV{Fy!FLTbdq@XgRA>M0ZAn_R<#DPJwlX;v&yyWt>ANgO{ug zB^gQ$#bQGjh?8#0+-4OOK3y!VeC5L{BpirD21bk1+3TkB6g{nC5E1vwxPSqQIG;&! zOLZcSxop@0+kT#o zCuT=@#)cu`I+b12%x4qopeC@^Z-LV$E-mG-&or%^mF1Zc)tWYwxwCypRaA3O0>fHH_G8sDH*nBI)u-V^u1ezmu+(kQk`hzS~HcYY0T(yAJ7 z;cb%8VfL|Y2)OqU($)K@jy#0_sv;}3%Fg>xM(kCCvPaoRtI_6`bsVU`cyp`!cGhP+ z4W1>`{)QvU@l}L=K#iD&Y3eGT@iutNE0ALII;cQb@nUn!DqdE)lpf{$I{LgA7gh$z zick`J>$q5fHAEg@40IqQuvS7~9YZ~hKKiRcBcW|VEm}~A(h$h^I zO0!Dx^B$&fBF-SHg^hgA)AoPnnVaq7OO!*uX65R6s}C_P{7E R28$vCeN`CQoX3aQ_b*`4WHJzWeSy=iGD7 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 OyEn;hcl-emov8)j~=fcGao}sR&p8( z5U{cd7+9QcwcM?B<=FD0g=)MkvnM8-)?aXs+N>q}XUpovHx?dUtd=hpEFQ`!$|f-X zx=6jc-E)(RYaXO%F7~L9aFk?d^-3&Dlw#;ED9Fi7PAtjH&l9-z(cS1)LVe5y-{|Q| z!EzDO!7`ytK<%00t;>(;eSCfQx##W288y7J&cdt$n?7yhw2l+ob$-3XS7|RFF*#ph zJ3)bK(=Hv){&nDysKRS5wnDp0^1%weoPulub2hAAz~`}l&y(cq_s%8W+Q}@$$SA=i zCe0uXq#4B+#DLV~S&T~cih4@H%DyUYs?KU&>iQb`%zPmK3bJW3v}OSv%)r3FD6gfb z9jc=*!Xl~(;tJ{N=>_Zi8t5~Fl>tTg4fTwIjYADYfx3WPX%jtDXB}2BTh>g^JlG;s x1u7+GsV4yzm$1^a_SF&8)BtIav(d8+wsSUMh3IFn*K-JVbXI|K*%^Uq7yv)%c1i#M diff --git a/discordit/src/main/java/JavaApplication.java b/discordit/src/main/java/JavaApplication.java index ca42b513..748ff7df 100644 --- a/discordit/src/main/java/JavaApplication.java +++ b/discordit/src/main/java/JavaApplication.java @@ -1,22 +1,30 @@ +import entity.Channel; import entity.User; +import entity.Message; + +import service.ChannelService; +import service.MessageService; import service.UserService; -import service.jcf.JCFUserService; -public class JavaApplication { - public static void main(String[] args) { - //JCFUserService 테스트 해보세요~~ - UserService userService = new JCFUserService(); +import service.jcf.JCFUserService; +import service.jcf.JCFChannelService; +import service.jcf.JCFMessageService; - //User객체 활용 - User user1 = new User("임혜민", "ellen@gmail.com","010-1111-1111"); - User user2 = new User("홍길동", "david@gmail.com","010-2222-2222"); +import java.util.List; +import java.util.UUID; - userService.addUser(user1); - userService.addUser(user2); +public class JavaApplication { + static void userCRUDTest(UserService userService) { + User user1 = userService.addUser("임혜민", "ellen@gmail.com","010-1111-1111"); + User user2 = userService.addUser("홍길동", "david@gmail.com","010-2222-2222"); - //유저 등록 확인 + //중복 확인 +// User user3 = userService.addUser("임혜민", "ellen@naver.com","010-4444-4444"); +// System.out.println(user3); + //유저 생성 CREATE + /* boolean addFlag = userService.addUser(user1); if(addFlag) System.out.println("========== <<추가 완료>> =========="); @@ -28,13 +36,22 @@ public static void main(String[] args) { System.out.println("========== <<추가 완료>> =========="); else System.out.println("========== <<추가 실패>> =========="); - - - - - +*/ + System.out.println("======= (CREATE)유저 생성 ======="); + System.out.println("유저 생성: " + user1.getId()); + System.out.println("유저 생성: " + user2.getId()); + + //유저 조회 READ, user2에 대한 정보를 조회한다. + User foundUser = userService.getUser(user2.getId()); + System.out.println("======= (READ)유저2 정보 조회 ======="); + System.out.println("유저 ID : "+ foundUser.getId()); + System.out.println("유저 정보: "+ user2); + + //유저 전체목록 조회 READ ALL + System.out.println("======= (READ)전체유저 조회 ======="); + List foundUsers = userService.getAllUser(); System.out.println(userService.getAllUser()); - + System.out.println("전체 유저수 : " + foundUsers.size() ); //수정 및 조회 userService.updateUser( @@ -43,17 +60,71 @@ public static void main(String[] args) { "ELLEN@gmail.com", "010-3333-3333" ); - System.out.println("===== 수정된 유저(USER) 정보 ====="); - - //게터함수 활용하기!! + System.out.println("======= (UPDATE)유저 수정 ======="); System.out.println(userService.getUser(user1.getId())); + //유저 삭제 DELETE + userService.deleteUser(user2.getId()); + List removeUser = userService.getAllUser(); + System.out.println("======= (REMAIN)남은 유저 ======="); + System.out.println(removeUser); + System.out.println("남은 유저수 : " + removeUser.size()); + + + } + + static void channelCRUDTest(ChannelService channelService){ + + //채널 생성 CREATE + //ChannelType.PUBLIC(채널의 공개여부) < foundChannels = channelService.getAllChannel(); + System.out.println(channelService.getAllChannel()); + System.out.println("전체 채널수 : " + foundChannels.size()); + + //채널 수정 UPDATE + Channel updatedChannel = channelService.updateChannel( + channel.getId(), + "공지방", + "이곳은 공지를 작성하는 방입니다." + ); + System.out.println("======= (UPDATE)채널 수정 ======="); + System.out.println(updatedChannel.getChannelName() +"\n"+ updatedChannel.getDescription()); + + //유저 삭제 DELETE + channelService.deleteChannel(channel.getId()); + List removeChannel = channelService.getAllChannel(); + System.out.println("======= (REMAIN)남은 채널 ======="); + System.out.println(removeChannel); + System.out.println("남은 채널수 : " + removeChannel.size()); - // + } + static void messageCRUDTest(MessageService messageService){ + } + public static void main(String[] args) { + // 서비스 초기화 + UserService userService = new JCFUserService(); + ChannelService channelService = new JCFChannelService(); + //MessageService messageService = new JCFMessageService(); + // 테스트 + userCRUDTest(userService); + channelCRUDTest(channelService); + //messageCRUDTest(messageService); } + } diff --git a/discordit/src/main/java/entity/Channel.java b/discordit/src/main/java/entity/Channel.java index f9adc6cd..b8967548 100644 --- a/discordit/src/main/java/entity/Channel.java +++ b/discordit/src/main/java/entity/Channel.java @@ -3,8 +3,69 @@ import java.util.UUID; public class Channel { + + public enum ChannelType { + PUBLIC, + PRIVATE + } + private UUID id; private Long createdAt; private Long updatedAt; + private String channelName; + private String description; + private ChannelType channelType; + + + + + public Channel(UUID id, Long createdAt, Long updatedAt, String channelName, String description) { + this.id = UUID.randomUUID(); + this.createdAt = System.currentTimeMillis(); + this.updatedAt = System.currentTimeMillis(); + this.channelName = channelName; + this.description = description; + } + + public Channel(String channelName, String description) { + } + + public UUID getId() { + return id; + } + + public Long getCreatedAt() { + return createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public String getChannelName() { + return channelName; + } + + public String getDescription() { + return description; + } + + public void updateChannel(String channelName, String description){ + this.channelName = channelName; + this.description = description; + this.updatedAt = System.currentTimeMillis(); + } + + @Override + public String toString() { + return + "[Channel정보] \n"+ + "createdAt : " + createdAt +"\n"+ + "updatedAt : " + updatedAt +"\n"+ + "id : " + id + "\n"+ + "channelName : " + channelName + "\n"+ + "description : " + description + '\n' + ; + } } diff --git a/discordit/src/main/java/entity/User.java b/discordit/src/main/java/entity/User.java index 727ada0a..47ee0cdf 100644 --- a/discordit/src/main/java/entity/User.java +++ b/discordit/src/main/java/entity/User.java @@ -51,7 +51,7 @@ public void getAllUser() { //TODO 업데이트 추가 - public void update(String displayName, String email, String phoneNumber){ + public void updateUser(String displayName, String email, String phoneNumber){ this.displayName = displayName; this.email = email; this.phoneNumber = phoneNumber; @@ -61,7 +61,7 @@ public void update(String displayName, String email, String phoneNumber){ @Override public String toString() { return - "--------------- <> ---------------\n"+ + "[User정보] \n"+ "createdAt : " + createdAt +"\n"+ "updatedAt : " + updatedAt +"\n"+ "id : " + id + "\n"+ diff --git a/discordit/src/main/java/service/ChannelService.java b/discordit/src/main/java/service/ChannelService.java index 839a65ba..5860bf88 100644 --- a/discordit/src/main/java/service/ChannelService.java +++ b/discordit/src/main/java/service/ChannelService.java @@ -1,4 +1,25 @@ package service; +import entity.Channel; + +import java.util.List; +import java.util.UUID; + + public interface ChannelService { + + //생성 + Channel addChannel(Channel.ChannelType channelType,String channelName, String description); + + //조회 + Channel getChannel(UUID id); + + //전체조회 + List getAllChannel(); + + //수정 + Channel updateChannel(UUID id, String channelName, String description); + + //삭제 + void deleteChannel(UUID id); } diff --git a/discordit/src/main/java/service/UserService.java b/discordit/src/main/java/service/UserService.java index 617d7ea9..212a3b31 100644 --- a/discordit/src/main/java/service/UserService.java +++ b/discordit/src/main/java/service/UserService.java @@ -7,7 +7,7 @@ public interface UserService { //생성 - boolean addUser(User user); + User addUser(String displayName, String email, String phoneNumber); //조회 User getUser(UUID id); @@ -17,7 +17,7 @@ public interface UserService { //수정 - User updateUser(UUID id, String displayName, String email, String phoneNumber); + void updateUser(UUID id, String displayName, String email, String phoneNumber); //삭제 //전체목록 검색 -> User객체 가져오기 -> 가져온 User 객체 안에서 id 조회 -> 리스트에서 검색 후 삭제 diff --git a/discordit/src/main/java/service/jcf/JCFChannelService.java b/discordit/src/main/java/service/jcf/JCFChannelService.java index ca685055..20d0dd23 100644 --- a/discordit/src/main/java/service/jcf/JCFChannelService.java +++ b/discordit/src/main/java/service/jcf/JCFChannelService.java @@ -1,4 +1,50 @@ package service.jcf; -public class JCFChannelService { +import entity.Channel; +import service.ChannelService; + +import java.util.*; + +public class JCFChannelService implements ChannelService{ + + private final Map data; + + public JCFChannelService(){ this.data = new HashMap<>();} + + + @Override + public Channel addChannel(Channel.ChannelType channelType,String channelName, String description) { + boolean flag = data.values().stream() + .anyMatch(channel -> channel.getChannelName().equals(channelName)); + if (flag){ + throw new IllegalStateException("이미 존재하는 채널명입니다."); + } + Channel channel = new Channel(channelName, description); + data.put(channel.getId(),channel); + return channel; + } + + @Override + public Channel getChannel(UUID id) { return data.get(id); } + + @Override + public List getAllChannel() { return new ArrayList<>(data.values()); } + + @Override + public Channel updateChannel(UUID id, String channelName, String description) { + Channel channel = data.get(id); + if (channel!=null){ + channel.updateChannel(channelName,description); + return channel; + } + else { + return null; + } + } + + @Override + public void deleteChannel(UUID id) { + Channel channel = data.remove(id); + System.out.println("======= (DELETE)삭제된 채널 ======= \n" + channel); + } } diff --git a/discordit/src/main/java/service/jcf/JCFUserService.java b/discordit/src/main/java/service/jcf/JCFUserService.java index 62eac382..de4121b7 100644 --- a/discordit/src/main/java/service/jcf/JCFUserService.java +++ b/discordit/src/main/java/service/jcf/JCFUserService.java @@ -7,31 +7,60 @@ public class JCFUserService implements UserService { - private final Map data ; - //생성자에서 초기화 public JCFUserService(){ this.data = new HashMap<>(); } + //멘토링 조언 + /* @Override public boolean addUser(User user) { //boolean guess = true; - boolean flag = data.containsKey(user.getId()); - if(flag){ + //boolean flag = data.containsKey(user.getId()); + //user객체를 다시 만들어줘야함 + // + + if(data.containsKey(user.getId())){ System.out.println("이미 존재하는 유저입니다!"); return false; } data.put(user.getId(),user); return true; + 서비스에서 중요한 데이터를 표현한게 엔티티 + + adduser(데이터 개별적으로 생성) >> + + 항상 올바른 데이터를 전달해주지 않을 수도 있기 때문에 + 검증하는 단계를 서비스에서 진행 + + 실제로 만들어진 user 엔티티를 리턴해주는게 좋다 + */ + //예외처리 다른방법 //boolean flag = data.add(user); //if(flag){ return user;} //else throw new Exception(); <<이런 방법도 있다 라고 참고만! + // 익셉션을 활용하는게 더 좋음. + + //CREATE 생성 + @Override + public User addUser(String displayName, String email, String phoneNumber){ + boolean flag = data.values().stream() + .anyMatch(user -> user.getDisplayName().equals(displayName)); + + if (flag) { + throw new IllegalStateException("이미 존재하는 유저입니다!!"); + } + //중복된 유저가 아니라면 입력받은 데이터를 USER 엔티티에 추가! + User user = new User(displayName, email, phoneNumber); + data.put(user.getId(), user); + return user; } + //READ 조회 @Override public User getUser(UUID id) { return data.get(id); @@ -42,19 +71,19 @@ public List getAllUser() { return new ArrayList<>(data.values()); } - + //Update 업데이트 @Override - public User updateUser(UUID id, String displayName, String email, String phoneNumber) { + public void updateUser(UUID id, String displayName, String email, String phoneNumber) { User user = data.get(id); if(user!=null){ - user.update(displayName,email,phoneNumber); + user.updateUser(displayName,email,phoneNumber); } - return user; } @Override public void deleteUser(UUID id) { User user = data.remove(id); - System.out.println("유저 정보가 삭제되었습니다."); + System.out.println("======= (DELETE)삭제된 유저 ======= \n" + user); + } } From a90f8151fd91fd26701473ba7611727514d478f9 Mon Sep 17 00:00:00 2001 From: apple Date: Wed, 14 Jan 2026 18:51:44 +0900 Subject: [PATCH 05/12] 2026-01-14WED --- .../executionHistory/executionHistory.bin | Bin 37006 -> 41517 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 20297 -> 20297 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../9.0.0/fileHashes/resourceHashesCache.bin | Bin 22645 -> 23291 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes discordit/.gradle/file-system.probe | Bin 8 -> 8 bytes .../classes/java/main/JavaApplication.class | Bin 4911 -> 5305 bytes .../classes/java/main/entity/Channel.class | Bin 2437 -> 2310 bytes .../classes/java/main/entity/Message.class | Bin 351 -> 2267 bytes .../build/classes/java/main/entity/User.class | Bin 2346 -> 2433 bytes .../java/main/service/MessageService.class | Bin 117 -> 478 bytes .../main/service/jcf/JCFChannelService.class | Bin 3694 -> 3765 bytes .../main/service/jcf/JCFMessageService.class | Bin 300 -> 1573 bytes .../main/service/jcf/JCFUserService.class | Bin 3568 -> 3569 bytes .../reports/problems/problems-report.html | 2 +- ...d3 => Channel$ChannelType.class.uniqueId8} | Bin .../stash-dir/Channel.class.uniqueId10 | Bin 0 -> 2310 bytes .../stash-dir/Channel.class.uniqueId4 | Bin 2392 -> 0 bytes ...eId2 => JCFChannelService.class.uniqueId4} | Bin 3694 -> 3765 bytes .../JCFMessageService.class.uniqueId5 | Bin 0 -> 300 bytes .../stash-dir/JCFUserService.class.uniqueId1 | Bin 0 -> 3569 bytes .../stash-dir/JavaApplication.class.uniqueId1 | Bin 4841 -> 0 bytes .../stash-dir/JavaApplication.class.uniqueId3 | Bin 0 -> 4754 bytes .../stash-dir/Message.class.uniqueId2 | Bin 0 -> 1522 bytes .../stash-dir/MessageService.class.uniqueId6 | Bin 0 -> 117 bytes .../stash-dir/User.class.uniqueId9 | Bin 0 -> 2433 bytes .../stash-dir/UserService.class.uniqueId7 | Bin 0 -> 491 bytes .../compileJava/previous-compilation-data.bin | Bin 612 -> 621 bytes discordit/src/main/java/JavaApplication.java | 28 ++++++--- discordit/src/main/java/entity/Channel.java | 13 +++-- discordit/src/main/java/entity/Message.java | 55 ++++++++++++++++++ discordit/src/main/java/entity/User.java | 4 +- .../src/main/java/service/MessageService.java | 14 +++++ .../java/service/jcf/JCFChannelService.java | 2 +- .../java/service/jcf/JCFMessageService.java | 39 ++++++++++++- .../main/java/service/jcf/JCFUserService.java | 2 +- 37 files changed, 138 insertions(+), 21 deletions(-) rename discordit/build/tmp/compileJava/compileTransaction/stash-dir/{Channel$ChannelType.class.uniqueId3 => Channel$ChannelType.class.uniqueId8} (100%) create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId10 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId4 rename discordit/build/tmp/compileJava/compileTransaction/stash-dir/{JCFChannelService.class.uniqueId2 => JCFChannelService.class.uniqueId4} (51%) create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFMessageService.class.uniqueId5 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFUserService.class.uniqueId1 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId1 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId3 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/Message.class.uniqueId2 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/MessageService.class.uniqueId6 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/User.class.uniqueId9 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/UserService.class.uniqueId7 diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin index 88d84ea3ecca989f4121848d9ff47af2d53859b8..e14980e45b925fd3a783768e9abfabc2a3ecff45 100644 GIT binary patch delta 782 zcmeBM$h7td(*zMlmWiV3ybKHsbsrcQ1m^)6t{WXMh)`=hA$o)vuhAmY7VQACfO{e4^FDS9L#G9@)HJa6RD`-{gs< zIRaDHd+Vu(ExTSkdz!?eDxIv!yk)sU#(QN7wioa2dn5MqYsx&1Ovb5`KZc4-UQm`a zIlE(;z=rp8n)S5OrOs(9wXM}(v}dwlXRpxB&aUUzM9%O3X}M#jcFs%|#>JBbE0iYh z2}=_YIK`7R{eAs}4mt7j+wOdNJ^6k`v(U5W3sU~Er`%j@cjA`8)LKTyIg{6QNl)&t zjGr9dT_AAnQfgAh_S&Uc^X(^{V_Wxma$Z&ag52}na!&Cd!IDdP zCi~P#Xh$E`O{jZm^GHr<6O&g<3i~^VvC=?yz3%?tBes9rrlgx(7hNoVouAxaBO!HL zUNPu{o&D9;fMBo8pUjST!RqfZGftWuSR-ubbz)P&@7m(qvmb@u6qq5!ej6K(*zMl=82-}jFuY%Pl!)U5Sc6~p~Y19VY91*X9WPrK?`XB diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock b/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock index 6814f4ca50a19c8e5cff5280b0d12379420956bf..913fabd9d335c3390d4d993681cbccb26d0de87b 100644 GIT binary patch literal 17 VcmZR6G0Sa*#+A@h3}C?61OPe`1rh)N literal 17 VcmZR6G0Sa*#+A@h3}C<*4FEao1nU3* diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin b/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin index fa1d2c7e08d4be22b9252fd2617cb8fdf58e2e0a..99b95075cdc96f14fb51f5ca343ed7236bd1d318 100644 GIT binary patch delta 867 zcmX>(kMZO@#tq!w^#|6d_I+Q*r*9dtm!#Jpfb|TJ(lZ7Unn0`w z!U9aI&T}U%xuwc;Yi(@B-y?ls9ZJhq0VRQeT@py3=?Ia3WE+0t-?LjT?3X7U-2WD; zV;NATIS{j1V`^D>hWqBqwX&K*&QIAkO)rQBYf;++b(ZM*$p^j5>dlNz{N|TB&Csr~ z*sxl>(i5ymigO>(I3VC+2NGy5IlAP*>RzRW*K&7ql_yyADuZ>z+gt!^VBloK)bY#e z;k$FSJWuO&6IKTnAueqT`f5|q(uO#v#%NpP~gtwwZ2mItE+W$o(c;2=UQFATg7|k z22}NTh-#)>O!JrZ?oydy!^yGdAFF_&oPGdE$Icf{f)E|72QYQ${S=G$Vf0pcY=@!vBB088AZ8B6)Dp94ciO%k&)nKPI;A(OW!!^mfhH}+L`)qCpYGRvSjywX zGC}V7ZaJrTs7F2mRRRH9*R%jJGH4WdmL0=xK(kMZO@#tq!w^)nQVrd-Ty)pDBW@V)KrgVziUjI$ReJ?&+HfC)fK&lpH(0tLBgmw9;5Mh=WFQ}HIK$Sos+&=lBcUis3<82n2DoP|X~Si7LG2Vk@+}1k$l^#{wYDkO{<$@t9g1dOc^ew1tIy{I~mkg?suYuq9S*dO(#x zz^Mf!(44i-P|)O(QP+z}r(-U)GFR_~I;#V$fk9Y*vb?XF-L`oK&@g5M#uB;_oB73l ztlt0Z*oWta>}%5kfLejEGS46wVg&Dp$<4lMEZZ(Ic1&LDD^-7!Z);gskN(oXPIooJ zBt?3l7EXkyW=g>{|LSk?V@U~pcF(FFf0>~nSOnH__!TG|fPi%ikU;a)v`Frpt1WI( z!8v^&nXfT-f^;mr@ka=#vL2+z5>rcQghp?lM1;emd4bMLe$|0JvGB%>T99%eFau&V zOXh4?y@1bS|DGqw*YBN6ytNZ-$<6a>VD$`)I+!}@X8&&TWB49A@tN-4h93u5VSWcC zLLlJF0}^PKIJg9seVBXR^XWsM2VXfpRzNLL2WwzpD4i_quOZi(JD^~t+O3}C=~2mnDg1}Xpm literal 17 VcmZQ>Zi(JD^~t+O3}C?Q2LM3A1-1YH diff --git a/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin b/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin index 7ff30b99e705864cd867382c9fd0b980e9dcbf13..291a9b5fc0bb73e602390c038c581d328b7e2381 100644 GIT binary patch delta 1099 zcmeymf${fN#tkMCjJ=ahB_=rZS+4v1_rM(!1~7=?{SO5b)_wbb{LA@O5b;QPnE1q< z0&S1ejk_S?5z{B{l~53v5-lr!c-rl+P{qlUuSzrs%oS)olFzkhHdL^6vajS1fz46- znR-6n<%bAHZJ%r_)gW-x!9URR&MtGPVDaRwQWhGg0)kcrd_J=fDi{cJz-gWPmbQDo zc0i3iIr*uSCI8Mk^U2}wEp=4MejNhbcujPG~qzdZmE zj3}L~sxXs3?)}`QJ3l;th(*4hyj4L#z~Se=iPtXQxCK?XbMjfBpkw_`@tmvkbD)BM zH$PQ4z@$>W*WS*&N+k}e-x20f7|p=I>$y?!hxkT=3tXEWJxm1Zje$xffmjfP1tOnK zT)fEJiBGw{zcH%M*b*oxhpJ-3`#H^eTIo{fw3XV{>Mz=Zsls$;Me>#(a~hUR(X35e z@);ECXlATQ<+;6+Z^owLf+zL0>)P$EVJhiuT0CKw$HU48XZTWnJQ4Yisp8{F1=HRL z*}Q+&Ws1w~j(@>aA--HPwQlOBB&TnY4;MaV(#KTM=vY5%n_k-UeLMF3V7tD+XFsMA z`P91`9z6bf_V3#BvH~TCY%x_>&Eo6PT#_1m`c;OCJi|L@OcesBc#@{SubbexZrBBnhe9fO?fw}@r6`vGV zRWK%bF3ne3{mLn62`CGq1^V%cRtsO%{bYG$^LoMcgj;+F74@*#pSs>#Pd#ke_2Svn zBoL} Vf9xqY7u%hSfm6VulD_Jr5tmKEuSEVW@r%D@4J}PavnNQ{c<775D z@yVugD<*%HOW2$%FUT}`n&O1Xc1q%tbCo1E&sEyN#Pc5t7#O%4H!A)R-)Jy{XS1V+ Gi2wkVbSmut diff --git a/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 153aeeb8c6157408eb6e63760ce12145ac6ccf11..fded95610e9551dcfb0ab14dc75b7830a359e979 100644 GIT binary patch literal 17 UcmZQ>_0_1)+G*X)00vB504f{<>Hq)$ literal 17 UcmZQ>_0_1)+G*X)00vAR04dr7r~m)} diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe index 95ba0871443005a57e93376f229f1863dd2ad977..daa14ea1b798daeee2d58e64dc7ab1ed9eb0b5ac 100644 GIT binary patch literal 8 PcmZQzV4S`4(QIA-3E~3a literal 8 PcmZQzV4S_>HAloFk)DR%5OVK$+%K`5J& zL`b~)C#{lbR20>cw_QpVeW6159eyTcj%7k&5Nm_GRq-^7?5vsPmscTEMs;W_d z3s$7dSi?_SN2XONs75A3T%Ip5&hPI@Az_k?4Ggx<)^=@Isb2jio+6F1as@T0<&R1; z*wg%&lyti&$+KEE&Ei_*xb;}^`g@pjpnD`S!!&!R!Xb_LHNm990a{Q|O&vAPgCe3{I`KGE!dKRl8X$3u#+whQ;D}?2@os!5+N8kicih zCO9e11ck~dW%dWwLL+?q~+tQyj>jzfgFkg6{gA+0khmrSToHC5}!zBG4psDHw&Hc(QVWUFMgR zzW4k>9oOm_w1!eOD^tx-nT+2U26Q&nY4xF~Lu;sww6;aJAVaki<_|tB&OP%gL!ZdX z-CBLAYCyHh%?8I`qWAjxsM@M}t*lvR{zoJ;PP>y`BMPmdjMiHz^4(W>fbi*B$nC|R`23&;CCMMb_MhS=!JnzO7ayx*^zM9Q92VA;KZvW6<)Ai?Io8>pDjQV@G*oue_jujin$k z3r^rQvf^+Ruj35@-b$^0lQa_^KpWm7Ee30`3@334W_*o7I8B-bZ&OqPp$y-d9^V=A z$znZ3Qp#|SJQ88ACbz)rn&2T=-I zJ#mtH^GUKmgz2RIX zwcfQcj3>>=un6L(4B{KA&>visCx_u0elAMWtBqs;q zpyu|+RNRSN+>L3Nh=<6Ujv06u1$YF-1YM3|W&H zLprmNJqRDsnYCxe2I@Sa4BvV3$@mzb7&FES@|Y>vkPxZ zU(q#ew3y#Si^(HT3`MvPVgK|4XwE)_7J9bjq=e9(8p5IG|L0#xoU7>VS&crZ#4WVa zBEM>|;39QbyhpwDSB1U|luh(jWciLfCVY<{=s6a4{75xi(&f*({8g8~>+*^&|0J2l e@V9RKtIO*`(oYoaB03*dF!OzGW?>Su!Tlf3ZWZzX delta 1583 zcmZWpdr*{B6#w0Qe!G6Gw1d=2!>lfHOSK-13bx#ynqJHK=8IcGQN zJ2u04=I?{zH^D}&==&vE^5(@5751>1R}eYS0fiU;r@PuQ2So!qVXDxFx5 zT`D*prc#L}#jzl;Mq|jx@s-sC>I42zAYAQV9H|S2tBXX$BPt%f6j7?Jt*Q&&5ee3Y z-B9qDirLu1aBXYsYQD=fC94+uRJ3CSmAO(2X%Q`zLc!zwyd|s1c_jJy*zuH#r*V`g9mPr~o>g%S zT|NIe0xZj3Wi+25z3ji^DB>-XPV!cDo$Esak`$-s?5+`qteB{%c<1@|1roqKwy1 zp#NUbk4;|^U7SE9J!3>VgPA$0s2_Q|>vDe9m2JYWeAMN$;&+B@UXqs0ubZqc>V%0_ z6tsJczBZEGbo0~6gf+JhOc+dvlN4?s9X%vf1Atx}r<)@BOP21Qw#k`{#re_n>ZpJf zQxKRH3G~q|4S%5@NdivA2nI+q;bx*3B+ZQNXvA}P9u{1{betf~iWevj2H0| zC2`>_PT~~xc^3VcUM9^%yivSD^Dz@&1zshag_x!j%Y>OlQ?SznGn}X8(9Ym>V`#`D zda+UeTd~N56=QgVDgYdK6K|ygtEmPv**t^jxU~-l$_87d&3Gd;3I*Z}N2UNqb tl;@@VT*@z{{7TAir2H;d9zRGqBIPK4A`&;zY4lh5bBPDP;5YmM&%gVMpE&>k diff --git a/discordit/build/classes/java/main/entity/Channel.class b/discordit/build/classes/java/main/entity/Channel.class index 269702ab2688718f9184db22904848c71aee9cac..97f3e9b2943d12c65497a7d0335a0151b97d0f75 100644 GIT binary patch delta 251 zcmZn_ZWG$Dg^Af&!)LNBi_~OaCbh}j%-)k5m|K|CH75HpsWOIbW@0H~WO3HZOqpE4 zdPkgtfsuig!2(EHGB7Z7F)%Z*0BNns*=!1II$Igkv~(v=W>d9RVUT9fWRPL721!Dc zFxW8I0(l_58G|{{01!(9sEP^9(gCuVfueSkW7yRgB@%yR_t zZUA}eK%O|G^JGyD6-I5aj0=PFZ{L%2?!`ucvb;Cz<|ZOL|x0ZbLK1jFsEo}dAA-GQG|mU zKSyH|>S!>r9W%&sM5MEGV?|gEpjre!q>FNbjB2F+DA` hG#w(MX?t^Oi*vX6j0)yZrBk~oVj9|Y(V%xb`2_?qHr@aL diff --git a/discordit/build/classes/java/main/entity/Message.class b/discordit/build/classes/java/main/entity/Message.class index 11f443183089b4e8a9169a92c33ce34cbcf856a7..8ed275d4a7322c1636a81064eb73bd8870291d08 100644 GIT binary patch literal 2267 zcmaJ?+j84f6kW%0EJsxm*Gbw2O5-MOaGZ;w7btaUNnJu6?1thbEd(AE`{1aNrHphO zCf~s@!y}&nLp@~rzz6Uv^cypDAszkU4|fKTzAiUh_KBsGj9 z#gKWapXw!3x7wwh!q`O~du_-B$4q-c@i_!+W^a&(|xjW?O9r@}k@geDkR(|u{s~q*htk6&iJ5cE_plIt zEfrULST3&hP%N(Zu>QN}uuShoTI!%=l9;Bop1~ZYvp|9Jn4$2q*r1d9WKs0P(7%lb zq)|Y*+9(P6B@>jzl;pCagcu$|3lc1mlvd-#SD5^bJ`#{&Q{Lef&$ToqgTOVzXV|0@ zSzQ#oFbcjJ3w{&}UK$1GV!;(Wj)}ZH3eLxZKaZ`sI0`Prg12J9>!aYcSnwBKJ7vRG z>5<=40ajMjKJlIncmdJJEZiv((@lT4Gtr}XS%pEP+P Kp5q%FVE$i}a@=$P delta 181 zcmcaDc%O;u)W2Q(7#J9A8AK;?=`*u4a7=8|oNUM_&%?;TSz3^iSdyCJSTcDplUF@g zaDHh~a;jTqPAVeff$?3=9mm3^5zIb}$QiYWQR&mL=+!mSpDWhlYB(OwMCcot)1kH2DD& z%j84M7JU9(3;_&*> zOmdzKj0{#l3u+md8CZd|w3g0R24OATtqkH?k}Q+GIn-SRfC{7-tQl;8(k2i^K=;@I zc|he1f($}HBS0)s1~CREFiR51Vg|EhfGifEyw~Kl91*JCKrto;9|m6_%>fkk1L6>d RFd&Z$$O>nOWQb;v1OTQ)Df9pU delta 210 zcmXAixe~!p6o&sKHYaS9n^x%nlNr2eQ# e(rDXKMCVS2PDK|z<_N9F7-Pc9AWbpH66ObORvzjA diff --git a/discordit/build/classes/java/main/service/MessageService.class b/discordit/build/classes/java/main/service/MessageService.class index 19f8a63410261dde6672b71572ce0619752df3e2..5f9cb5c3eecf294acd65e3f119aaf303bfd5e38d 100644 GIT binary patch literal 478 zcmZ`$(MrQW5S**FvC(R6zz-0G=EZzKwICFs5b+_z_cK|JD@T;%Qt;P&@B{p);wG(a z_3-J~*_qk7-LKWhCxANy9y$US6_rb!QS?YvB^4#>(!-&^a3Pm6GO|$7)60S~E8xpK z-!KJc<9NqNY^e)1StGU8CQ8%!%&Ehe3ajn=&%6nHDzaP8%Z=yG;UC4lF)3#k7>&cd zp|P$kd-fBp3Tf+-1g;#y?cWenmJI5*Tw2;DxptDczYU*Rmy@AAUEt^%mY=-VWkwI$ zaH8P%vTvF#_5=hD_%cA3ci%-1%?&&pwQnCj_m8>T!3pC7oVNHGhKvcEx1G^9>)(UI delta 33 ncmcb|T*`Io->!WO3=Fmm>=U_6Cs#0Pb2Bh7GOz-Lm>Adqt^o%H diff --git a/discordit/build/classes/java/main/service/jcf/JCFChannelService.class b/discordit/build/classes/java/main/service/jcf/JCFChannelService.class index 3d1ed65ec00f989e53f946d787e54b62d5fddc87..ae249ad6fde146befd250bac360e3008fbf7e103 100644 GIT binary patch delta 941 zcmYjPSx-|z6#k~Y?d`q26lf7`WGU8ywpKzg#F$hK1knm8F1Rl!MU+)`H!AM9%ee1~ zxI`aBv{7P=CO+}z57318?vszkcxGCGmpf<9Ip6ut_s#v4@h(#z`#bsxKnO2}^$HU! z;a@Dpyw~)5+A@Zu&eqzRjz~#;O>=Xkks)sm|6%dvRNIk?agRQfm1l0f*ZVCb31P7 zxQ#n1?h2}Vyj}as9`J?w684z)=s{(O!NGpl&Uzv+e9d%)m?1IcvmB_mAO z2bE$Atn_W*UVBbqBjv>nFwi8wB2GawTIghG#eUIC@tDK`Vcu<@&jNhN?uiO?7R>~? zmPTAN;ev-EKhjZz=_tbtIdw5{5Hc}UL~Ur7tYLJZlQt8%E{e=FBOl%9fkG3~Z~zC1 z_Yl=-%RlflLLJ7D_)e85Ca3^A{BNNLK46gvpAmdb851U@WymGcR1+wOu zVD==KL1z7z?@7o{CM$(#MT)iw(OD{j#B~BEC1YQbE3-`MtayX)y!Ti=ifSN+&BJls zd^pJ!6_4p5JH-RVA5%ne#SVI4!C^|##XlydQeTKX5MFA57vhKs z_Xl4PB|;+cK_B!V_!CTs#`tQC=iZLM%RP6_eCJ!v%)9g-X~x&T;}ZZ1@oLzpbci8m zmKb#W4uu#zovpRusI|H-9En&>CX!Ifu?B?Zsw^B|d8lU3)n8A}oGs!Q?9J=ct86v{qYZxT%9- zwg@036zNsX0Dht z1FTVacxt!+b5VkMYI1!}Olq z{6Ub>)DiSbZ85+zLeoCel+ql<<(*RU;wbtE&Criy^sYgC;|ubpr!r=wOR}e8J2_4> z#W{09vj$+?y$*#y_U)?ujn{Jhg0B{#6E=F2s)xbFnQ1#L1 edFoxmb=<^l(s+PJcK>wqT_ya@V$8DoPP)1-T3(PSFpQI(!W6(uN5s)22B3t8_+1 zWyT-ik8(Vlgf=vOa5_!)_CDvFcX#vq&(B`~o?}~ugpdMRLm&DXqNnAWqH_Lj{5Pfe@w(CZV zVWN1Q&OdjTu&Q3IdZ{w(`Yrq4O)K^!OH7Nu?=a(TasG3_5U$j9%i^Zk-)L|337YU~h^dln%QO$k8;02%$4hKvp;spCkF?L} zBJfVMxj?jFo#`^^s@&v0-AF(uR;i^%yIJ9ThS<>eReFn666;11H3MT#goHcWi6G$_ z(HQ;KF-voTvE=jt`8y_hDdRpLWRK!HoF`R*KE!Swo5T_Rv96(R8Z!=H(w*$2!Mrqt esW~cHY~ltsJy?!FqNo5Y<*SJWU<@xD;nrX1DNzCd delta 110 zcmZ3=vxbT5)W2Q(7#J9A83ZPBnM_PkoXpDOG8v*3<(ZYKx+#YErR$$TYMA*%flC1-+$o7 zxdTVWfl||`ap1`KLmcR=P8>OKpWB<#$+`QSz1P}nuYH^GKk@e)?#QSjxVBuHTP+t? z%2n&HH`g1Yo8u-Y7*=?z<;A7-a)6WMeB@2WnXulv4}=O#`Z#TJhNAV$o%NnInP$d1 zWQ+u6Iq&0w$wlj>vDbUqWR5G=rjha&D4CR*w|*LZ>U!PpX{!1$-y5aot>6CrYP!BN zP*%xnD0+y{CEpu>i<|f)_TZJXV!aOT9$1j~2yQvU7PFM|$N-QRQ^#eD2@(|SR@#c1 z@U#^s9fkT$yP~~F+OBA~lW12Ap^0{Q;n!Xyd}Ku3Q=T~*OM=yygrjlH)|lTU+y9AE zUzmah=R{&n3bz(olyy$AOa3Oks@@hwTVBGE7jXo*qCuYX!f81yOj>Xt-QZHH!PR$i YX_2?KGT5<|fIXiScnRoXtgqq0|JHqU3IG5A delta 788 zcmZXR$xl;J6oQdANbg^Fn7f&>>BL@TqDL7dP&ha!Sya6;>VJ9p1N zz?CZ(DyC5r6IaHy|Ao7{ab=9>-Zt38&3*U2bI$L4=XZW4tI0PT{sTRV$l7vYe$~yd zxTPp93_6^kPZ21&i%aWnm>j2q3^@!l;{Ea;j*c-NWWwPzlU~-!1*ROPnejHQf$$mT zf}C|Y=Y6;K2QD~VWZwH@r9)#}b|~O_2kj1Zb!*bDD(|^Jx78nfrIhRa2pv+>Tf4)q zYQKV_l^AjPUITnwCn$HDfSg6|Wn^#ng8Yx+m$M1WbBM@0#ls+Og1wtt)%K6 z_f3y)(e@tAr75A`@a!~NvF%PVHh3U$#Y4&xD|)+}edT{ugAG%()T?S9Jd&CL9?Mx2 z^%ugUXGo>r6Y2a&ua7TedhLY$6(?bLWfE3}V{awHk5+G$d}M!dMr4Xn+88&Tj1y&2 z+kmM$phz22v=u31iZ(liHpLQ|c!L!oZADv function configurationCacheProblems() { return ( // begin-report-data -{"diagnostics":[{"locations":[{"path":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java","line":8,"column":8,"length":1239},{"taskPath":":compileJava"}],"problem":[{"text":"service.jcf.JCFChannelService is not abstract and does not override abstract method updateChannel(java.util.UUID,java.lang.String,java.lang.String) in service.ChannelService"}],"severity":"ERROR","problemDetails":[{"text":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:8: error: JCFChannelService is not abstract and does not override abstract method updateChannel(UUID,String,String) in ChannelService\npublic class JCFChannelService implements ChannelService{\n ^"}],"contextualLabel":"JCFChannelService is not abstract and does not override abstract method updateChannel(UUID,String,String) in ChannelService","error":{"parts":[{"text":"org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:34: error: updateChannel(UUID,String,String) in JCFChannelService cannot implement updateChannel(UUID,String,String) in ChannelService\n public void updateChannel(UUID id, String channelName, String description) {\n ^\n return type void is not compatible with Channel\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:8: error: JCFChannelService is not abstract and does not override abstract method updateChannel(UUID,String,String) in ChannelService\npublic class JCFChannelService implements ChannelService{\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:33: error: method does not override or implement a method from a supertype\n @Override\n ^\n3 errors\n"},{"internalText":"\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:89)\n\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)\n\tat org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)\n\tat org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:206)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.lambda$execute$0(SelectiveCompiler.java:101)\n\tat org.gradle.api.internal.tasks.compile.incremental.transaction.CompileTransaction.execute(CompileTransaction.java:108)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:95)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:224)\n\tat org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:165)\n\tat org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:150)\n\tat org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:252)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:237)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:220)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:203)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:170)\n\tat org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)\n\tat org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)\n\tat org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)\n\tat org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:28)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)\n\tat org.gradle.internal.Either$Right.fold(Either.java:176)\n\tat org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:64)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:35)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:62)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:40)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:76)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:45)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:136)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:66)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:38)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:297)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)\n\tat org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:132)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:121)\n\tat org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)\n\tat org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)\n\tat org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)\n\tat org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)\n\tat org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)\n\tat org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)\n\tat org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:45)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:347)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:334)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:319)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)\n\tat org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)\n\tat org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)\n"}]},"problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.err.does.not.override.abstract","displayName":"service.jcf.JCFChannelService is not abstract and does not override abstract method updateChannel(java.util.UUID,java.lang.String,java.lang.String) in service.ChannelService"}],"solutions":[[{"text":"Check your code and dependencies to fix the compilation error(s)"}]]},{"locations":[{"path":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java","line":34,"column":17,"length":208},{"taskPath":":compileJava"}],"problem":[{"text":"updateChannel(java.util.UUID,java.lang.String,java.lang.String) in service.jcf.JCFChannelService cannot implement updateChannel(java.util.UUID,java.lang.String,java.lang.String) in service.ChannelService\n return type void is not compatible with entity.Channel"}],"severity":"ERROR","problemDetails":[{"text":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:34: error: updateChannel(UUID,String,String) in JCFChannelService cannot implement updateChannel(UUID,String,String) in ChannelService\n public void updateChannel(UUID id, String channelName, String description) {\n ^\n return type void is not compatible with Channel"}],"contextualLabel":"updateChannel(UUID,String,String) in JCFChannelService cannot implement updateChannel(UUID,String,String) in ChannelService","error":{"parts":[{"text":"org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:34: error: updateChannel(UUID,String,String) in JCFChannelService cannot implement updateChannel(UUID,String,String) in ChannelService\n public void updateChannel(UUID id, String channelName, String description) {\n ^\n return type void is not compatible with Channel\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:8: error: JCFChannelService is not abstract and does not override abstract method updateChannel(UUID,String,String) in ChannelService\npublic class JCFChannelService implements ChannelService{\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:33: error: method does not override or implement a method from a supertype\n @Override\n ^\n3 errors\n"},{"internalText":"\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:89)\n\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)\n\tat org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)\n\tat org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:206)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.lambda$execute$0(SelectiveCompiler.java:101)\n\tat org.gradle.api.internal.tasks.compile.incremental.transaction.CompileTransaction.execute(CompileTransaction.java:108)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:95)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:224)\n\tat org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:165)\n\tat org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:150)\n\tat org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:252)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:237)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:220)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:203)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:170)\n\tat org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)\n\tat org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)\n\tat org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)\n\tat org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:28)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)\n\tat org.gradle.internal.Either$Right.fold(Either.java:176)\n\tat org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:64)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:35)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:62)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:40)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:76)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:45)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:136)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:66)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:38)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:297)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)\n\tat org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:132)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:121)\n\tat org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)\n\tat org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)\n\tat org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)\n\tat org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)\n\tat org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)\n\tat org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)\n\tat org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:45)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:347)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:334)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:319)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)\n\tat org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)\n\tat org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)\n"}]},"problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.err.override.incompatible.ret","displayName":"updateChannel(java.util.UUID,java.lang.String,java.lang.String) in service.jcf.JCFChannelService cannot implement updateChannel(java.util.UUID,java.lang.String,java.lang.String) in service.ChannelService\n return type void is not compatible with entity.Channel"}],"solutions":[[{"text":"Check your code and dependencies to fix the compilation error(s)"}]]},{"locations":[{"path":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java","line":33,"column":5,"length":9},{"taskPath":":compileJava"}],"problem":[{"text":"method does not override or implement a method from a supertype"}],"severity":"ERROR","problemDetails":[{"text":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:33: error: method does not override or implement a method from a supertype\n @Override\n ^"}],"contextualLabel":"method does not override or implement a method from a supertype","error":{"parts":[{"text":"org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:34: error: updateChannel(UUID,String,String) in JCFChannelService cannot implement updateChannel(UUID,String,String) in ChannelService\n public void updateChannel(UUID id, String channelName, String description) {\n ^\n return type void is not compatible with Channel\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:8: error: JCFChannelService is not abstract and does not override abstract method updateChannel(UUID,String,String) in ChannelService\npublic class JCFChannelService implements ChannelService{\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/service/jcf/JCFChannelService.java:33: error: method does not override or implement a method from a supertype\n @Override\n ^\n3 errors\n"},{"internalText":"\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:89)\n\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)\n\tat org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)\n\tat org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:206)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.lambda$execute$0(SelectiveCompiler.java:101)\n\tat org.gradle.api.internal.tasks.compile.incremental.transaction.CompileTransaction.execute(CompileTransaction.java:108)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:95)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:224)\n\tat org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:165)\n\tat org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:150)\n\tat org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:252)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:237)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:220)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:203)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:170)\n\tat org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)\n\tat org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)\n\tat org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)\n\tat org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:28)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)\n\tat org.gradle.internal.Either$Right.fold(Either.java:176)\n\tat org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:64)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:35)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:62)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:40)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:76)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:45)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:136)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:66)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:38)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:297)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)\n\tat org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:132)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:121)\n\tat org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)\n\tat org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)\n\tat org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)\n\tat org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)\n\tat org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)\n\tat org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)\n\tat org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:45)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:347)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:334)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:319)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)\n\tat org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)\n\tat org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)\n"}]},"problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.err.method.does.not.override.superclass","displayName":"method does not override or implement a method from a supertype"}],"solutions":[[{"text":"Check your code and dependencies to fix the compilation error(s)"}]]}],"problemsReport":{"totalProblemCount":3,"buildName":"discordit","requestedTasks":":JavaApplication.main()","documentationLink":"https://docs.gradle.org/9.0.0/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}} +{"diagnostics":[{"locations":[{"path":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java","line":128,"column":19,"length":0},{"taskPath":":compileJava"}],"problem":[{"text":"class, interface, enum, or record expected"}],"severity":"ERROR","problemDetails":[{"text":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:128: error: class, interface, enum, or record expected\n public static void main(String[] args) {\n ^"}],"contextualLabel":"class, interface, enum, or record expected","error":{"parts":[{"text":"org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:128: error: class, interface, enum, or record expected\n public static void main(String[] args) {\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:131: error: class, interface, enum, or record expected\n ChannelService channelService = new JCFChannelService();\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:135: error: class, interface, enum, or record expected\n userCRUDTest(userService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:136: error: class, interface, enum, or record expected\n channelCRUDTest(channelService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:138: error: class, interface, enum, or record expected\n }\n ^\n5 errors\n"},{"internalText":"\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:89)\n\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)\n\tat org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)\n\tat org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:206)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.lambda$execute$0(SelectiveCompiler.java:101)\n\tat org.gradle.api.internal.tasks.compile.incremental.transaction.CompileTransaction.execute(CompileTransaction.java:108)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:95)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:224)\n\tat org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:165)\n\tat org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:150)\n\tat org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:252)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:237)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:220)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:203)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:170)\n\tat org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)\n\tat org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)\n\tat org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)\n\tat org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:28)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)\n\tat org.gradle.internal.Either$Right.fold(Either.java:176)\n\tat org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:64)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:35)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:62)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:40)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:76)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:45)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:136)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:66)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:38)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:297)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)\n\tat org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:132)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:121)\n\tat org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)\n\tat org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)\n\tat org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)\n\tat org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)\n\tat org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)\n\tat org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)\n\tat org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:45)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:347)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:334)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:319)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)\n\tat org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)\n\tat org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)\n"}]},"problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.err.expected4","displayName":"class, interface, enum, or record expected"}],"solutions":[[{"text":"Check your code and dependencies to fix the compilation error(s)"}]]},{"locations":[{"path":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java","line":131,"column":9,"length":0},{"taskPath":":compileJava"}],"problem":[{"text":"class, interface, enum, or record expected"}],"severity":"ERROR","problemDetails":[{"text":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:131: error: class, interface, enum, or record expected\n ChannelService channelService = new JCFChannelService();\n ^"}],"contextualLabel":"class, interface, enum, or record expected","error":{"parts":[{"text":"org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:128: error: class, interface, enum, or record expected\n public static void main(String[] args) {\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:131: error: class, interface, enum, or record expected\n ChannelService channelService = new JCFChannelService();\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:135: error: class, interface, enum, or record expected\n userCRUDTest(userService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:136: error: class, interface, enum, or record expected\n channelCRUDTest(channelService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:138: error: class, interface, enum, or record expected\n }\n ^\n5 errors\n"},{"internalText":"\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:89)\n\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)\n\tat org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)\n\tat org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:206)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.lambda$execute$0(SelectiveCompiler.java:101)\n\tat org.gradle.api.internal.tasks.compile.incremental.transaction.CompileTransaction.execute(CompileTransaction.java:108)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:95)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:224)\n\tat org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:165)\n\tat org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:150)\n\tat org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:252)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:237)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:220)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:203)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:170)\n\tat org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)\n\tat org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)\n\tat org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)\n\tat org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:28)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)\n\tat org.gradle.internal.Either$Right.fold(Either.java:176)\n\tat org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:64)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:35)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:62)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:40)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:76)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:45)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:136)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:66)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:38)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:297)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)\n\tat org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:132)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:121)\n\tat org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)\n\tat org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)\n\tat org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)\n\tat org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)\n\tat org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)\n\tat org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)\n\tat org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:45)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:347)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:334)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:319)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)\n\tat org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)\n\tat org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)\n"}]},"problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.err.expected4","displayName":"class, interface, enum, or record expected"}],"solutions":[[{"text":"Check your code and dependencies to fix the compilation error(s)"}]]},{"locations":[{"path":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java","line":135,"column":9,"length":0},{"taskPath":":compileJava"}],"problem":[{"text":"class, interface, enum, or record expected"}],"severity":"ERROR","problemDetails":[{"text":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:135: error: class, interface, enum, or record expected\n userCRUDTest(userService);\n ^"}],"contextualLabel":"class, interface, enum, or record expected","error":{"parts":[{"text":"org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:128: error: class, interface, enum, or record expected\n public static void main(String[] args) {\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:131: error: class, interface, enum, or record expected\n ChannelService channelService = new JCFChannelService();\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:135: error: class, interface, enum, or record expected\n userCRUDTest(userService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:136: error: class, interface, enum, or record expected\n channelCRUDTest(channelService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:138: error: class, interface, enum, or record expected\n }\n ^\n5 errors\n"},{"internalText":"\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:89)\n\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)\n\tat org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)\n\tat org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:206)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.lambda$execute$0(SelectiveCompiler.java:101)\n\tat org.gradle.api.internal.tasks.compile.incremental.transaction.CompileTransaction.execute(CompileTransaction.java:108)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:95)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:224)\n\tat org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:165)\n\tat org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:150)\n\tat org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:252)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:237)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:220)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:203)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:170)\n\tat org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)\n\tat org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)\n\tat org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)\n\tat org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:28)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)\n\tat org.gradle.internal.Either$Right.fold(Either.java:176)\n\tat org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:64)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:35)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:62)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:40)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:76)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:45)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:136)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:66)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:38)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:297)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)\n\tat org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:132)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:121)\n\tat org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)\n\tat org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)\n\tat org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)\n\tat org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)\n\tat org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)\n\tat org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)\n\tat org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:45)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:347)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:334)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:319)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)\n\tat org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)\n\tat org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)\n"}]},"problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.err.expected4","displayName":"class, interface, enum, or record expected"}],"solutions":[[{"text":"Check your code and dependencies to fix the compilation error(s)"}]]},{"locations":[{"path":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java","line":136,"column":9,"length":0},{"taskPath":":compileJava"}],"problem":[{"text":"class, interface, enum, or record expected"}],"severity":"ERROR","problemDetails":[{"text":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:136: error: class, interface, enum, or record expected\n channelCRUDTest(channelService);\n ^"}],"contextualLabel":"class, interface, enum, or record expected","error":{"parts":[{"text":"org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:128: error: class, interface, enum, or record expected\n public static void main(String[] args) {\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:131: error: class, interface, enum, or record expected\n ChannelService channelService = new JCFChannelService();\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:135: error: class, interface, enum, or record expected\n userCRUDTest(userService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:136: error: class, interface, enum, or record expected\n channelCRUDTest(channelService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:138: error: class, interface, enum, or record expected\n }\n ^\n5 errors\n"},{"internalText":"\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:89)\n\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)\n\tat org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)\n\tat org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:206)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.lambda$execute$0(SelectiveCompiler.java:101)\n\tat org.gradle.api.internal.tasks.compile.incremental.transaction.CompileTransaction.execute(CompileTransaction.java:108)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:95)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:224)\n\tat org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:165)\n\tat org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:150)\n\tat org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:252)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:237)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:220)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:203)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:170)\n\tat org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)\n\tat org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)\n\tat org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)\n\tat org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:28)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)\n\tat org.gradle.internal.Either$Right.fold(Either.java:176)\n\tat org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:64)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:35)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:62)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:40)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:76)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:45)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:136)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:66)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:38)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:297)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)\n\tat org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:132)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:121)\n\tat org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)\n\tat org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)\n\tat org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)\n\tat org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)\n\tat org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)\n\tat org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)\n\tat org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:45)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:347)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:334)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:319)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)\n\tat org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)\n\tat org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)\n"}]},"problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.err.expected4","displayName":"class, interface, enum, or record expected"}],"solutions":[[{"text":"Check your code and dependencies to fix the compilation error(s)"}]]},{"locations":[{"path":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java","line":138,"column":5,"length":0},{"taskPath":":compileJava"}],"problem":[{"text":"class, interface, enum, or record expected"}],"severity":"ERROR","problemDetails":[{"text":"/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:138: error: class, interface, enum, or record expected\n }\n ^"}],"contextualLabel":"class, interface, enum, or record expected","error":{"parts":[{"text":"org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:128: error: class, interface, enum, or record expected\n public static void main(String[] args) {\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:131: error: class, interface, enum, or record expected\n ChannelService channelService = new JCFChannelService();\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:135: error: class, interface, enum, or record expected\n userCRUDTest(userService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:136: error: class, interface, enum, or record expected\n channelCRUDTest(channelService);\n ^\n/Users/apple/IdeaProjects/9-sprint-mission/discordit/src/main/java/JavaApplication.java:138: error: class, interface, enum, or record expected\n }\n ^\n5 errors\n"},{"internalText":"\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:89)\n\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)\n\tat org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)\n\tat org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:206)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.lambda$execute$0(SelectiveCompiler.java:101)\n\tat org.gradle.api.internal.tasks.compile.incremental.transaction.CompileTransaction.execute(CompileTransaction.java:108)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:95)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:224)\n\tat org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:165)\n\tat org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:150)\n\tat org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:252)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:237)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:220)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:203)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:170)\n\tat org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)\n\tat org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)\n\tat org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)\n\tat org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:28)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)\n\tat org.gradle.internal.Either$Right.fold(Either.java:176)\n\tat org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:64)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:35)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:62)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:40)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:76)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:45)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:136)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:66)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:38)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:297)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)\n\tat org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:132)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:121)\n\tat org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)\n\tat org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)\n\tat org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)\n\tat org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)\n\tat org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)\n\tat org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)\n\tat org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:45)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:347)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:334)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:330)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:319)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)\n\tat org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)\n\tat org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)\n"}]},"problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.err.expected4","displayName":"class, interface, enum, or record expected"}],"solutions":[[{"text":"Check your code and dependencies to fix the compilation error(s)"}]]}],"problemsReport":{"totalProblemCount":5,"buildName":"discordit","requestedTasks":":JavaApplication.main()","documentationLink":"https://docs.gradle.org/9.0.0/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}} // end-report-data );} diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId3 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId8 similarity index 100% rename from discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId3 rename to discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId8 diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId10 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId10 new file mode 100644 index 0000000000000000000000000000000000000000..309a2973b7349dfef129bf60e1c146accf0b4cc1 GIT binary patch literal 2310 zcma)7>r&fB6#mv23xo*72_Yn0oZx^FN!&JQ{32CoM+H| z%dL6!aFQ*|RN56vy|{n@4TA)T|Q2s9IxQ6Q*Mh%Q%{M26+Ud3~F7_>vnY4Ft_7%ml- zB5#}9%G;cQ8@S2PTlKjmcm0OQfwU5LPZ(uw1EO<82YMVh$~i|Gi1XE zm4P+k+wP7!Yu3PRrCj4d)wd6X?YTPcqNw2m8Nr9`u`3|MR3T<9tXe4^N_0S$3VzSP zeLP?ou3P)O?73A-ytc(IjRIl0f|9luHzspbiW%>mN0wt6=dL6;)Jn?w(E%l8w9?Lo ze8dX5TVf~|-nak1eAr}2m%SRDHBhl#zS5{~bAR31c2r5cs^x52zAfj`Vp{A#)q0yJrPaGcPE1tLC zIEa(+Y`|?m#hSCM*orMB+?B{g*>apUTkuj3HW;j}C{6$T^3&hHzkQR_o4p{H%gyDO z-n{bB+^*3edgOk!Rc@spyWeU~l~|+(=$9QU2skmWFFH|1q2U{bTW1oPlphUS4CC)t zrH&pZ6E~BC8>ESNqtGlhxnLe59kKq6Z(EivmeogG)dF^ z1I#>uc8q=!mrgKpjEUxG(!70)Df7-T%-@u)Ir@%6qwf{M57RH@DuytE32NGTT&EL9 zQId8;>v%*zEcuv_UNAM1{>d0j**VD%hQ}}>zltQKR=4>U{lC&61$ksfElw!YQk4`U z(+p4WlvZR=aqvVZcrp?EED=1}37$>_KSw#?TGW~+Lwnq^fz?orzAL&pR9IX_f}b0N4{ry=?4QwbhY)k)F#Mbpz4gqO)5 zqv}l1J1MJlf;%Lp=r!NrBcL;axmW~a(LrgvBr_>2Vu@s$jK0D$jU-7|=v~Jq&9bEN RiU|Mu=?K2YxA+bt{{a{)45k18 literal 0 HcmV?d00001 diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId4 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId4 deleted file mode 100644 index b0f77f5390e2e2d81b6a785d7eb84128de858e3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2392 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 NO1%^%LPr1q literal 0 HcmV?d00001 diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFUserService.class.uniqueId1 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFUserService.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..22b1740a48f2109264a918b6571ce2cbaf3bfd5b GIT binary patch literal 3569 zcmcImYf}?f7=8{A7S`or5H(&1ShNJxShZdV&?=%rgO?&$u(w09z{+MfCL1cfT3cJI zz1UV;ZP9A$M?1ZY1<{$dpZdY+KY{*(PN(nL-N=S8)-Pp-EZo6 zJ<`pSG9(n1Vi6PxWeUns!LTB&rpC0G8a^Hy3U{^d?WN})XN#dI&MnSR5uJk~n8+e5 zhF?OJf+eVCD9d?ERK~cTQPT{|8$uq-c2n1hs%9Dlunfy31Qe{mN`@tK0CR^3CvBxv zo?uv+gX8Rmd+e7HKMAy2K@EaL*HY6Y#pVXbtE~?m(~RMWm&j1YuxW%3rPR0<aa$_V+!iAmSNc(p&V}vCEOVA=2mQkq0V(E>teft9oR`_n9NWrc6ePnr5f=#aCh9~cd-!shcagh!g1^1s&MSAZLJA4(7CX&v@EWsRas6A!oJYK{KgzHN$dS zK*nJ_E1^fh5%lI-+r`fy*&TUs=)YBTBk_absDkIvPtB0vqiVZpP@^2xtPxtJEpAxU z-#IC9Exjpmw`3f{^AcWA@S><(Cpoz>5XGd3NH;{Oy{v#^kfEFszeh_abv}N8CsY~~ z*_!jVwg^A2Km~^pH)zlF_sMC%=YR0(U$5Wbkb~lTx5sfIWie`!A zk6yx*cs%ZuUWd2xT}>aU)S_OVG#BDtE&cfr)ZA)Pa`aNx zmKg-LH{!aQu8*4LXeQ~MwfTjUV|Zjdsd|q;`b)>=IN>I(D7`|kGup|8Jb$1zuJa99np>>9iiFN-_Ks3n7J_FUI1#d2V};ebQ*@5 zYS(!>t)?Yhr>jGr2n$t$gl`#Y9)6U@r&Bg`8CpaaPKIIn_ltWXeQR{lD!_5NLeiK( zF@28G&TbUa3aD(H0&BbnsecNkzd-)UKCRPdIh_E?P-Np&AVE)xV*>*wJuxJ4!o|C9 zV*_1{w;@lXl3^N4Nu;}21zOe?U|Ugj(G`^4!@7Qd!xS2SyN3<^P3t#IA>8Z}Rsr86 zHV1su*j9+60pE}0p%8*e4RHsy(4}=NR$?1!u^o+Qrd0&{=&B)@wNYf`-DM_LDWq+- zU9f0XV86}Ks*o_k7{erLZj*44bCWT!7!P zL2xUuxd}amnu5bp=i~zp<#+>c(tC!taEjgu-6O8;!4jchjYL-ghSPY*r5LB!g-wl1ai6VW_s{5Be+P%| zq7RtF!2HVVrMm0GYMK~A+gb_zWrqR0qtGDr?`kO$i)P%(Y{QpZ*T+OA@DEcbgHia literal 0 HcmV?d00001 diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId1 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId1 deleted file mode 100644 index 451cc7870823fef9763c03acd954d926f952f8e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4841 zcma)Ad3;pW75-i_VJ4Fozy}24#t3L9fe^M@C4fMd8afG(kWfTh9+OA%$YdtYyhMXl zDaIB-tF&Ul0^*K#kxfW|(!E-{*}Y0vx|5;puYdKg{`%c_?@VSUQ|j>JzWeSy=iGD7 zch0%z<*ommIS*hd{^>^n3cc{?D8e`m6StcEW_84jc2=+6ywwUj8pbWLqqeh5Lt(I@ z-3OnB;^d*h%li(Dymrn9zlI4`Bw|IEclMZeWNtXtVu(CJzAZ(9qp`nFDn%xE9%(JfGfAghso6S z^8Uvz4GoPvzTby3>e^xU+Z~y@PE)!r;IB#y#kd;RcyXu`ORM_LCGj@3g)#QNx$ zDN-XlR=tJ_I#km#dw6I-LvX451p>j^miiUz>MN254kr(94fJ72m};?A2Tr1 zi&;8u#7*>zYjw6n`lVOMk3@N79=}wy`w>Ki7nM3@V~&QB3?FDH>a?834h=@ILh9S+ z*pceCw#K>|Kjxy^i+MWcV?nl|uFH9HzZvPXR&UX8Q|8GsGHR4SH&_%%27_vmj`!nc z4O4r}ZmTvH4V%t-+v(yg;h0e;kt0lT<`E`><`x~dVlg$L88SAeD@{i2$VGjLhS@0q zf^>hK^8SKA^6=h~6DI@7XOCWf`q2~y1~e=(mF}{Bh?P=j z(inAw;LVwWTk4xuG&Wa^>^PD<$n=w0n8MG12dj%=VT%`?I=WzMxLRdTZI>C1T9H}m zxo)7Bz8|-yZDpvjR>QTaLX(G#C7_$6mrlH%e0jSMtQS+|Jdiv#I5PM|^3cO0yLXQ4 zeqnA2V(9haZXIzjEy_|=Q3*{KMn4OqTGP-HywcfYeLZ$1oi9oz74FMhvs`ua)U10% zxw)4in(ZrL&NdzQ;bSr#(kjmwi&KsbRN;Xv6=d2<1sdy889NGGk;vAMXC!(+Wx7mP zrFm|;#_*7iL6NSdGF_F52F78v51-_9A)y*M`ic*aXqcNkc=FPT6C!rh#*60y$wPZs z#4qpNH?r%=04cKp-L2zMJjN4b;-sC>FvbaEkr}&^2dl?3<2#i&%HZt8@#7xs(eY_~ zhFH;HrAxEf!&si2x)3t!x8T^To4q+Z(ZYZ_#WGdLM<smi86P|YU8))!U1m_I$| zkrO4#>060B{>sJ>gDXPa=e#`@x6tHBo0GdU+f=8A-*(^ke}PQrA$w@iY9~i(iNo|D}dmf>eG8*wOx2w^c10HQCTLm|-UtAJDKbvl1vmDfD(T z+7Yo5vqG_0cVF+7+xIL+anUk z5usLjueeLU$slwaM0fRfbYIfFO;p>!9!k<*2^E5T3rYTrq#n5aaHoiT}!8 zPV;LF*hY35@!E))NLa+RM8%o#gBM8+H;#cKpNGBpyN2tpOv<)I!hsuDtP0qygP(oO zd)|K$JPqv_Cj~glQEUSfAy#xrfa5s9H=ih*Tp_dejw=XSQKjKEij9(C zlzI@VG$t8SjH&KR({Yp=(@)_BK4+i8`-V_;1`7eXGADbbQoIl20|jUnY&DXoDn+z3 z&E`s3mU=aABVpw*R%lr4A)}n0LOti@o?+as;S8Ex>Pn%5vDRoc+J>>dh$fXA8|5+X zmU}okl_qx;K*=o3!7<9rfIF`1v1L4F8SU=b?OfGVuz zH`oSxy&Lnejh@)Son6epr*Jcl@YCm2ET)@p#Sm`8SFs##^K0W>)ZrrPafuTC#qS9Z zR=L0|BTRHYPU3Z*SBihrtwfP$j*$N}pO?DoWql6@Yzw~VLa`E zN70L2@D3{S{|8<>rqI+i`~+D`=d=*MHp0}78mvbX?%>--+{u4kxC;Z=M7Np*aT6Zl zXT=_DVVc@PzNO zqT&`6s)C$&fA7elBe9pSsPHJ5Xof;&cv)M!5e&_1jkK%K6y(icFu!yGf7XzT37F_c zzJ}|dE11+}cJ>5Y&9Y`r8s%Jp+Xw{2f`aNI|EL{}(avDFt>WXX6#LC^G#K4#$*oW^ znYNA`eqwlVF!tnO6$P|4VDtn7$+k|lZC%J;sTgu_18#IS^_@ z70ht}C}Q}l?C3A_#*ZG14V?4FkDVTQZoh+p4h4&Jmcb$w%M_HPu^#P>pFQWmCm9`1 zVc-f4m8eqSp@GXoA!%c3u>HZVD1$u{H3H^Or@`n1vn3Zkta9Ts8vLkLFu}?N%S$0Z zfvYRH&9th}ry~<}BFyzdm~Wiesc2xbC+al5=Ma5Y(Zt1SzrT8Qas{;56>uAWrD70% z-J@YG?xkPd9RVY1O22$#V*hcfax9JLBcEj+BtqR>UzJ=XmbHl@5$3Gda6cZPIRP_d zI_69oV~!BKAz5%kb?tKB>f+eWlkq;5pR7U$KOHXA<-o*7H`+98LQugCcJ)+lGQwdq zG~0eQZS7#}v+J8z_3R}%GN%d8L~=+@99{CC$k z_*#gCiqA6#7mn=T;f?J($r6a2eo@6X1vBGU55%5167S#bwRYpX_K)m3&)tMyGgN$G z+#YDTKTZ#PShTN4s4g}3I*+79B1StkJc?dfV~IG-91DJ0UD7=BM|72=-~%FM2?p>;blkI^3vJ@g&b6iN6)WrxnbL_njLa z7!V0*Z=AT|jrTvzlVRlGq1fI7-sEUnS@MjA12{+xvKkXXs2LN4v2c%F8Iu4izLH!t zPBq#Nr&nVHhc!GWsxePiqiv3gBgs2(KEj<-=ZhVym=Vbln){SMWDr-ciu`}O; zesMSXnu43sh-{4sx?{-n-~_(m#tRxw;zhQ(RlLY7@8}2xdHw_=JUq2-3aM;pu4*zx zJDpnOcZ4RXtPscP37pdKO?-<|T4fs;WxH{dE!7BevPV}&0_+nL{lT!gy1RXY+1X@l z2ysRCM_P?gi_sYr@AjfAx+%!Izs{d#YXuK+VXW<*xN3}NDi3!-wSYJ{nJ+vcx3$hA zJ!fO2J8a*nJc&6~=F6l=oG#??beipv9=p*Oq?*g-XPZ1djd5{`=B1P~!46r%_^Aow z(*mYIwQ1=>z9Yycq9kXRj%b$g_7?q3ex*ATWLb80qe8HEV(b?a66?&J$-jeOwWVM7yG$Mn|m~-4qFQP0Yrd z9{dt-x$!G;oc~(EY(Xk7;K6WDWQ$oQFG%ttRb#Y9Bb{3n9I^}Fx_sG$Qs_z}90-|R zv;C3CmhO&gUz<}H#Su3Sd9t_8T_q_#wunk26lx4cP4?X1&{5~UWLjT-QQ zFhH(42K+TixV4iI@wX)5$vezMAFlHM`x zd54e~Vg@@>25;8jeTBu%b4tOt`BuiK!e>^=MJQ)D$-v7T#Ws+S(;PKPfHOGDH&ygT zu8>)I#}Wi3t3-F}IeP98@?7wj=#%v8^(od%?O7D+(=T8KpK~tY6N4zdgxdhQGB

    b&ZAk+5V4%N3Nn$S9{5P|bOvYX~b9T*7LLxX4$f{Y}u`rY!SRnD|j0)mGeo+ z!(@I37V*|zj72Cx4N9?wA53c*^(~l>ZH&ZD?(AjRK8xEK*gNqO$}zy_AnwAeScW(G zY49$p@BykZObP$y<==%>7BEW*6N69sbJUlIk8qxW<#C7@E^?MZZRaTI0`1z1hcLuA zxF~5BE_0TJE95F5mE60U*t^O-RUBS6%x`hWP1=u2&LW_1)tE8J z8p4-dD7Wx>R>~dKCXkh?4_U|xx!D5Q=Otxfwk}z-D}pR6j!)Z}VpQK05Fr z9>jmhCCY83j5S`tclb7esK1KWh{QC!hwpNhK}{zp;WeVVov41_LiH4C@dK`9QRXcC zkZaiqd?nTEL{aX&&b=J`2tStiqKz^$sjKiZ`qy5>QU7HeaQ|&< s{H-;B6`)blY%R`r+Ay z+3*;$o0emF+YBSs+Np|Bs!)bQffm5#5>casWITTP- zP~sRznee9LS>Ba?V0ODk%VbDdO(GFTshGr+f@zLhm>D8@bk+6DHp6(scU?+$Y_-h; z%eJkq_VV@eV zCH(L*?VSq^OZDLiZ7^h7rYCrCvbzIKqG1nI31UwAa?o}VBpUT(e>-j}5vJ`+z%WLT zov8P`@N7HEkq@+v{HX+OMDOZR$9Eg%M@#g}!|*k+n>5@4{Q^Li-n5f+N{N9>OY@YL zCMYcpNLm^R*&Ij=Jf`;(^1fmOX|lTZ6HL2?(nFri#5HdBP>D_p+Hwy|+DZ?aw%Wt$ zcbV`hz31uI0+C6hNIzEzQ$(jig%&YE zQ#j7}(MQm+j7&fH0KSSogX6h(m$1a0&agAP_uk#}JAZ%Y>|g)B`V+t>_(n$pNew9j zeMmD5y)ci>vTZsC<*oe}ydfCU_btZ~4;YfO#a$g4^lQ)!T!X=IU5R&uWtZ#qwG{^4 zGo7Z}3J%%XV(qd(r61QZsA0&!FtQBSxFalaQm*^lV@Oy{@*oZ}V&DzjAo-@{w{7!e z(`<2uY#^$<-4>qZ94P&78W@$reY|B_wzN2I;4KAjAG!|T?6mf|r(*)|Xebz%#MGt0 zw@-Y*TMWaEj^~ksJ64NtShj8XDhKO2rg2lljDhzsd!7U3M9p;$7_?*4?(nVe7;>}g zVFtRNm4_t*bGXIO-|)C8cypQ39L9ZFaKS)X33l4eKv2gAxUJzsY5dM*w^arhW@aO4 z35r;WdJ$$SOZETQz+K#9$hXWRUUi*@DV|&6kaoT>9YOJaA5|v9t3;IdovyqD#P? zlQxeL--}Q&rV~OHRnxY&Ex{`p)ES&T8TCKE{Pg$lFTXA5-3~1j3QGkR)_^)TJX=lL zgqQs8&}539)eMS!k4zw?k7%>zINYn+rtfoK!A6IwACW|g)^h0&u+kZ{Qw)^m zPLV6!Iz_%Te~K}B`}P^$Jw>s*oBvHItk83c{vf~*DH*1JNS1avn(ZSPqvtdkTtFW8 zNum^(p?}l^I*~#72OuZpPC6)qDa)}=4lz805jt3=RZ8`hUSi-^+9V*&rq#;+H6f*-|#=X=3ZvEV9JVl3x+!85Vo$FbmiFSry7UX2Bh^@0~- z!Jnyg%7o3)EtAPE3LIqmb_B?}nSO$`Fy0@iY<&bAm%PbI-sDT8sVI9QoVlSy@6z)g z(Q%PDvqXHUC=+)AHC>*JD|$UzlOiY9y9sz2l4Ft>Q>1%dGUp8M w(~_e*Pxsg>d<66+=V2tq$u{BD^dA@i~4q2bsC#@YmokgynRZG)0ByigU?*H|EWZrK-N@>U?E_wqT^PxTyy>f6#ntp@BUa&>7_qHi$t~3uD ybR+DSf7dN`Bp`6YX99+Niy=nnZsOt0zGL|8pR+r_1?!i%vibx8YXaBSneG6ZI*9=Q literal 0 HcmV?d00001 diff --git a/discordit/build/tmp/compileJava/previous-compilation-data.bin b/discordit/build/tmp/compileJava/previous-compilation-data.bin index 9b0be2f6e3aadc8c506189b46337082f8e1ee5be..c5605d619de4a9a55d27d1d495c9ea1b752341e4 100644 GIT binary patch delta 287 zcmaFD@|I;naA@j^b&)d)E3^upnuc%OpfArKEa1x|$k3izT%4Gm$|i7IUNPu{o&D9; zfMBo8pUjRzp~8A1K66G1X3kq^FlM_oa^Ya8YvOUojdHnfcj@`{v%RO!( zlerkB>W?mYu)0^N;kDeIT;&NCy~;|y!h!<7tRB8QSIhIXUN>QNU_pM6aIo|A!*fr(v~fgec8Dl-T%GRiVZD=>%wX=Vm?Nd^U=xU?*T fBqNiUEE5AegAzyqzcK?mkY-?z29lF!F`fbdB8pgz delta 287 zcmaFM@`PnVaA@7^-%SkPLnl7d-P`cv0Ba9_uz)XcO97C&DVp*a*Lw7+zPG)jqNoIbYz&b-glS@WjFD9Lixzx&B zy>~Jfqg4I91JjC1<(h&RV;=pLu2|@*N3)eHDM_V0O;eEr_J#9KQ#7#JCt*ku{`85tO58H5-aWtpTE7{nNvWF?sx*clXn gveL2)l8j7ZvLHS?PyqvjG?-*)U;u&1YZwm#04C;RmjD0& diff --git a/discordit/src/main/java/JavaApplication.java b/discordit/src/main/java/JavaApplication.java index 748ff7df..648840af 100644 --- a/discordit/src/main/java/JavaApplication.java +++ b/discordit/src/main/java/JavaApplication.java @@ -45,7 +45,7 @@ static void userCRUDTest(UserService userService) { User foundUser = userService.getUser(user2.getId()); System.out.println("======= (READ)유저2 정보 조회 ======="); System.out.println("유저 ID : "+ foundUser.getId()); - System.out.println("유저 정보: "+ user2); + System.out.println("개인유저 정보 조회: \n"+ user2); //유저 전체목록 조회 READ ALL System.out.println("======= (READ)전체유저 조회 ======="); @@ -77,13 +77,16 @@ static void channelCRUDTest(ChannelService channelService){ //채널 생성 CREATE //ChannelType.PUBLIC(채널의 공개여부) < removeChannel = channelService.getAllChannel(); System.out.println("======= (REMAIN)남은 채널 ======="); System.out.println(removeChannel); @@ -111,7 +115,13 @@ static void channelCRUDTest(ChannelService channelService){ } - static void messageCRUDTest(MessageService messageService){ + static void messageCRUDTest(MessageService messageService) { + UUID channelId = UUID.randomUUID(); + UUID authorId = UUID.randomUUID(); + Message message = messageService.addMessage("안녕하세요.", channelId, authorId); + System.out.println("메시지 생성: " + message.getId()); + + } diff --git a/discordit/src/main/java/entity/Channel.java b/discordit/src/main/java/entity/Channel.java index b8967548..63a1e8c4 100644 --- a/discordit/src/main/java/entity/Channel.java +++ b/discordit/src/main/java/entity/Channel.java @@ -9,7 +9,7 @@ public enum ChannelType { PRIVATE } - private UUID id; + private final UUID id; private Long createdAt; private Long updatedAt; private String channelName; @@ -19,17 +19,18 @@ public enum ChannelType { - public Channel(UUID id, Long createdAt, Long updatedAt, String channelName, String description) { + //더 낮은 시간대로 내려가면 차이가 있기 않겠냐 + // + + public Channel(ChannelType channelType, String channelName, String description) { this.id = UUID.randomUUID(); + this.createdAt = System.currentTimeMillis(); this.updatedAt = System.currentTimeMillis(); this.channelName = channelName; this.description = description; } - public Channel(String channelName, String description) { - } - public UUID getId() { return id; } @@ -62,7 +63,7 @@ public String toString() { "[Channel정보] \n"+ "createdAt : " + createdAt +"\n"+ "updatedAt : " + updatedAt +"\n"+ - "id : " + id + "\n"+ + "C.id : " + id + "\n"+ "channelName : " + channelName + "\n"+ "description : " + description + '\n' diff --git a/discordit/src/main/java/entity/Message.java b/discordit/src/main/java/entity/Message.java index 3386db0b..df4772b3 100644 --- a/discordit/src/main/java/entity/Message.java +++ b/discordit/src/main/java/entity/Message.java @@ -7,4 +7,59 @@ public class Message { private Long createdAt; private Long updatedAt; + private String newMessage; + private UUID channelId; + private UUID authorId; + + public Message(String newMessage, UUID channelId, UUID authorId) { + this.id = UUID.randomUUID(); + this.createdAt = System.currentTimeMillis(); + this.updatedAt = System.currentTimeMillis(); + this.newMessage = newMessage; + this.channelId = channelId; + this.authorId = authorId; + } + + public UUID getId() { + return id; + } + + public Long getCreatedAt() { + return createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public String getMessage() { + return newMessage; + } + + public UUID getChannelId() { + return channelId; + } + + public UUID getAuthorId() { + return authorId; + } + + public void getAllMessage(){ } + + public void updateMessage(String newMessage){ + this.newMessage = newMessage; + this.updatedAt = System.currentTimeMillis(); + } + + @Override + public String toString() { + return + "[Message정보] \n"+ + "createdAt : " + createdAt +"\n"+ + "updatedAt : " + updatedAt +"\n"+ + "M.id : " + id + "\n"+ + "message : " + newMessage + "\n" + ; + } + } diff --git a/discordit/src/main/java/entity/User.java b/discordit/src/main/java/entity/User.java index 47ee0cdf..b809ddf1 100644 --- a/discordit/src/main/java/entity/User.java +++ b/discordit/src/main/java/entity/User.java @@ -51,7 +51,7 @@ public void getAllUser() { //TODO 업데이트 추가 - public void updateUser(String displayName, String email, String phoneNumber){ + public void updateUser(UUID id, String displayName, String email, String phoneNumber){ this.displayName = displayName; this.email = email; this.phoneNumber = phoneNumber; @@ -64,7 +64,7 @@ public String toString() { "[User정보] \n"+ "createdAt : " + createdAt +"\n"+ "updatedAt : " + updatedAt +"\n"+ - "id : " + id + "\n"+ + "U.id : " + id + "\n"+ "name : " + displayName + "\n"+ "email : " + email + '\n' + "phoneNumber : " + phoneNumber + '\n' diff --git a/discordit/src/main/java/service/MessageService.java b/discordit/src/main/java/service/MessageService.java index 6150e794..fb5e2e6b 100644 --- a/discordit/src/main/java/service/MessageService.java +++ b/discordit/src/main/java/service/MessageService.java @@ -1,4 +1,18 @@ package service; +import entity.Message; + +import java.util.List; +import java.util.UUID; + public interface MessageService { + Message addMessage(String newMessage, UUID channelId, UUID authorId); + + Message getMessage(UUID id); + + List getAllUser(); + + void updateMessage(UUID id, String newMessage); + + void deleteMessage(UUID id); } diff --git a/discordit/src/main/java/service/jcf/JCFChannelService.java b/discordit/src/main/java/service/jcf/JCFChannelService.java index 20d0dd23..9b642fa6 100644 --- a/discordit/src/main/java/service/jcf/JCFChannelService.java +++ b/discordit/src/main/java/service/jcf/JCFChannelService.java @@ -19,7 +19,7 @@ public Channel addChannel(Channel.ChannelType channelType,String channelName, St if (flag){ throw new IllegalStateException("이미 존재하는 채널명입니다."); } - Channel channel = new Channel(channelName, description); + Channel channel = new Channel(channelType,channelName, description); data.put(channel.getId(),channel); return channel; } diff --git a/discordit/src/main/java/service/jcf/JCFMessageService.java b/discordit/src/main/java/service/jcf/JCFMessageService.java index 93943ae9..972a6cc8 100644 --- a/discordit/src/main/java/service/jcf/JCFMessageService.java +++ b/discordit/src/main/java/service/jcf/JCFMessageService.java @@ -1,4 +1,41 @@ package service.jcf; -public class JCFMessageService { +import entity.Message; +import entity.User; +import service.MessageService; + +import java.util.*; + +public class JCFMessageService implements MessageService{ + private final Map data; + public JCFMessageService(){ + this.data = new HashMap<>(); + } + + @Override + public Message addMessage(String newMessage, UUID channelId, UUID authorId) { + Message message = new Message(newMessage, channelId, authorId); + data.put(message.getId(), message); + return message; + } + + @Override + public Message getMessage(UUID id) { + return null; + } + + @Override + public List getAllUser() { + return List.of(); + } + + @Override + public void updateMessage(UUID id, String message) { + + } + + @Override + public void deleteMessage(UUID id) { + + } } diff --git a/discordit/src/main/java/service/jcf/JCFUserService.java b/discordit/src/main/java/service/jcf/JCFUserService.java index de4121b7..d257dd1f 100644 --- a/discordit/src/main/java/service/jcf/JCFUserService.java +++ b/discordit/src/main/java/service/jcf/JCFUserService.java @@ -76,7 +76,7 @@ public List getAllUser() { public void updateUser(UUID id, String displayName, String email, String phoneNumber) { User user = data.get(id); if(user!=null){ - user.updateUser(displayName,email,phoneNumber); + user.updateUser(id,displayName,email,phoneNumber); } } From f93e6c615cddfb9df23ee81246e1a426e39c4f3e Mon Sep 17 00:00:00 2001 From: apple Date: Thu, 15 Jan 2026 18:56:08 +0900 Subject: [PATCH 06/12] 2026-01-15THUR --- .../executionHistory/executionHistory.bin | Bin 41517 -> 46029 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 20297 -> 20297 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../9.0.0/fileHashes/resourceHashesCache.bin | Bin 23291 -> 23869 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes discordit/.gradle/file-system.probe | Bin 8 -> 8 bytes .../classes/java/main/JavaApplication.class | Bin 5305 -> 7079 bytes .../classes/java/main/entity/Channel.class | Bin 2310 -> 2310 bytes .../classes/java/main/entity/Message.class | Bin 2267 -> 2293 bytes .../java/main/service/MessageService.class | Bin 478 -> 481 bytes .../main/service/jcf/JCFMessageService.class | Bin 1573 -> 2590 bytes .../Channel$ChannelType.class.uniqueId8 | Bin 1117 -> 0 bytes .../stash-dir/Channel.class.uniqueId10 | Bin 2310 -> 0 bytes .../stash-dir/ChannelService.class.uniqueId0 | Bin 625 -> 0 bytes .../JCFChannelService.class.uniqueId4 | Bin 3765 -> 0 bytes .../JCFMessageService.class.uniqueId5 | Bin 300 -> 0 bytes .../stash-dir/JCFUserService.class.uniqueId1 | Bin 3569 -> 0 bytes .../stash-dir/JavaApplication.class.uniqueId0 | Bin 0 -> 6964 bytes .../stash-dir/JavaApplication.class.uniqueId3 | Bin 4754 -> 0 bytes .../stash-dir/Message.class.uniqueId2 | Bin 1522 -> 0 bytes .../stash-dir/MessageService.class.uniqueId6 | Bin 117 -> 0 bytes .../stash-dir/User.class.uniqueId9 | Bin 2433 -> 0 bytes .../stash-dir/UserService.class.uniqueId7 | Bin 491 -> 0 bytes .../compileJava/previous-compilation-data.bin | Bin 621 -> 627 bytes discordit/src/main/java/JavaApplication.java | 72 +++++++++++++++--- discordit/src/main/java/entity/Message.java | 6 +- .../src/main/java/service/MessageService.java | 2 +- .../java/service/jcf/JCFMessageService.java | 17 +++-- 29 files changed, 77 insertions(+), 20 deletions(-) delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId8 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId10 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/ChannelService.class.uniqueId0 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFChannelService.class.uniqueId4 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFMessageService.class.uniqueId5 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFUserService.class.uniqueId1 create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId3 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/Message.class.uniqueId2 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/MessageService.class.uniqueId6 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/User.class.uniqueId9 delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/UserService.class.uniqueId7 diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin index e14980e45b925fd3a783768e9abfabc2a3ecff45..d2567ee7162d4c8e9b270cf6e9b6bbd74e3d4303 100644 GIT binary patch delta 630 zcmZ2`gz4;arU@d9tP@3zc^McOCiF2d2+jvG0yhR85uYq6p~bXFceAU+i%xH2pv-h2 z?g!$&+38t@m8F^Hh1qH8=H>;-=2_WgCB+#zIc1dsU;E{ngT3axXM4VW{aq)<{R$W& zlN;+@H#gM3W)o=N(6i5dinCMj4%-b0^S8!Mo*$Aga7_D}eoLCqvnxH)9dU(TO_L{< z=1gXpSu1e<(VnRc#h$!%FC3cgi%pl@JaOh~Mj@MBCfc*iZd-f!v_3x-d(@S2@npdY zrO5@ee+nIbzcX&CyvF(R7n0leeJK}XoHKb{m-OWR%J|9Q-30=<7uxTe1w1rccK7Sn zhg<9ROwOySpB&bs6S?c#g{D2mcR3jQoHG*h@=|m3l5-M^ix~tqE>sV#bPzR*5Zn6G zGoVL)H&|ht5M!TjYH@L5dMZreFJAY6H1$B~Ye$|}2HO5zuokTF>*UILS^~<)Hl;A- zd0x0%&a219+>{IFVKvh92UjyGU|t+JChWJyb0T*JOx)+zO0V^C*IYId6Fr{~+7_ZZI;ne0;| zF?qp!0qN6E*R}64{wU4NAfU1ED({4e=T^&9`UHoHo>QCLUn3z^_`Koyg}-ZMo;pt~ zt(mL1<{H@ahs=zVCI{9CPZn4pt^8a(eE#Zr`FkIjOm;b}&65o@>RacE+N7?S4HD(kMZO@#tq!w3cV?(ukM`5rJA57sqlB{ac%|%#@YLSZ53qz1J;L=wY^<}cAB1h zq1ovZ9lckn@!Q@U2auv&8T!c(MQjs*w4O1L&;(*d5EeLBt;3XPoNu1$A0KA)Jp3t0 z$3Z?hPoN|a$i10-(7TJ}!0XlbC;R(INo-uG9$M)jY8D~3^`~b*k32~Afe>r!$&EhJ z^1SW=Y3hN}*N!}|47B~b04k>oHi&`a>*U=&E($MdV|BHoK4%}5(JF7wx*Y+rPF@wF zNP78XdEW@2b(>C4uJ+Yq0U8}Td9AOM!u?W*%PtNN;#BTFIl8A_ARnqt9iok?c=B^! zmwE}i_K;=nAGevVCVw_Aonv+Cj%=GbIDC!@26%5baxKK48E$%(ZTp|var9J0MH04hyY70$Or(NjGSNq delta 521 zcmX>(kMZO@#tq!w3J2Dx_I+Q*r*9dtm!#Jpfc4B|ZEu&L5cx;8 z;Wz$0yXC@udD6lCZ^4R`mMw!QVzUO)dd5IP6NnW-SYYKD?wc#u%4!NZKV{oAy&xK_ zLv0V#Skd*94|;d8?2_W#H`(7uO5*5}2djIP8eYrY$yJ_U(W?wr9dC1Ca-)y5yw$^Z z=W2PL*6Sv$4lKwIg328OS_1?ew);$<@AkAjX}^Ykj2@R#)rhJQWo3&$YUKw~F`74XC#75N%Aklb`##)a(5e zi}zvtV_{gU#akr!lpn0fP<#pm>yablSu_k6dUQ#{lmAAu@aftXEo@_IitJD|ItL(JgYifP7edBva)cJ^0W h1A@IWe=<8l&A1EE!FX@7u)mrB(1`O80hU;h5dbh&oihLc diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.lock b/discordit/.gradle/9.0.0/fileHashes/fileHashes.lock index 1523a7d05a3e9295ff384db8b372f738dca33b33..d3a429accb1b47e5332709d1be59c84f0c83f415 100644 GIT binary patch literal 17 VcmZQ>Zi(JD^~t+O3}C?G3;;m61*`x7 literal 17 VcmZQ>Zi(JD^~t+O3}C=~2mnDg1}Xpm diff --git a/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin b/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin index 291a9b5fc0bb73e602390c038c581d328b7e2381..12aadc7a8092299ad25cc2b6236580518c81f1f7 100644 GIT binary patch delta 961 zcmeypm2vMb#tkMCjPoX&N_-HQ^yi7;e)+YM3}6twbh51E41qbnloeou~J2_NAK|tPb|KzBD{7g_2?I-5~1vTGr zSgh^J;fD$~Z*Eo4U=%RU+Px%O%ODY||L5eTiVXs`New}=zukU91^qY6Dn&2~L|$Y$ z>A4|38EU}G&AG}Bi~^01H zLwuuw1?Of*k6l8Or+V_&Z|K?QKE>H7c!%wVg!x-zf$HUqfdnWf1VLEfnD#aOmNcJd zS9+v7;tIW*FjZXRu=Ti-k$rwqaL|J0N1j!fDq^|!%&d5pRnGKF)m8k>j{67|^)PD= zzuy@*RbJzK`3uSI`@WQmA(X&W*hI>OJlA9D((g?Au||FSCQKEfb~hi#pVeZFdux>( z#=Kt(Q-#eg6YW`Mx2-*VTA!baJ?hE;v>(mC1#91IUDvMkrZ!_ws^!Z3N=!rC@8rF6 z5}(v{GNM!U*2`T9m?}PfJ|))GVQ)3ReyTsi+=Z@~D!83Iyf%L=cCJsEsM4@u?diFg zN;r@7X3vQDwAC^FTh6Bk))JU1vg17$R+)HJ-gt3nXUIdIXiOFT{oCg$cngMH|1`70 z?5HYIz(YgTT!7i`>w?#7m?urH54xP#cpa1u(L&_>qdij@iamMjUN|(}7n=@B8gc*) C8VTb7 delta 103 zcmV-t0GR*1x&iyO0kAX}0gaP281R!l8IY6Z8A+2y8mE&58!(ei8>q7l91sGNH6HPk zJ|FOtMj-E#O(7VQeIXdLtsx)*ljS0Kvvng-0khpCI02I_CXkcWCOQHQNwFdL7qKwV J3bR2-x)LMGCtUyl diff --git a/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock index fded95610e9551dcfb0ab14dc75b7830a359e979..64cf685e35da45ae72447fe0191cc57d3f67d071 100644 GIT binary patch literal 17 UcmZQ>_0_1)+G*X)00vBd04k0ITmS$7 literal 17 UcmZQ>_0_1)+G*X)00vB504f{<>Hq)$ diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe index daa14ea1b798daeee2d58e64dc7ab1ed9eb0b5ac..574cae1a4bf02dcc71406a485eaec9b873d94b0e 100644 GIT binary patch literal 8 PcmZQzV4Qs*#PS;e2zdhF literal 8 PcmZQzV4S`4(QIA-3E~3a diff --git a/discordit/build/classes/java/main/JavaApplication.class b/discordit/build/classes/java/main/JavaApplication.class index 6c55a10633467ef56a67a39efafe02a444ca39cf..e9dda19eb0c79ecad5ef4a1e633054af012bb083 100644 GIT binary patch literal 7079 zcma)A31Ae}8U9|f$t;^mfZ>cFESDzXh#VdeP#_5s+(b+WiniJ%8N1*`HvrsJymv$*RiY!lPA_wtH@#+AIP^_Uu$8^jP$n*F>Ag9SpR5c11Ma8zh?TJXV zw7$NoqAY+}DAjO^j@g)#Zm8vQO6~|p+s$(?6*$Q&*+xd0VrYRy1<4?&=IJ;UrwNQ{ z4sS5aqk&MKn1WXo!P^v$)+NFTv-0u=vn3IU#{yV{#X6Q?sX%}ptTx-)!cC^Y zNXLy{t0lTCbW~y)T}Emf#1oavQV!3A=W>DR4pNGUlL`fsIl<)ayZgEy3nuSB(0}jE z4pU3-I+Y}n1eHWp|esdSfk@ythCKp5{=qArlTShX-kylp%!%- zR_Un6YJmdFQKTEHJkn62SNoM}4RafUTrrN+tO0<6(+p^l62IU+B`!6BiW)`i<@ z%*)A-Rpmmt;$j__;0pr2m^Ga4XoWbLE^B43G-Tw0gUHoVdsD}yXdY`!mbPvxNOdmPu@P5LoklZiI_iuVppImGrI&GS zW%ZJ(n&Q4|_9b_+UfE^K!I1$UB13RBHfi{Zj%#qOzzM3{l&=fNVrF!z`d+oMg}%>S zS-&(?RW2~zsmz0rv1V>2>GAHv$-SHWxSplM?gx_xJNr6sPwv{>x8;VuEqi9=;YQq~ zVT+ENaSQS1Y$J-PyORXClc+I)+M-XBJ|-kS9oX;3R)NXMr?&RpwIjLf`k*zNyzb`y>kf0)wQG_e_Y7L;Eb|B1 zG`eKH-%fGqzBjms&yzmdp<^d@*}3leVe-J>XE=s|*qx?_U6U*=E}89ABNt`{a%Cxc z&{M^Ns*KsSNU5J$i*Ce2I=&`rQ9g?$YmrjXfQE=4`?+b`@wYtqu)wV3&c}{-cS}I3 ziHDvHCU@Pzt+fB{uD+YL2EE?2Q1Xb5Z{kr(u(Q#1!mBLe{7$3bt>IN7KS z&dkOe(XHb#nT`2&HY#=eIO64!k$N_>RO&Iv$MI!r@sALlbt;*4{kEJ2dEch zF8m;s3rdWEAu<=9!H?uN{$r-$fXEM`*-HY&PK{MqmZG=putX~$r$Q2t_KnxuvQ zU`lH@XQW22>UhnAeplfY1S2});-?+$j zV>4}leS_eb)&32SxiVw;T@wUp4$q$NTs@ck>mz z;4EoriAH!XO;G+WLxBraa$_EebipJ*t(-WA=Oar;dN&19EAwce~WGaj9kL z%Bq$B*6|HtkW{nP zH}4cfE{(Ux)TJ)q_Nn18Pnoceow9hD&G8O(a2lO%9S;-A!igCR7pCcXCN<6HQNCeA zb+|>X&{V9X(DeP1#06^7wQQ_wSwR67&*{=c-7-rNQ@Zyj4K1)Ypww|B-!{`- zF!_@VQWRy2mJ1QL}AoC?4O?-ty`16KMg*xNH%fskSYfh&zG3 z`Yg_*T?gEmB~k%(=1D2Q(|*1hbrh)dFt_Mk7H4~yr_WRo0I7Y%emJqLIfqhH6OM># zo+&c7U02GvoKz;bE7c?uxQh3d*79h$t<5Cr@>Jf*C~2ZjVA=qn3>JS))YHqKPRdJ; z4Hit|UXsPP67a;%YRQANz(@R5%5Nb@OO8SuWG4$Bvz61paM?h&34{=mfnV-w9O2@u zFO!i5h-D>)W(+a%dXeu#sKgjyj55YpKdKL*(3p4xllVRT2u|+7%*Qbout#PL7%@)g zjN~@oD6<&U>_tHh7tcI`v*eUq(u?ve$U)<5n-3>#&Q%WQnU`!q{Lm8}VLT zmIJ9oyRC#ZWvRx+O3yE5K}pS#lwYzb3v);zc~h#z`^y&ZgY;?*UobA_Q;^S!!c~|^ zkB>w?M)8TTm~Rm!n8!D_Wei&l-_S0?X{4UZXN-A>pbQBt#FboqE6(I~YzZF1Qaplk zyod_C!q=kLupIB;9P}Z?D4v54=m%a`#c+VAB?)tgr5}otN=qe#*>zqAp-1WQInTN9(&o8zg_4eA3k!QA_~~c z5kt9ZG^y;lVeZ^8&JE|>H26NIVLWjaXeimBo+_hR^txiF6);C#=GqpFpk?SjNI#Bgvj!a$Z&4!#eE8CU$vJJ zX*SXQ&azCTJwQUne9!+wTGuBcZLf>8ZN@(1>%I7fk6@MfIbbW1QcWVw*7J~sG$~aA z*f?xcT0oXa%T-7_s*nbSu=T_hu$Ip^4Hyp-Q~8i}8k&fc^{B%JA}oq#{<{(_=)`4w z1!={@e0J()gpZ&D&+*OY1zdrb`29Mr!W-CxcX2H~L?^4oW)Z-3!r%kTRBUn4^e{1G zh!GZsriqba6g4OiW5j5V@!f`48pB=|<-aV(vX@P%+eM+o5M@-06F8Pb?o-4#j^(;& zvZ=-sP4?V)&Pg;)K-R~&8@U>8)X?SpNf3d0N*M8+Y{N*rPZ`9t(0kAm;{WOrgi#qlR9I;;aW-OKLMoQ%Tt zQ<4%+KU0CVyQ+LRL4Dl@46*sV@$+8%GTSOkzqN&w$YD#i1dGz-O$#lOsU|J?z0yZh zj5URpKe}kiw(8MZjHN$srH^i-m+r&}+{FsD6(`fZ^KlQW%6(Xa9SF1fB(RH!xu3Cn zfD{j6H}+7iy*P$_cozHdDzpDhKAF6ON4Yf}U?LwBdFXag!Wf7X#RSUp@vtya1Q{W} z@QF$6Wl{16VlpdAHs$w=sqFbExm!$QFNg9j7bi(gUNV2MR*-!Qax>%Rbn$1)5Q$Z`f;LFKzX>pC@T%JxGLW=Ivd$yCTX(7EK$nu zl^j0>LY!u`XISk5t6gZdXIkxIt6gff6;`{3abrSZH-t-uJUF7YIKS778i+5VuF%fD5K8qt|M$Lw04@`r zCeM1CrxT)av4%^KB`4d{#ieqoJxdIdhwZ&xS7;c5q4GC-ipPT#4AamZ!{s4IV&9P% zrQk{pe&h;7&ndW}AY(yAQE`U9sJueJQC?IT5U^jEI#P!nc^WRl82P&+F=w1WOn77M z$+a8Wb{q&VTN`euQ!#s;QbxdN^eyY_@P z*Qh9w^{%8&WtgYndJXeYE|0pZQUh3^;RYj188dF=q`?z%RNTbl^*On+Cb?}zW4L*D z+s-X2D&-udr?^?JR(w6Gk*Xlbpg?IwQN_ZHA+rlgO9RC^oaomHWmv3X32NnWrJuM> zCaQhJ?J`%*%qYVO4J$E}hb#Yx- zD~Gt#&MU)x8rEStVP*x20~LV?jEW8H#(8p+Ti5bDxE~D)9?5$1$z~=Y6xMUJgsG`EjXazaU7J{QJJza>Pp!sIz2kdAL-4+^1%Foa$0n?bjJ*c zi)}YY_B>E#$IO?NOxzhWNmWV$<>dv10T~l}wych=h`|XD+7MQ7(zs3EN)dM?4c{3@ z+0YPfs7VelsSnpSWhDz0Kd>DU>&T(Wrs*enDlR1nzX+TaZm1=Z$yNZbpcQah`t)c4=08i1Cy9q?~CPfth(@!A$QhU;11^ta;)n?QWqmNnrO8+hR&SW<~k z5iaSC_c~O8F47m*Wi~IRzpQNTf_do5Zrb=R!K)+qb5TCQRR+JpuzL4GG*PkPNlL>F z#NrU8W(D9dj&P+KbkM?N@tz3;;grYXhXuX8TF^6u0XB?oMuI-D1zq{|(bx*#K3oQF z!Lal)m)Y%0{c@VUAq*DCa?ow5Ey$ss;0R%aV7<|1v^R}l`dEFuJ~4!=oM42WZ-IK# zg6-9r8rjNJ8zR6?BecK@O>joQoe}VvCb)5UyLtE-IG1`nqHq=xaUo|@D*C~TVenxr z(m5nDFc+DqL|-hXXF0FTJqY$kBj?;!WMLP-t+>iHdDHe>vX*`W**xN+j#b>G6SZ+6-qh@E3MR*=Bz(J&Lc#)bDFEOh#qfB2A zFLyX!rc*VZN`$D_=}{Pb+S`m-`W(GDgi;6mTvg~d>I=t*E8#dHOQCNW$_n>{9(7yLWW3TczKruL@zc16d|z_gMQm zQ_djQs=d}E*T8idJ6})!joX#rih#Q!?AHH}-Dx<7ofyM;KNd+Cj|(sX{V@?EFqx|< z$j8+v!Bi~3G*of^-;U{6kC~{)ENtR;8%O^x%;94wApxa$i*xuR%tP=vuE(!TGv3Sy ztKE2o{DY-V;5EEXGLrBi-k@e!#lLOIyknX-er{K zdzU^H@9}O~54k!>mxIN6v|^*5zg(~WP+G4L9(I`Tk<@H6DSfP?AJ$Xv%yPhu%)N<# z3wiG=`H#5TJcido#0T6qsHgCx$5>EB7ko_3#^`u_f=_vjpqn@I^T=)r>9R8=VLx_E z*^4Isel+vDJ2$NrdpH30pBXh){l&yw!hy4tZ*Cdi-*U5lvIT-KaGYQ&;>@SQDGImQ zTBFF9^w{tf^1r5%4G+HI9!{C^dsF^s%AZa7t0{joQj&p%L5hK!L54w;L6$+DL5@KMNNO@DOkT+rHQ9k(Y_cS~ z`s7+59R{R#0qMy=`a6)mz^=|{JlT<5bTTi8Ij=bbD}x0C7lS2(2!qw+K#mMXyUDva Fd;ov+7LEV_ delta 109 zcmZn@Y7^QZz{bclS&*$>QjCFxL7ah`L4rY)L6Sk9L5e|zL7G96L1ywwwkSsV$&T!z zlO@^JCo{8)O%4On4nTS`kgf&N7l8CGAkE8R&TGuT%3#94#bC-H!eBNzkRyZ9YVs}) F9{?#H6-WR8 diff --git a/discordit/build/classes/java/main/entity/Message.class b/discordit/build/classes/java/main/entity/Message.class index 8ed275d4a7322c1636a81064eb73bd8870291d08..a2d40b3ce828992a865f94001c7a6e474995cabf 100644 GIT binary patch delta 100 zcmcaD_*HPjVrCWF#UvPAvTlFS_a&`?ho>&;783<6p@lNC6$6%`;n23rO@peRrrteg?d(qPbJV49r7Q3(LMxDpru delta 74 zcmew=cw2D8VrC{$jm=w`UomnrF$gjUF)%PNZC=4z%f#)&z|6n|u diff --git a/discordit/build/classes/java/main/service/MessageService.class b/discordit/build/classes/java/main/service/MessageService.class index 5f9cb5c3eecf294acd65e3f119aaf303bfd5e38d..63f721aeafacadbf2d315afc06b4df5d8f7c9c37 100644 GIT binary patch delta 25 gcmcb|{E&IV5kB7Z)Dp*>9N*O9;>7gSjpz9p0fgrX;{X5v delta 22 dcmaFJe2;m;5pJ&Z)Dp*>oY3ObqK%jM83AZ!2)Y0O diff --git a/discordit/build/classes/java/main/service/jcf/JCFMessageService.class b/discordit/build/classes/java/main/service/jcf/JCFMessageService.class index 9b665fa889050a1fa977ecc6756e9f3752f8313e..b64f6caeec7fab772dc965de34af9392c4571c13 100644 GIT binary patch literal 2590 zcmai0-BTM?6#v~MWg#pOLQ9FZl=4vtU$NS1ZD^mhRF zP>v#mu!4w+3ut19?ecw|(z&snTHf3hd558CQZqE?K0|moxu&3*q0==gJDQ%F=l0Gb zFGZms+=5o93ffe(ql4k9Ev$VlFH*btt<;0e+@i2;zAbXzE<>ci9nR2^Jx3#?w1Q5C zc40W0bCB|VqKKhOGQ7xed)RYuIp!QoGq%$Kh}G4FnY#DnnndVUaTz@f7q*47P+*7; zCu<#B@f@C4a7D#c^fI(nQ6mLPWfJ60kb$R?A2Fa?+Q$xVN%TGy*U?Wa$ z3I-Xv&dE$!7C*>pwj&X5sCWUxRHuEemxayHQKuq-NoJ%Q zlw`2#XQ(t<4;Z@7hNgB}T5{U9!JV=t7;XmImPTeW@aom1dV13L(==@vvp}vLSIEWR`{k)JMpZU=lUAAH2LmtMw}gu(!Z8HqtkGP2{y_Lg-UnKG{~!t+j$qeT$9-v zvV>`fPb-*l4rxZPWl#Ks1AuK>c;C-GEw1 zBg{5(o6_})XZ1NE$C88@tQtbOIay0UmZdG{@cbSX(HFk0AaoHJxUPCuYot)lEL(Xo zr^y0#*PX2sQe(<^+B6;8v3O}wkRAoQqX|1vXxLS-CtF`9nr=BV0jUA|8mE+1mNi;Bj6tMTt*5JVT5E-uP zIn5F2X3#uM-1C0=hG%B8vn#X7(=UHK{qFIzuOIh4`{A3@ub!NK|3%-KO_VXH3)DSU zM(4IIYz3dt!B(e3qx2NeQ1t${DIIy97IeiOUy-ljK(caZb(J|pZ4 zwAXin*v9DC_z~iFBO|{enur|YQX+DUL>TLd$WLSw!a077Fgxk$i@W%@JPaS7(6EA4 ziXc~OSSL@pdY4vV^1Fx)yhr>P9^rj@dU=Iht9BWC^cdGd_ye)?s4{=hr7W}Q_AD#W z+VKG)Gy44yAJKObFYW8pd4horiFu46h9e|vA+H1k>hvK!=|3hwy4vU|0Y4|e2z@51 z2riBPiI(xvu|tf>3WQyS;;!L!szg8OGk_ipxj{xefC}$~&znG9y+Y*C>S_}PC$wg; zztN-6|04{W$ooVJl%cF}uTSJfSEubHV9R5IZHixnNpDeFm0-a^;$Hxlek}k1 delta 573 zcmZuuJx{_=6g{sLo6w4i#JCVaP+L$cN>M~boLSvvK!a&C3cB(K+&Zwi=`3+E4*mdt zgTKXiURwl>X?pH`@7{Cn$9qUV8nKVBw|4*sI3C6>MKz6#hGhd;HyLXVxddkxn;>9%jY(`eqa6vrDxnRy_T`_ypJP7)S<#)?lcNK8O#G_v5pN|fg)_8<$Y?U{+KhzyaZC1 z_c>)M1L=?>y-k$JlHL}!Szmf(dJ*!Ha8O}QfgS7;Ek-M}GD{K95+N(ej)6tL!h($U z2|-&jrAj%$Zx1=1q)5>}1L`Z5{>r2#hEqe8U^O+e_W3kHBX#P?rHCP6vX3kZ*Styx m(Vsp<*oRz|!=dH+4^a=*9AD%gHFG=_Q%6IM!~~9fV&fYM&^6xx diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId8 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel$ChannelType.class.uniqueId8 deleted file mode 100644 index 4c887c4b463a8a7fd40f8bc13186c32d8ba2fa06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmaJ|G3bg_#9CwP7;N zmMwnXk6L!0(#0A#Xu{3C&pG$?{QCXvCxF*@CBny$(kHqv)d;IwHt02T}!h^1HuVerA5~*bxd~$c@L3qsx+;K-6Dh3 z=#K^+eb3-i$ga@x{9crIUmx0U`$JpAHXZS{#t2;}aSoiD>D1SZN2TRW+H`^xEtHd7 zs{mP2AP`G&)zM3U{0vqJ_k_F^viv8FA$>*U8qv?>F+8RJpz|gYegV&1{5E_}REo3Q z74BVwalG#qK1&gKf`Wpa^G=E(6tB1mfj&UYt)(xK{Ng-&%iYjLtnt?I+`+8JB(5O0 z5e0sV0&{^MV8_B3LgUy!hS<2yRt diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId10 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId10 deleted file mode 100644 index 309a2973b7349dfef129bf60e1c146accf0b4cc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2310 zcma)7>r&fB6#mv23xo*72_Yn0oZx^FN!&JQ{32CoM+H| z%dL6!aFQ*|RN56vy|{n@4TA)T|Q2s9IxQ6Q*Mh%Q%{M26+Ud3~F7_>vnY4Ft_7%ml- zB5#}9%G;cQ8@S2PTlKjmcm0OQfwU5LPZ(uw1EO<82YMVh$~i|Gi1XE zm4P+k+wP7!Yu3PRrCj4d)wd6X?YTPcqNw2m8Nr9`u`3|MR3T<9tXe4^N_0S$3VzSP zeLP?ou3P)O?73A-ytc(IjRIl0f|9luHzspbiW%>mN0wt6=dL6;)Jn?w(E%l8w9?Lo ze8dX5TVf~|-nak1eAr}2m%SRDHBhl#zS5{~bAR31c2r5cs^x52zAfj`Vp{A#)q0yJrPaGcPE1tLC zIEa(+Y`|?m#hSCM*orMB+?B{g*>apUTkuj3HW;j}C{6$T^3&hHzkQR_o4p{H%gyDO z-n{bB+^*3edgOk!Rc@spyWeU~l~|+(=$9QU2skmWFFH|1q2U{bTW1oPlphUS4CC)t zrH&pZ6E~BC8>ESNqtGlhxnLe59kKq6Z(EivmeogG)dF^ z1I#>uc8q=!mrgKpjEUxG(!70)Df7-T%-@u)Ir@%6qwf{M57RH@DuytE32NGTT&EL9 zQId8;>v%*zEcuv_UNAM1{>d0j**VD%hQ}}>zltQKR=4>U{lC&61$ksfElw!YQk4`U z(+p4WlvZR=aqvVZcrp?EED=1}37$>_KSw#?TGW~+Lwnq^fz?orzAL&pR9IX_f}b0N4{ry=?4QwbhY)k)F#Mbpz4gqO)5 zqv}l1J1MJlf;%Lp=r!NrBcL;axmW~a(LrgvBr_>2Vu@s$jK0D$jU-7|=v~Jq&9bEN RiU|Mu=?K2YxA+bt{{a{)45k18 diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/ChannelService.class.uniqueId0 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/ChannelService.class.uniqueId0 deleted file mode 100644 index 43a26bb630ae2d6b1a4e3bef54fe51bc25288ab2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmbVKO;5r=5Pge6<)et8C>{+5xY!?n8V!bogv7*(_mxiSl1(M;mW03N!5`p{GEPfH z6ufxZ$-bHQW_I4bf4sf{xJ1iBPM{f4I9C&L`p+^5NW06cgbe^8)2eII*lC yAh5%q1IV-ec@&U*0}Fd;ETY8uGG}wBFm9uo;`^wj*g<;M(cqX=9-@hp>((c%)Ug%- diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFChannelService.class.uniqueId4 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFChannelService.class.uniqueId4 deleted file mode 100644 index ae249ad6fde146befd250bac360e3008fbf7e103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3765 zcmcIm`*Rdk7XEH#l1`e=g8?EV5JnA{$%6rPQ5lH9kVx1GsDWVcwKp@Jq)DfHoau?i zUEkmf-DTIu;x6L*Sz0~{6M-uACx5W~Pm=u)wzfR?_D!beQEHX7sY*}x?Q_rh&Ue0Z z`u_O8%ijXngO7F8A*3N}pdJkjZ72CGPuSda?L#e^k6n7lc9`RQh!ddQd zhSqe+8+l5u!fHe`tTC__>lm8L-V&NwZWql0!}_jxU}ws;Z9;3g4mr3A>or6TT#XG3 zYfBDFM&zg9o_TMZj;-hsI_PCsS1V1b{x*gd)A1~CE}`nFqYvA~t{n`iu5|g!PGxj- zE@vjIiK||Tj|zV`8n_96V5pxoy`d~aq^w5Ajtw1+TWh$gu~EZq3~Nf|+?UVuxwKXAbo67N;AB5TG+4=!0+W8G z2Mi2gkYrxWQ9GE5E~;4&fs$D*wnVoaG%zHvH{{J3ch+peACcBDY~V1Cly&sTT){I* z@*!97wa)ivxg=G~@s#9s+=;t1j2JkIW97T0*cmk0fk!5OohF4l0*2!T?#392e}+$+ zDc7OKIBt1UbXV}W<554Cajtd-Iafdr(Ca0x26$m(&1h) zPmy-`Ov_%T5w|<=D79SCG|B!XjhmF4rLC=L%P|iZXU5I^Q9f?dN+j)OxIN1AmUvc+ zVQWNGpO+p3O7|Gt)%2B1kV)pW)hIOUeqwt3A|NG~i?A+dZmiSDQHoy*#iH5ZG!D42 z-dWN>=XQoIwMI?(7*EEDZ+*lq<}>D?B~;j6^+Dez<{&Y)-*vr$m*=@*)0=X$h1LeV zsN*I4Rm0y5oWa%SCWGm)0SXa}F*8PCnnQQc>PPd^1gs!e`?gWSp5W}!3f zy3@s6aN?_p5g@Q^W92vLx4-m5218Zv4UR7LHpOjw#G(U18zzXAS9Cfry=veYJllqU zQgtf3kyt0Q*LD00|JHC`Owcz-T2ZsY1$8 zy(tQ;;eAqg6=k)gqv1n_j$byVkAkl=I?}D8lQY94{YS)smwqieF4o~BorUS>f(E)y z)5UI6R90&Q#oOOcnA+8Odi%^4v!G_Kht~4^uOq)`HjEeQI*$z+9~$72!uVCu&WN=qfcO~lh}NA zHcAZbzU2yr7CeT>$q&O5c#_@;zLSdY)mP9zw!+l{_Ex&w93XtPa_N`wDRMY~rxn1n zTLwjjdD?L0(vr*C@#A(CAFVa0;gtx-6v~B6J-J-R+XT;jeJ0_Z!@C8Kb~FPL#yf zBCQi7+3nbb9THQ__ppMgLt$z`n~Y!Ari(G9BJQDxqF_xu^LU_p9+^++Ay}(OpjJ&X yDKbElbVa96JSXj+#|!iup`B-F?H_m<<(Io1k>_`3BAM?yx6^`T&;DQi!w+`qw|fftmFS;(7f52 zFiy_8J`mznxvLD%tg{-P?7erV;~J5CcD~U?i2JOf`?epjR7B*f}KMj NO1%^%LPr1q diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFUserService.class.uniqueId1 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JCFUserService.class.uniqueId1 deleted file mode 100644 index 22b1740a48f2109264a918b6571ce2cbaf3bfd5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3569 zcmcImYf}?f7=8{A7S`or5H(&1ShNJxShZdV&?=%rgO?&$u(w09z{+MfCL1cfT3cJI zz1UV;ZP9A$M?1ZY1<{$dpZdY+KY{*(PN(nL-N=S8)-Pp-EZo6 zJ<`pSG9(n1Vi6PxWeUns!LTB&rpC0G8a^Hy3U{^d?WN})XN#dI&MnSR5uJk~n8+e5 zhF?OJf+eVCD9d?ERK~cTQPT{|8$uq-c2n1hs%9Dlunfy31Qe{mN`@tK0CR^3CvBxv zo?uv+gX8Rmd+e7HKMAy2K@EaL*HY6Y#pVXbtE~?m(~RMWm&j1YuxW%3rPR0<aa$_V+!iAmSNc(p&V}vCEOVA=2mQkq0V(E>teft9oR`_n9NWrc6ePnr5f=#aCh9~cd-!shcagh!g1^1s&MSAZLJA4(7CX&v@EWsRas6A!oJYK{KgzHN$dS zK*nJ_E1^fh5%lI-+r`fy*&TUs=)YBTBk_absDkIvPtB0vqiVZpP@^2xtPxtJEpAxU z-#IC9Exjpmw`3f{^AcWA@S><(Cpoz>5XGd3NH;{Oy{v#^kfEFszeh_abv}N8CsY~~ z*_!jVwg^A2Km~^pH)zlF_sMC%=YR0(U$5Wbkb~lTx5sfIWie`!A zk6yx*cs%ZuUWd2xT}>aU)S_OVG#BDtE&cfr)ZA)Pa`aNx zmKg-LH{!aQu8*4LXeQ~MwfTjUV|Zjdsd|q;`b)>=IN>I(D7`|kGup|8Jb$1zuJa99np>>9iiFN-_Ks3n7J_FUI1#d2V};ebQ*@5 zYS(!>t)?Yhr>jGr2n$t$gl`#Y9)6U@r&Bg`8CpaaPKIIn_ltWXeQR{lD!_5NLeiK( zF@28G&TbUa3aD(H0&BbnsecNkzd-)UKCRPdIh_E?P-Np&AVE)xV*>*wJuxJ4!o|C9 zV*_1{w;@lXl3^N4Nu;}21zOe?U|Ugj(G`^4!@7Qd!xS2SyN3<^P3t#IA>8Z}Rsr86 zHV1su*j9+60pE}0p%8*e4RHsy(4}=NR$?1!u^o+Qrd0&{=&B)@wNYf`-DM_LDWq+- zU9f0XV86}Ks*o_k7{erLZj*44bCWT!7!P zL2xUuxd}amnu5bp=i~zp<#+>c(tC!taEjgu-6O8;!4jchjYL-ghSPY*r5LB!g-wl1ai6VW_s{5Be+P%| zq7RtF!2HVVrMm0GYMK~A+gb_zWrqR0qtGDr?`kO$i)P%(Y{QpZ*T+OA@DEcbgHia diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..2309a022e47bc8e89ca61586358668123cb589cf GIT binary patch literal 6964 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 s{H-;B6`)blY%R`r+Ay z+3*;$o0emF+YBSs+Np|Bs!)bQffm5#5>casWITTP- zP~sRznee9LS>Ba?V0ODk%VbDdO(GFTshGr+f@zLhm>D8@bk+6DHp6(scU?+$Y_-h; z%eJkq_VV@eV zCH(L*?VSq^OZDLiZ7^h7rYCrCvbzIKqG1nI31UwAa?o}VBpUT(e>-j}5vJ`+z%WLT zov8P`@N7HEkq@+v{HX+OMDOZR$9Eg%M@#g}!|*k+n>5@4{Q^Li-n5f+N{N9>OY@YL zCMYcpNLm^R*&Ij=Jf`;(^1fmOX|lTZ6HL2?(nFri#5HdBP>D_p+Hwy|+DZ?aw%Wt$ zcbV`hz31uI0+C6hNIzEzQ$(jig%&YE zQ#j7}(MQm+j7&fH0KSSogX6h(m$1a0&agAP_uk#}JAZ%Y>|g)B`V+t>_(n$pNew9j zeMmD5y)ci>vTZsC<*oe}ydfCU_btZ~4;YfO#a$g4^lQ)!T!X=IU5R&uWtZ#qwG{^4 zGo7Z}3J%%XV(qd(r61QZsA0&!FtQBSxFalaQm*^lV@Oy{@*oZ}V&DzjAo-@{w{7!e z(`<2uY#^$<-4>qZ94P&78W@$reY|B_wzN2I;4KAjAG!|T?6mf|r(*)|Xebz%#MGt0 zw@-Y*TMWaEj^~ksJ64NtShj8XDhKO2rg2lljDhzsd!7U3M9p;$7_?*4?(nVe7;>}g zVFtRNm4_t*bGXIO-|)C8cypQ39L9ZFaKS)X33l4eKv2gAxUJzsY5dM*w^arhW@aO4 z35r;WdJ$$SOZETQz+K#9$hXWRUUi*@DV|&6kaoT>9YOJaA5|v9t3;IdovyqD#P? zlQxeL--}Q&rV~OHRnxY&Ex{`p)ES&T8TCKE{Pg$lFTXA5-3~1j3QGkR)_^)TJX=lL zgqQs8&}539)eMS!k4zw?k7%>zINYn+rtfoK!A6IwACW|g)^h0&u+kZ{Qw)^m zPLV6!Iz_%Te~K}B`}P^$Jw>s*oBvHItk83c{vf~*DH*1JNS1avn(ZSPqvtdkTtFW8 zNum^(p?}l^I*~#72OuZpPC6)qDa)}=4lz805jt3=RZ8`hUSi-^+9V*&rq#;+H6f*-|#=X=3ZvEV9JVl3x+!85Vo$FbmiFSry7UX2Bh^@0~- z!Jnyg%7o3)EtAPE3LIqmb_B?}nSO$`Fy0@iY<&bAm%PbI-sDT8sVI9QoVlSy@6z)g z(Q%PDvqXHUC=+)AHC>*JD|$UzlOiY9y9sz2l4Ft>Q>1%dGUp8M w(~_e*Pxsg>d<66+=V2tq$u{BD^dA@i~4q2bsC#@YmokgynRZG)0ByigU?*H|EWZrK-N@>U?E_wqT^PxTyy>f6#ntp@BUa&>7_qHi$t~3uD ybR+DSf7dN`Bp`6YX99+Niy=nnZsOt0zGL|8pR+r_1?!i%vibx8YXaBSneG6ZI*9=Q diff --git a/discordit/build/tmp/compileJava/previous-compilation-data.bin b/discordit/build/tmp/compileJava/previous-compilation-data.bin index c5605d619de4a9a55d27d1d495c9ea1b752341e4..30a32493c315a423d2a87613e010d60406c60fdb 100644 GIT binary patch delta 120 zcmV-;0EhqW1oH%ta}aUofalQttsLb;k#&5XA*_*ucM#}(T`enG^J~Q%DtCiw+gOtd z0UAEBp(j;&KovGv7Pa|FP>dfUO%o9i`VB`=W+zb_*2L#|Q9b>jBU2?3X@_1Ljfa`paIQi88B)9 delta 118 zcmV-+0Ez$e1nmTna}e7fAyV)@Kh=d$Q%Y(113{64cM!1# foundUsers = userService.getAllUser(); - System.out.println(userService.getAllUser()); + for (User user : foundUsers) { + System.out.println(user); + } + + //System.out.println(userService.getAllUser()); System.out.println("전체 유저수 : " + foundUsers.size() ); //수정 및 조회 @@ -88,11 +107,15 @@ static void channelCRUDTest(ChannelService channelService){ Channel foundChannel = channelService.getChannel(channel1.getId()); System.out.println("======= (READ)채널_1 조회 ======="); System.out.println("채널 ID : " + foundChannel.getId()); + System.out.println("개인유저 정보 조회: \n"+ foundChannel); //채널 전체 조회 READ System.out.println("======= (READ)전체채널 조회 ======="); List foundChannels = channelService.getAllChannel(); - System.out.println(channelService.getAllChannel()); + for (Channel channel : foundChannels) { + System.out.println(channel); + } + //System.out.println(channelService.getAllChannel()); System.out.println("전체 채널수 : " + foundChannels.size()); //채널 수정 UPDATE @@ -105,7 +128,7 @@ static void channelCRUDTest(ChannelService channelService){ // System.out.println(updatedChannel.getChannelName() +"\n"+ updatedChannel.getDescription()); System.out.println(channelService.getChannel(channel1.getId())); - //유저 삭제 DELETE + //채널 삭제 DELETE channelService.deleteChannel(channel1.getId()); List removeChannel = channelService.getAllChannel(); System.out.println("======= (REMAIN)남은 채널 ======="); @@ -115,13 +138,44 @@ static void channelCRUDTest(ChannelService channelService){ } + static void messageCRUDTest(MessageService messageService) { UUID channelId = UUID.randomUUID(); UUID authorId = UUID.randomUUID(); - Message message = messageService.addMessage("안녕하세요.", channelId, authorId); - System.out.println("메시지 생성: " + message.getId()); - + //메세지 생성 + Message message1 = messageService.addMessage("저는 임헤민입니다.", channelId, authorId); + Message message2 = messageService.addMessage("Hello, my name is Ellen", channelId, authorId); + System.out.println("======= (CREATE)메세지 생성 ======="); + System.out.println("메세지 생성: " + message1.getId()); + System.out.println("메세지 생성: " + message2.getId()); + + //단건 조회 + // message변수의 id를 getID메소드를 통해 불러와서 그 값으로 + // getMessage메소드에서 해당 ID값에 해당하는 메세지 정보를 찾아서 foundMessage에 저장 + Message foundMessage = messageService.getMessage(message2.getId()); + System.out.println("======= (READ)메시지 조회 ======="); + System.out.println("메세지 ID : " + foundMessage.getId()); + System.out.println("개인유저 정보 조회: \n"+ foundMessage); + + //다건 조회 + System.out.println("======= (READ)전체 메세지 ======="); + List messages = messageService.getAllMessage(); + System.out.println(messageService.getAllMessage()); + System.out.println("전체 메세지수 : " + messages.size()); + + //메세지 수정 + messageService.updateMessage(message1.getId(), "다들 반갑습니다!!!"); + System.out.println("======= (UPDATE)메세지 수정 ======="); + System.out.println(messageService.getMessage(message1.getId())); + + + //메세지 삭제 + messageService.deleteMessage(message2.getId()); + List removeMessage = messageService.getAllMessage(); + System.out.println("======= (REMAIN)남은 메세지 ======="); + System.out.println(removeMessage); + System.out.println("남은 메세지수 : " + removeMessage.size()); } @@ -129,12 +183,12 @@ public static void main(String[] args) { // 서비스 초기화 UserService userService = new JCFUserService(); ChannelService channelService = new JCFChannelService(); - //MessageService messageService = new JCFMessageService(); + MessageService messageService = new JCFMessageService(); // 테스트 userCRUDTest(userService); channelCRUDTest(channelService); - //messageCRUDTest(messageService); + messageCRUDTest(messageService); } } diff --git a/discordit/src/main/java/entity/Message.java b/discordit/src/main/java/entity/Message.java index df4772b3..8be50565 100644 --- a/discordit/src/main/java/entity/Message.java +++ b/discordit/src/main/java/entity/Message.java @@ -3,8 +3,8 @@ import java.util.UUID; public class Message { - private UUID id; - private Long createdAt; + private final UUID id; + private final Long createdAt; private Long updatedAt; private String newMessage; @@ -46,7 +46,7 @@ public UUID getAuthorId() { public void getAllMessage(){ } - public void updateMessage(String newMessage){ + public void updateMessage(UUID id, String newMessage){ this.newMessage = newMessage; this.updatedAt = System.currentTimeMillis(); } diff --git a/discordit/src/main/java/service/MessageService.java b/discordit/src/main/java/service/MessageService.java index fb5e2e6b..ca5b54ba 100644 --- a/discordit/src/main/java/service/MessageService.java +++ b/discordit/src/main/java/service/MessageService.java @@ -10,7 +10,7 @@ public interface MessageService { Message getMessage(UUID id); - List getAllUser(); + List getAllMessage(); void updateMessage(UUID id, String newMessage); diff --git a/discordit/src/main/java/service/jcf/JCFMessageService.java b/discordit/src/main/java/service/jcf/JCFMessageService.java index 972a6cc8..9b4a6bae 100644 --- a/discordit/src/main/java/service/jcf/JCFMessageService.java +++ b/discordit/src/main/java/service/jcf/JCFMessageService.java @@ -1,7 +1,6 @@ package service.jcf; import entity.Message; -import entity.User; import service.MessageService; import java.util.*; @@ -21,21 +20,25 @@ public Message addMessage(String newMessage, UUID channelId, UUID authorId) { @Override public Message getMessage(UUID id) { - return null; + return data.get(id); } @Override - public List getAllUser() { - return List.of(); + public List getAllMessage() { + return new ArrayList<>(data.values()); } @Override - public void updateMessage(UUID id, String message) { - + public void updateMessage(UUID id, String newMessage) { + Message message = data.get(id); + if(message!=null){ + message.updateMessage(id, newMessage); + } } @Override public void deleteMessage(UUID id) { - + Message message = data.remove(id); + System.out.println("======= (DELETE)삭제된 메세지 ======= \n" + message); } } From ea7e94bbe298299050d813ba98c9ec78d87c600d Mon Sep 17 00:00:00 2001 From: apple Date: Fri, 16 Jan 2026 18:49:04 +0900 Subject: [PATCH 07/12] 2026-01-16FRI --- .../src/main/java/service/DiscordService.java | 4 ++ .../java/service/jcf/JCFDiscordService.java | 42 +++++++++++++++++++ .../main/java/service/jcf/JCFUserService.java | 1 + 3 files changed, 47 insertions(+) create mode 100644 discordit/src/main/java/service/DiscordService.java create mode 100644 discordit/src/main/java/service/jcf/JCFDiscordService.java diff --git a/discordit/src/main/java/service/DiscordService.java b/discordit/src/main/java/service/DiscordService.java new file mode 100644 index 00000000..852b583d --- /dev/null +++ b/discordit/src/main/java/service/DiscordService.java @@ -0,0 +1,4 @@ +package service; + +public interface DiscordService { +} diff --git a/discordit/src/main/java/service/jcf/JCFDiscordService.java b/discordit/src/main/java/service/jcf/JCFDiscordService.java new file mode 100644 index 00000000..987bb6f8 --- /dev/null +++ b/discordit/src/main/java/service/jcf/JCFDiscordService.java @@ -0,0 +1,42 @@ +package service.jcf; + +import entity.User; +import entity.Channel; +import entity.Message; +import service.UserService; +import service.ChannelService; +import service.MessageService; + +import java.util.UUID; + +public class JCFDiscordService { + private final JCFUserService userService; + private final JCFChannelService channelService; + private final JCFMessageService messageService; + + //생성자 초기화 + public JCFDiscordService( + JCFUserService userService, + JCFChannelService channelService, + JCFMessageService messageService) { + this.userService = userService; + this.channelService = channelService; + this.messageService = messageService; + } + + public Message sendMessage(String newMessage, UUID authorId, UUID channelId) { + + // 1. 유저 존재 확인 + userService.getUser(authorId); + + // 2. 채널 존재 확인 + channelService.getChannel(channelId); + + // 3. 메시지 생성 + return messageService.addMessage(newMessage, channelId, authorId); + + + } + + +} diff --git a/discordit/src/main/java/service/jcf/JCFUserService.java b/discordit/src/main/java/service/jcf/JCFUserService.java index d257dd1f..d609a612 100644 --- a/discordit/src/main/java/service/jcf/JCFUserService.java +++ b/discordit/src/main/java/service/jcf/JCFUserService.java @@ -69,6 +69,7 @@ public User getUser(UUID id) { @Override public List getAllUser() { return new ArrayList<>(data.values()); + } //Update 업데이트 From 39d5471ad5225547da137e342e1efe9221fb2f3d Mon Sep 17 00:00:00 2001 From: apple Date: Sun, 25 Jan 2026 16:25:58 +0900 Subject: [PATCH 08/12] 2026-01-25SUN --- .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 20297 -> 20997 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../9.0.0/fileHashes/resourceHashesCache.bin | Bin 23869 -> 24515 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes discordit/.gradle/file-system.probe | Bin 8 -> 8 bytes .../reports/problems/problems-report.html | 2 +- .../stash-dir/JavaApplication.class.uniqueId0 | Bin 6964 -> 0 bytes discordit/src/main/java/JavaApplication.java | 2 +- .../java/repository/ChannelRepository.java | 4 + .../java/repository/MessageRepository.java | 4 + .../main/java/repository/UserRepository.java | 18 +++ .../file/FileChannelRepository.java | 4 + .../file/FileMessageRepository.java | 4 + .../repository/file/FileUserRepository.java | 65 ++++++++ .../repository/jcf/JCFChannelRepository.java | 4 + .../repository/jcf/JCFMessageRepository.java | 4 + .../repository/jcf/JCFUserRepository.java | 82 +++++++++++ .../java/service/file/FileChannelService.java | 4 + .../java/service/file/FileMessageService.java | 4 + .../java/service/file/FileUserService.java | 139 ++++++++++++++++++ .../java/service/jcf/JCFMessageService.java | 55 ++++++- 22 files changed, 392 insertions(+), 3 deletions(-) delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 create mode 100644 discordit/src/main/java/repository/ChannelRepository.java create mode 100644 discordit/src/main/java/repository/MessageRepository.java create mode 100644 discordit/src/main/java/repository/UserRepository.java create mode 100644 discordit/src/main/java/repository/file/FileChannelRepository.java create mode 100644 discordit/src/main/java/repository/file/FileMessageRepository.java create mode 100644 discordit/src/main/java/repository/file/FileUserRepository.java create mode 100644 discordit/src/main/java/repository/jcf/JCFChannelRepository.java create mode 100644 discordit/src/main/java/repository/jcf/JCFMessageRepository.java create mode 100644 discordit/src/main/java/repository/jcf/JCFUserRepository.java create mode 100644 discordit/src/main/java/service/file/FileChannelService.java create mode 100644 discordit/src/main/java/service/file/FileMessageService.java create mode 100644 discordit/src/main/java/service/file/FileUserService.java diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock b/discordit/.gradle/9.0.0/executionHistory/executionHistory.lock index 549460d195396f83e9bff90f6d12c9d1af296083..4d59619d82f80d9d7f77699022911581adf19776 100644 GIT binary patch literal 17 VcmZR6G0Sa*#+A@h3}C=`8UQ+51zP|B literal 17 VcmZR6G0Sa*#+A@h3}C=`5&$|`1z7+9 diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin b/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin index 7211da4082f249da4f7a6c7afdeeba03fd551fbf..4274345986a6665a02684794bb9456d69b49825b 100644 GIT binary patch delta 1149 zcmX>(kFj+L;|3E6Mx)855-S7_pO0Q0R?jcY00#cmldnny2wXLJlCUweiwzb@>}vzmM5I`Eg}KO};rfS4u&^x~oz2Pt{?lYXh7ow*plL9C3bO(H_$a zHP&|WS)j`BkE=w(3(j4Gnt6ZnQ=nkn=Gnb^FMiuW&0IeDuhb$YmV+A=e~521h!EcF z=#jvzaQet?N!I_(qLpmf>B64-G#D5dXMbTStb%BgH<^6UyG)_bAbE%)E{@INK35nO;?>!eikkmyI_x{8X0FsDV0eOzGF64B;uf6j?f0+V z7{~(!i6RIK?5w%JQfX4O?`hGN+fs6}4j?V}zU6BHC4qo#2awQ1)p27*&jbDS*4YsY zuQ)qCWSR@oapO}7KUf0;gCnMnfP4E79C(x|uJP*ouFv()H#I}Gh~m~_uFbWupg`Z~ z?fWNtd2GHN0O`2<>h?{j4jW8MY`orXbz+{KIe*jnf62@nfIbB2Nb5q^QIGI@sOS#Y zUpmYV72*r)RqnJ`f}QnQW)f73J*FiG&xm*NoPT!MxTC&Jw}opnL`SLuZXGvDnLUp- zFQ2(+(JIcS%|_elDwU--S)~~xdgHV7$wlSX6(n* zk?3;VqpxhX0=Mtkmi*JUB4B5|zXMG|4A#gx>LKy2xue}Hfx&DGAOF*2m+jW-AT77H z@@{}QOK>@|7KjdUhZyTW4CX=|OMd!jihP7b;`@0_5FMzNKy+MrV97J#d~92XA#?q* xjfbCu>^SQ9ZW=UzSwQIuEpZk2rf{3zJ9CBa9M*0a@OZToQs3m3~9RN8^J_-N; delta 191 zcmZo&!gz8X;|3E6MwQ8?5-TQumGGDxDw#0(tfawYQ7MnfrBV`;mjW@Xw8!LBX^F{G zf%I1(ttuliIaFpA6LaB4#UJ7u4OWP3cJxSKRybF!!<1;8Z=UKOA7=DC{3!ziZi(JD^~t+O3}C=g2mnCm1=;`r literal 17 VcmZQ>Zi(JD^~t+O3}C?G3;;m61*`x7 diff --git a/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin b/discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin index 12aadc7a8092299ad25cc2b6236580518c81f1f7..df879a7c24910808c32cd7e293cd776dfa7fc627 100644 GIT binary patch delta 1056 zcmdnHi}CP&#tkMCj2jo5N-zuTD6bMyIwn)b00wbaC+kXE2<$2MZhX3Eng&#mb8@V7 zgTOH(q2@q+?w=6B_}Ix;r8fwic~+}qsTK*-zIk%3OoPDX=_UEaD%o04?b@5a$`~*S z{MqUry2othDTrun<78R+69SA}#d2%yjijMU^C#bxZxCRgtdjP8%C+fG!HJVY6&~{M zb6)i0%QZAvxp(>FORW&W*rStKRRj6!)+@h%cMT>Mzu8w6Xi@pycf$IC?-oH- z+D^_@o1s!C!d@p8)pQ?f(L$IHU^D}Rz{-t^Kg2g06tHi0^!OuE5Av)e5DS8^Kt@aG zmgER8`$qvf50<5GZv+a;p{kG-U~`dt=~({dql$9T?(#@X6)Tiu=I>lnpZVyX#nWEl zWjvTFVkfL#sIDIFTeod-eH%-G5I?387meGuW_SHKzLwFi>%Kah5vB^OQ^{@;QQf8S ze-eKz=bvYfsUrGzO_bnLd9TiI^O`oi{GyAgV(QEK>GO^5WtwGH7yjA!Xo5bblKX+W z?PhgTro3fX(fkL;`|^>LKvkIBd{ico7gsYz~u1ScU--f9o;?hHwd3C9*^FIfxc}$U$pM20qSXlSL&#ODv QOYTiropVQr{U}Hm04;7oZU6uP delta 113 zcmX@SpKRk~ubs?3VXPh~1Lm&$4|P2MVhU~;cQ#bjB< zo0IvJ`Zu3dvS8dStD?X-IaJkP@?6z~$)airlY7-XH@{PpXPm66F@fhl6fiLGJ>01H PLwuuw1?Of*k3S*++yX9o diff --git a/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 64cf685e35da45ae72447fe0191cc57d3f67d071..aec937c802ef6e16b01e0a496343513becd94d0b 100644 GIT binary patch literal 17 UcmZQ>_0_1)+G*X)00zu_04bsaZvX%Q literal 17 UcmZQ>_0_1)+G*X)00vBd04k0ITmS$7 diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe index 574cae1a4bf02dcc71406a485eaec9b873d94b0e..ef11c0ec529c749e23bca9e586baa9ddc64cdcf2 100644 GIT binary patch literal 8 PcmZQzV4VGh>1q-H2=@ZY literal 8 PcmZQzV4Qs*#PS;e2zdhF diff --git a/discordit/build/reports/problems/problems-report.html b/discordit/build/reports/problems/problems-report.html index 0c7c75f2..3dd98675 100644 --- a/discordit/build/reports/problems/problems-report.html +++ b/discordit/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 deleted file mode 100644 index 2309a022e47bc8e89ca61586358668123cb589cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6964 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 getAllUser(); + +// boolean existsById(UUID id); + void deleteUser(UUID id); + + boolean existsByDisplayName(String displayName); +} \ No newline at end of file diff --git a/discordit/src/main/java/repository/file/FileChannelRepository.java b/discordit/src/main/java/repository/file/FileChannelRepository.java new file mode 100644 index 00000000..962b83cb --- /dev/null +++ b/discordit/src/main/java/repository/file/FileChannelRepository.java @@ -0,0 +1,4 @@ +package repository.file; + +public class FileChannelRepository { +} diff --git a/discordit/src/main/java/repository/file/FileMessageRepository.java b/discordit/src/main/java/repository/file/FileMessageRepository.java new file mode 100644 index 00000000..1cfd0b9e --- /dev/null +++ b/discordit/src/main/java/repository/file/FileMessageRepository.java @@ -0,0 +1,4 @@ +package repository.file; + +public class FileMessageRepository { +} diff --git a/discordit/src/main/java/repository/file/FileUserRepository.java b/discordit/src/main/java/repository/file/FileUserRepository.java new file mode 100644 index 00000000..ad9a5163 --- /dev/null +++ b/discordit/src/main/java/repository/file/FileUserRepository.java @@ -0,0 +1,65 @@ +package repository.file; + +import entity.User; +import repository.UserRepository; + +import java.io.*; +import java.util.*; + +public class FileUserRepository implements UserRepository { + + private final File file = new File("users.dat"); + + private Map load() { + if (!file.exists()) return new HashMap<>(); + + try (ObjectInputStream ois = + new ObjectInputStream(new FileInputStream(file))) { + return (Map) ois.readObject(); + } catch (Exception e) { + return new HashMap<>(); + } + } + + private void saveFile(Map data) { + try (ObjectOutputStream oos = + new ObjectOutputStream(new FileOutputStream(file))) { + oos.writeObject(data); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public User addUser(String displayName, String email, String phoneNumber) { + Map data = load(); + User user = new User(displayName, email, phoneNumber); + data.put(user.getId(), user); + saveFile(data); + + return user; + } + + @Override + public Optional getUser(UUID id) { + return Optional.ofNullable(load().get(id)); + } + + @Override + public List getAllUser() { + return new ArrayList<>(load().values()); + } + + @Override + public void deleteUser(UUID id) { + Map data = load(); + data.remove(id); + saveFile(data); + } + + @Override + public boolean existsByDisplayName(String displayName) { + return load().values().stream() + .anyMatch(u -> u.getDisplayName().equals(displayName)); + } +} \ No newline at end of file diff --git a/discordit/src/main/java/repository/jcf/JCFChannelRepository.java b/discordit/src/main/java/repository/jcf/JCFChannelRepository.java new file mode 100644 index 00000000..4a3469c7 --- /dev/null +++ b/discordit/src/main/java/repository/jcf/JCFChannelRepository.java @@ -0,0 +1,4 @@ +package repository.jcf; + +public class JCFChannelRepository { +} diff --git a/discordit/src/main/java/repository/jcf/JCFMessageRepository.java b/discordit/src/main/java/repository/jcf/JCFMessageRepository.java new file mode 100644 index 00000000..008c0a5d --- /dev/null +++ b/discordit/src/main/java/repository/jcf/JCFMessageRepository.java @@ -0,0 +1,4 @@ +package repository.jcf; + +public class JCFMessageRepository { +} diff --git a/discordit/src/main/java/repository/jcf/JCFUserRepository.java b/discordit/src/main/java/repository/jcf/JCFUserRepository.java new file mode 100644 index 00000000..f2d0857a --- /dev/null +++ b/discordit/src/main/java/repository/jcf/JCFUserRepository.java @@ -0,0 +1,82 @@ +package repository.jcf; + +import entity.User; +import repository.UserRepository; + +import java.util.*; + +public class JCFUserRepository implements UserRepository { + private final Map data ; + + //생성자에서 초기화 + public JCFUserRepository(){ + this.data = new HashMap<>(); + } + + //멘토링 조언 + /* + @Override + public boolean addUser(User user) { + //boolean guess = true; + //boolean flag = data.containsKey(user.getId()); + //user객체를 다시 만들어줘야함 + // + + if(data.containsKey(user.getId())){ + System.out.println("이미 존재하는 유저입니다!"); + return false; + } + data.put(user.getId(),user); + return true; + + 서비스에서 중요한 데이터를 표현한게 엔티티 + + adduser(데이터 개별적으로 생성) >> + + 항상 올바른 데이터를 전달해주지 않을 수도 있기 때문에 + 검증하는 단계를 서비스에서 진행 + + 실제로 만들어진 user 엔티티를 리턴해주는게 좋다 + */ + //예외처리 다른방법 + //boolean flag = data.add(user); + //if(flag){ return user;} + //else throw new Exception(); <<이런 방법도 있다 라고 참고만! + // 익셉션을 활용하는게 더 좋음. + + //CREATE 생성 + @Override + public User addUser(String displayName, String email, String phoneNumber){ + boolean flag = data.values().stream() + .anyMatch(user -> user.getDisplayName().equals(displayName)); + + if (flag) { + throw new IllegalStateException("이미 존재하는 유저입니다!!"); + } + //중복된 유저가 아니라면 입력받은 데이터를 USER 엔티티에 추가! + User user = new User(displayName, email, phoneNumber); + data.put(user.getId(), user); + return user; + } + + //READ 조회 + @Override + public User getUser(UUID id) { + return data.get(id); + } + + @Override + public List getAllUser() { + return new ArrayList<>(data.values()); + + } + + @Override + public void deleteUser(UUID id) { + User user = data.remove(id); + System.out.println("======= (DELETE)삭제된 유저 ======= \n" + user); + + } + + +} diff --git a/discordit/src/main/java/service/file/FileChannelService.java b/discordit/src/main/java/service/file/FileChannelService.java new file mode 100644 index 00000000..47cc710b --- /dev/null +++ b/discordit/src/main/java/service/file/FileChannelService.java @@ -0,0 +1,4 @@ +package service.file; + +public class FileChannelService { +} diff --git a/discordit/src/main/java/service/file/FileMessageService.java b/discordit/src/main/java/service/file/FileMessageService.java new file mode 100644 index 00000000..ad2d6dd6 --- /dev/null +++ b/discordit/src/main/java/service/file/FileMessageService.java @@ -0,0 +1,4 @@ +package service.file; + +public class FileMessageService { +} diff --git a/discordit/src/main/java/service/file/FileUserService.java b/discordit/src/main/java/service/file/FileUserService.java new file mode 100644 index 00000000..5b258cc9 --- /dev/null +++ b/discordit/src/main/java/service/file/FileUserService.java @@ -0,0 +1,139 @@ +package service.file; + +import entity.Channel; +import entity.User; +import entity.Message; + +import service.ChannelService; +import service.MessageService; +import service.UserService; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; +import java.util.UUID; + +public class FileUserService implements UserService { + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; + + public FileUserService() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", User.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); + } + + @Override + public User addUser(String username, String email, String password) { + User user = new User(username, email, password); + Path path = resolvePath(user.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(user); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return user; + } + + @Override + public User getUser(UUID userId) { + User userNullable = null; + Path path = resolvePath(userId); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + userNullable = (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + return Optional.ofNullable(userNullable) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + } + + @Override + public List getAllUser() { + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public void updateUser(UUID userId, String displayName, String email, String phoneNumber) { + User userNullable = null; + Path path = resolvePath(userId); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + userNullable = (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + User user = Optional.ofNullable(userNullable) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + user.updateUser(userId, displayName, email, phoneNumber); + + try( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(user); + } catch (IOException e) { + throw new RuntimeException(e); + } + + + } + + @Override + public void deleteUser(UUID userId) { + Path path = resolvePath(userId); + if (Files.notExists(path)) { + throw new NoSuchElementException("User with id " + userId + " not found"); + } + try { + Files.delete(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} +// diff --git a/discordit/src/main/java/service/jcf/JCFMessageService.java b/discordit/src/main/java/service/jcf/JCFMessageService.java index 9b4a6bae..28552828 100644 --- a/discordit/src/main/java/service/jcf/JCFMessageService.java +++ b/discordit/src/main/java/service/jcf/JCFMessageService.java @@ -1,21 +1,37 @@ package service.jcf; +import entity.Channel; import entity.Message; +import entity.User; +import service.ChannelService; import service.MessageService; +import service.UserService; import java.util.*; public class JCFMessageService implements MessageService{ private final Map data; - public JCFMessageService(){ + private final UserService userService; + private final ChannelService channelService; + + // 🔥 핵심: 생성자 주입 + public JCFMessageService(UserService userService, + ChannelService channelService) { this.data = new HashMap<>(); + this.userService = userService; + this.channelService = channelService; } + @Override public Message addMessage(String newMessage, UUID channelId, UUID authorId) { + User user = userService.getUser(authorId); + Channel channel = channelService.getChannel(channelId); + Message message = new Message(newMessage, channelId, authorId); data.put(message.getId(), message); return message; + } @Override @@ -42,3 +58,40 @@ public void deleteMessage(UUID id) { System.out.println("======= (DELETE)삭제된 메세지 ======= \n" + message); } } +/* + private final Map data = new HashMap<>(); + + private final UserService userService; + private final ChannelService channelService; + + // 🔥 핵심: 생성자 주입 + public JCFMessageService(UserService userService, + ChannelService channelService) { + this.userService = userService; + this.channelService = channelService; + } + + @Override + public Message create(UUID userId, UUID channelId, String content) { + + // 1️⃣ 유저 존재 검증 + User user = userService.getUser(userId); + + // 2️⃣ 채널 존재 검증 + Channel channel = channelService.getChannel(channelId); + + // 3️⃣ 메시지 생성 + Message message = new Message(userId, channelId, content); + data.put(message.getId(), message); + + // 4️⃣ 결과 출력 (요구사항 핵심) + System.out.println( + user.getDisplayName() + + " 님이 [" + + channel.getChannelName() + + "] 채널에 메시지를 작성했습니다: " + + content + ); + + return message; + */ From 8c75b0df93c23bb33b950233588f611054d86ccb Mon Sep 17 00:00:00 2001 From: apple Date: Wed, 28 Jan 2026 10:12:28 +0900 Subject: [PATCH 09/12] 2026-01-28 --- .DS_Store | Bin 0 -> 6148 bytes discodeit/.DS_Store | Bin 0 -> 6148 bytes .../.gradle/8.8/checksums/checksums.lock | Bin 0 -> 17 bytes .../8.8/dependencies-accessors/gc.properties | 0 .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/8.8/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/8.8/fileHashes/fileHashes.bin | Bin 0 -> 19197 bytes .../.gradle/8.8/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes discodeit/.gradle/8.8/gc.properties | 0 .../.gradle/9.0.0/checksums/checksums.lock | Bin 0 -> 17 bytes .../executionHistory/executionHistory.bin | Bin 0 -> 19752 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/9.0.0/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 0 -> 19397 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes discodeit/.gradle/9.0.0/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .../buildOutputCleanup/cache.properties | 2 + discodeit/.gradle/file-system.probe | Bin 0 -> 8 bytes discodeit/.gradle/vcs-1/gc.properties | 0 discodeit/README.md | 2 + discodeit/build.gradle | 19 ++ discodeit/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + discodeit/gradlew | 234 ++++++++++++++++++ discodeit/gradlew.bat | 89 +++++++ discodeit/settings.gradle | 0 .../mission/discodeit/JavaApplication.java | 53 ++++ .../mission/discodeit/entity/Channel.java | 65 +++++ .../mission/discodeit/entity/ChannelType.java | 6 + .../mission/discodeit/entity/Message.java | 63 +++++ .../sprint/mission/discodeit/entity/User.java | 70 ++++++ .../repository/ChannelRepository.java | 15 ++ .../repository/MessageRepository.java | 15 ++ .../discodeit/repository/UserRepository.java | 15 ++ .../file/FileChannelRepository.java | 100 ++++++++ .../file/FileMessageRepository.java | 100 ++++++++ .../repository/file/FileUserRepository.java | 100 ++++++++ .../repository/jcf/JCFChannelRepository.java | 40 +++ .../repository/jcf/JCFMessageRepository.java | 40 +++ .../repository/jcf/JCFUserRepository.java | 40 +++ .../discodeit/service/ChannelService.java | 15 ++ .../discodeit/service/MessageService.java | 14 ++ .../discodeit/service/UserService.java | 14 ++ .../service/basic/BasicChannelService.java | 51 ++++ .../service/basic/BasicMessageService.java | 65 +++++ .../service/basic/BasicUserService.java | 50 ++++ .../executionHistory/executionHistory.bin | Bin 46029 -> 52319 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 20997 -> 22197 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../buildOutputCleanup/outputFiles.bin | Bin 18983 -> 19253 bytes discordit/.gradle/file-system.probe | Bin 8 -> 8 bytes .../classes/java/main/JavaApplication.class | Bin 7079 -> 0 bytes .../main/entity/Channel$ChannelType.class | Bin 1117 -> 0 bytes .../classes/java/main/entity/Channel.class | Bin 2310 -> 0 bytes .../classes/java/main/entity/Message.class | Bin 2293 -> 0 bytes .../build/classes/java/main/entity/User.class | Bin 2433 -> 0 bytes .../java/main/service/ChannelService.class | Bin 625 -> 0 bytes .../java/main/service/MessageService.class | Bin 481 -> 0 bytes .../java/main/service/UserService.class | Bin 491 -> 0 bytes .../main/service/jcf/JCFChannelService.class | Bin 3765 -> 0 bytes .../main/service/jcf/JCFMessageService.class | Bin 2590 -> 0 bytes .../main/service/jcf/JCFUserService.class | Bin 3569 -> 0 bytes .../reports/problems/problems-report.html | 2 +- .../compileJava/previous-compilation-data.bin | Bin 627 -> 0 bytes .../main/java/repository/UserRepository.java | 2 +- .../repository/jcf/JCFUserRepository.java | 2 +- 69 files changed, 1286 insertions(+), 3 deletions(-) create mode 100644 .DS_Store create mode 100644 discodeit/.DS_Store create mode 100644 discodeit/.gradle/8.8/checksums/checksums.lock create mode 100644 discodeit/.gradle/8.8/dependencies-accessors/gc.properties create mode 100644 discodeit/.gradle/8.8/executionHistory/executionHistory.lock create mode 100644 discodeit/.gradle/8.8/fileChanges/last-build.bin create mode 100644 discodeit/.gradle/8.8/fileHashes/fileHashes.bin create mode 100644 discodeit/.gradle/8.8/fileHashes/fileHashes.lock create mode 100644 discodeit/.gradle/8.8/gc.properties create mode 100644 discodeit/.gradle/9.0.0/checksums/checksums.lock create mode 100644 discodeit/.gradle/9.0.0/executionHistory/executionHistory.bin create mode 100644 discodeit/.gradle/9.0.0/executionHistory/executionHistory.lock create mode 100644 discodeit/.gradle/9.0.0/fileChanges/last-build.bin create mode 100644 discodeit/.gradle/9.0.0/fileHashes/fileHashes.bin create mode 100644 discodeit/.gradle/9.0.0/fileHashes/fileHashes.lock create mode 100644 discodeit/.gradle/9.0.0/gc.properties create mode 100644 discodeit/.gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 discodeit/.gradle/buildOutputCleanup/cache.properties create mode 100644 discodeit/.gradle/file-system.probe create mode 100644 discodeit/.gradle/vcs-1/gc.properties create mode 100644 discodeit/README.md create mode 100644 discodeit/build.gradle create mode 100644 discodeit/gradle/wrapper/gradle-wrapper.jar create mode 100644 discodeit/gradle/wrapper/gradle-wrapper.properties create mode 100755 discodeit/gradlew create mode 100644 discodeit/gradlew.bat create mode 100644 discodeit/settings.gradle create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/entity/Message.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java delete mode 100644 discordit/build/classes/java/main/JavaApplication.class delete mode 100644 discordit/build/classes/java/main/entity/Channel$ChannelType.class delete mode 100644 discordit/build/classes/java/main/entity/Channel.class delete mode 100644 discordit/build/classes/java/main/entity/Message.class delete mode 100644 discordit/build/classes/java/main/entity/User.class delete mode 100644 discordit/build/classes/java/main/service/ChannelService.class delete mode 100644 discordit/build/classes/java/main/service/MessageService.class delete mode 100644 discordit/build/classes/java/main/service/UserService.class delete mode 100644 discordit/build/classes/java/main/service/jcf/JCFChannelService.class delete mode 100644 discordit/build/classes/java/main/service/jcf/JCFMessageService.class delete mode 100644 discordit/build/classes/java/main/service/jcf/JCFUserService.class delete mode 100644 discordit/build/tmp/compileJava/previous-compilation-data.bin diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..741704dbd0688836237bcdd8d84aed40f4468bea GIT binary patch literal 6148 zcmeHKL2uJA6n^eHmZ+-K1E5`yBJEn04$#oVC6sa4bwTVfrqV1GL`&nTN$H`gl;ij{ z-1sT{9riujMJ?@)Lt}bRdj6j6_c_UD%Z`ai^(M(aQHzK?IAhI6vB9{Xea&jFWgDo> z7@86qQcC4t08##dQd zl-=$xRokj>KictjyoPrkebv*b9F&uyHyEFB?Ss}?yod+!$8rfC;iK8 zlmPd8YF(=w;?|#@OhFwZ5X&4`eNC)m&27F{lH*N0hBH z)w92tsEUaKqJSuHCknWo&}-bu=rX7%APW4?3h@3Az!^h_l|{34pfFbeU>(iI5c3Zs za{`Bf71D6*%tSnkODR=o$?#asCP?UK(#t%$7snDX7qJSu{ zs=$`5w)p&ifBXG^l_WJ$KoodT3aI)~bkxHqxwCcc=C4?P^HjF{fKSO!yz~VSAsY8sH93z zceFw?)%YdjH+KA-+A#n(+T_>35I~PE81-4SnAD3mEYgTnI^RZ)1TR?P8F_O<4AFD literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/8.8/checksums/checksums.lock b/discodeit/.gradle/8.8/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..5848739b2de1d0cc395aa1a410d19303f4588482 GIT binary patch literal 17 TcmZSH?0YOOQ0@sQ0~7!NE#L!$ literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/8.8/dependencies-accessors/gc.properties b/discodeit/.gradle/8.8/dependencies-accessors/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/discodeit/.gradle/8.8/executionHistory/executionHistory.lock b/discodeit/.gradle/8.8/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..f64474e6993104fba4d88e6d92fdbb92b4c73fa0 GIT binary patch literal 17 TcmZQxucUOkzinOi4_DO009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=|BFBbeIT~X!H6Z6 z=7oJ8MS0uNi|yr}!qdo)M3S3KS6T&cmlaH|93;6wl)0n4KD?Tp_a(VgS7LF| z%3>KiFC+QU1iSh1XKC|nt|PgsTVve)z2yk|Jys;wQcG$aJsS$Ek4xL{|97qqclF)ajG05i=53;+NC literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/8.8/gc.properties b/discodeit/.gradle/8.8/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/discodeit/.gradle/9.0.0/checksums/checksums.lock b/discodeit/.gradle/9.0.0/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..91a84718715a5f8af92e354947b7cea2bb66c70c GIT binary patch literal 17 TcmZP;pA&f6#dL-V0~7!NCeQ;I literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discodeit/.gradle/9.0.0/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..811bb1dc450ba51e719c7471c40cbf619e9b6550 GIT binary patch literal 19752 zcmeI%OK1~890u^&Hi8tzt*8hJf>wNBcblYbte#pDTSco_>w_NB$!2V(O|t9EB+*_} zP$?>EK%^kGAnHv$h+f1esE7I%y(m5?J@~lUizw(OX=sZcger)93%fha?#}<4A2Ycm zNXTsc`^Z5?kC~%Qv>*Th2tWV=5P$##AOHafKmY;|fB*y_009U<00I#BUj$m+iIf#4 zGkaM{t}!h`NYxa#p;cLPww6picdGEXslNFCLGkYPFDX336#@`|00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwx`e?h=c zi08F?zQ~;?RUi}ZsAX29Ggc!a+!yJ#cG$K zx3+{fhMU%}3l+!8y-<2&1jvkXsbn^H6+Dts+)n<9TH^-%MZpte3%10luco#ol_29j z+qBDJldt^NoP%TH=RVulu)6u!*b=QGUV0;@lp|M|req?`EhdYr#x0R&C;~{cu$(IE zj4Gq5GQyKaH+PN{IyW;RU8K?j`G-f7Ol54*wTUN~ol+h`7U{id8s|}Wt&L6P2GEG- zaD*x=R#+z5UCnHDqe#GJb4ccQXg~{O^I?;pAYG&88l3gUpn5?T@UCO@y53;*8CZ0O> zrT+qZzLMe?ytydur-cm&ex13J9(ujC)S!d13w`E0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2teTf5paBH z-J5>Sa6Daeg|9q4o$B?|vi$vTDl%u&pE$oH@N(J5c#PXizxr^C1D5hnHj6&(cGqQ- zv3G%pEk-d#^%;Jl4wiqkZnU+mg zSSIk2@(V*`gZb3g>)P)LmUelEvV<;lzTGM&5cziUi?-Zj6Axud=ij-rWMRy}G6Sce zYe8&7jIoIwe6US;eofObIKxug)KeFwp)Zu6*n!Ex#!22{cvp zK6Kd{9C$cOG8n}vcIemhix6v$p*}vfTKxIep7VL91386)VJs585 z<`f2XCBNudRia2Xs^1>J7Z)&iQc%t*s8}a{QM`P0OUct>qakXITTFp{CAXNigkPjD cFKWv^XWsL0eb}gqg?_aEi2Ff#ym1u20L?4KumAu6 literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/9.0.0/fileHashes/fileHashes.lock b/discodeit/.gradle/9.0.0/fileHashes/fileHashes.lock new file mode 100644 index 0000000000000000000000000000000000000000..ae17867555fa5a36365b75a59726ed67322667ed GIT binary patch literal 17 UcmZQh5ig%3`uNXw1_%%X05N3*Qvd(} literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/9.0.0/gc.properties b/discodeit/.gradle/9.0.0/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/discodeit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discodeit/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000000000000000000000000000000000000..8bb5ed788d47d8efbef1749d5e534c3ed4b6bb78 GIT binary patch literal 17 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/discodeit/gradlew.bat b/discodeit/gradlew.bat new file mode 100644 index 00000000..107acd32 --- /dev/null +++ b/discodeit/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/discodeit/settings.gradle b/discodeit/settings.gradle new file mode 100644 index 00000000..e69de29b diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java b/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java new file mode 100644 index 00000000..599bfab6 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java @@ -0,0 +1,53 @@ +package com.sprint.mission.discodeit; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.ChannelRepository; +import com.sprint.mission.discodeit.repository.MessageRepository; +import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.repository.file.FileChannelRepository; +import com.sprint.mission.discodeit.repository.file.FileMessageRepository; +import com.sprint.mission.discodeit.repository.file.FileUserRepository; +import com.sprint.mission.discodeit.service.ChannelService; +import com.sprint.mission.discodeit.service.MessageService; +import com.sprint.mission.discodeit.service.UserService; +import com.sprint.mission.discodeit.service.basic.BasicChannelService; +import com.sprint.mission.discodeit.service.basic.BasicMessageService; +import com.sprint.mission.discodeit.service.basic.BasicUserService; + +public class JavaApplication { + static User setupUser(UserService userService) { + User user = userService.create("woody", "woody@codeit.com", "woody1234"); + return user; + } + + static Channel setupChannel(ChannelService channelService) { + Channel channel = channelService.create(ChannelType.PUBLIC, "공지", "공지 채널입니다."); + return channel; + } + + static void messageCreateTest(MessageService messageService, Channel channel, User author) { + Message message = messageService.create("안녕하세요.", channel.getId(), author.getId()); + System.out.println("메시지 생성: " + message.getId()); + } + + public static void main(String[] args) { + // 레포지토리 초기화 + UserRepository userRepository = new FileUserRepository(); + ChannelRepository channelRepository = new FileChannelRepository(); + MessageRepository messageRepository = new FileMessageRepository(); + + // 서비스 초기화 + UserService userService = new BasicUserService(userRepository); + ChannelService channelService = new BasicChannelService(channelRepository); + MessageService messageService = new BasicMessageService(messageRepository, channelRepository, userRepository); + + // 셋업 + User user = setupUser(userService); + Channel channel = setupChannel(channelService); + // 테스트 + messageCreateTest(messageService, channel, user); + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java new file mode 100644 index 00000000..3a1058e4 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java @@ -0,0 +1,65 @@ +package com.sprint.mission.discodeit.entity; + +import java.io.Serializable; +import java.time.Instant; +import java.util.UUID; + +public class Channel implements Serializable { + private static final long serialVersionUID = 1L; + private UUID id; + private Long createdAt; + private Long updatedAt; + // + private ChannelType type; + private String name; + private String description; + + public Channel(ChannelType type, String name, String description) { + this.id = UUID.randomUUID(); + this.createdAt = Instant.now().getEpochSecond(); + // + this.type = type; + this.name = name; + this.description = description; + } + + public UUID getId() { + return id; + } + + public Long getCreatedAt() { + return createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public ChannelType getType() { + return type; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public void update(String newName, String newDescription) { + boolean anyValueUpdated = false; + if (newName != null && !newName.equals(this.name)) { + this.name = newName; + anyValueUpdated = true; + } + if (newDescription != null && !newDescription.equals(this.description)) { + this.description = newDescription; + anyValueUpdated = true; + } + + if (anyValueUpdated) { + this.updatedAt = Instant.now().getEpochSecond(); + } + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java new file mode 100644 index 00000000..9a2ff3f0 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java @@ -0,0 +1,6 @@ +package com.sprint.mission.discodeit.entity; + +public enum ChannelType { + PUBLIC, + PRIVATE, +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Message.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Message.java new file mode 100644 index 00000000..e622318a --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Message.java @@ -0,0 +1,63 @@ +package com.sprint.mission.discodeit.entity; + +import java.io.Serializable; +import java.time.Instant; +import java.util.UUID; + +public class Message implements Serializable { + private static final long serialVersionUID = 1L; + + private UUID id; + private Long createdAt; + private Long updatedAt; + // + private String content; + // + private UUID channelId; + private UUID authorId; + + public Message(String content, UUID channelId, UUID authorId) { + this.id = UUID.randomUUID(); + this.createdAt = Instant.now().getEpochSecond(); + // + this.content = content; + this.channelId = channelId; + this.authorId = authorId; + } + + public UUID getId() { + return id; + } + + public Long getCreatedAt() { + return createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public String getContent() { + return content; + } + + public UUID getChannelId() { + return channelId; + } + + public UUID getAuthorId() { + return authorId; + } + + public void update(String newContent) { + boolean anyValueUpdated = false; + if (newContent != null && !newContent.equals(this.content)) { + this.content = newContent; + anyValueUpdated = true; + } + + if (anyValueUpdated) { + this.updatedAt = Instant.now().getEpochSecond(); + } + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java new file mode 100644 index 00000000..c4f0faaa --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java @@ -0,0 +1,70 @@ +package com.sprint.mission.discodeit.entity; + +import java.io.Serializable; +import java.time.Instant; +import java.util.UUID; + +public class User implements Serializable { + private static final long serialVersionUID = 1L; + + private UUID id; + private Long createdAt; + private Long updatedAt; + // + private String username; + private String email; + private String password; + + public User(String username, String email, String password) { + this.id = UUID.randomUUID(); + this.createdAt = Instant.now().getEpochSecond(); + // + this.username = username; + this.email = email; + this.password = password; + } + + public UUID getId() { + return id; + } + + public Long getCreatedAt() { + return createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public String getUsername() { + return username; + } + + public String getEmail() { + return email; + } + + public String getPassword() { + return password; + } + + public void update(String newUsername, String newEmail, String newPassword) { + boolean anyValueUpdated = false; + if (newUsername != null && !newUsername.equals(this.username)) { + this.username = newUsername; + anyValueUpdated = true; + } + if (newEmail != null && !newEmail.equals(this.email)) { + this.email = newEmail; + anyValueUpdated = true; + } + if (newPassword != null && !newPassword.equals(this.password)) { + this.password = newPassword; + anyValueUpdated = true; + } + + if (anyValueUpdated) { + this.updatedAt = Instant.now().getEpochSecond(); + } + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java new file mode 100644 index 00000000..326a84f4 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java @@ -0,0 +1,15 @@ +package com.sprint.mission.discodeit.repository; + +import com.sprint.mission.discodeit.entity.Channel; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface ChannelRepository { + Channel save(Channel channel); + Optional findById(UUID id); + List findAll(); + boolean existsById(UUID id); + void deleteById(UUID id); +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java new file mode 100644 index 00000000..1477de72 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java @@ -0,0 +1,15 @@ +package com.sprint.mission.discodeit.repository; + +import com.sprint.mission.discodeit.entity.Message; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface MessageRepository { + Message save(Message message); + Optional findById(UUID id); + List findAll(); + boolean existsById(UUID id); + void deleteById(UUID id); +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java new file mode 100644 index 00000000..ebdbcb9e --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java @@ -0,0 +1,15 @@ +package com.sprint.mission.discodeit.repository; + +import com.sprint.mission.discodeit.entity.User; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface UserRepository { + User save(User user); + Optional findById(UUID id); + List findAll(); + boolean existsById(UUID id); + void deleteById(UUID id); +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java new file mode 100644 index 00000000..0431aa53 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java @@ -0,0 +1,100 @@ +package com.sprint.mission.discodeit.repository.file; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.repository.ChannelRepository; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class FileChannelRepository implements ChannelRepository { + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; + + public FileChannelRepository() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", Channel.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); + } + + @Override + public Channel save(Channel channel) { + Path path = resolvePath(channel.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(channel); + } catch (IOException e) { + throw new RuntimeException(e); + } + return channel; + } + + @Override + public Optional findById(UUID id) { + Channel channelNullable = null; + Path path = resolvePath(id); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + channelNullable = (Channel) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + return Optional.ofNullable(channelNullable); + } + + @Override + public List findAll() { + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (Channel) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public boolean existsById(UUID id) { + Path path = resolvePath(id); + return Files.exists(path); + } + + @Override + public void deleteById(UUID id) { + Path path = resolvePath(id); + try { + Files.delete(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java new file mode 100644 index 00000000..73023764 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java @@ -0,0 +1,100 @@ +package com.sprint.mission.discodeit.repository.file; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.MessageRepository; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class FileMessageRepository implements MessageRepository { + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; + + public FileMessageRepository() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", Message.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); + } + + @Override + public Message save(Message message) { + Path path = resolvePath(message.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(message); + } catch (IOException e) { + throw new RuntimeException(e); + } + return message; + } + + @Override + public Optional findById(UUID id) { + Message messageNullable = null; + Path path = resolvePath(id); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + messageNullable = (Message) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + return Optional.ofNullable(messageNullable); + } + + @Override + public List findAll() { + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (Message) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public boolean existsById(UUID id) { + Path path = resolvePath(id); + return Files.exists(path); + } + + @Override + public void deleteById(UUID id) { + Path path = resolvePath(id); + try { + Files.delete(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java new file mode 100644 index 00000000..ec92b666 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java @@ -0,0 +1,100 @@ +package com.sprint.mission.discodeit.repository.file; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.UserRepository; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class FileUserRepository implements UserRepository { + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; + + public FileUserRepository() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", User.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); + } + + @Override + public User save(User user) { + Path path = resolvePath(user.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(user); + } catch (IOException e) { + throw new RuntimeException(e); + } + return user; + } + + @Override + public Optional findById(UUID id) { + User userNullable = null; + Path path = resolvePath(id); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + userNullable = (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + return Optional.ofNullable(userNullable); + } + + @Override + public List findAll() { + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public boolean existsById(UUID id) { + Path path = resolvePath(id); + return Files.exists(path); + } + + @Override + public void deleteById(UUID id) { + Path path = resolvePath(id); + try { + Files.delete(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java new file mode 100644 index 00000000..e11c92da --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java @@ -0,0 +1,40 @@ +package com.sprint.mission.discodeit.repository.jcf; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.repository.ChannelRepository; + +import java.util.*; + +public class JCFChannelRepository implements ChannelRepository { + private final Map data; + + public JCFChannelRepository() { + this.data = new HashMap<>(); + } + + @Override + public Channel save(Channel channel) { + this.data.put(channel.getId(), channel); + return channel; + } + + @Override + public Optional findById(UUID id) { + return Optional.ofNullable(this.data.get(id)); + } + + @Override + public List findAll() { + return this.data.values().stream().toList(); + } + + @Override + public boolean existsById(UUID id) { + return this.data.containsKey(id); + } + + @Override + public void deleteById(UUID id) { + this.data.remove(id); + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java new file mode 100644 index 00000000..5ad8b355 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java @@ -0,0 +1,40 @@ +package com.sprint.mission.discodeit.repository.jcf; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.MessageRepository; + +import java.util.*; + +public class JCFMessageRepository implements MessageRepository { + private final Map data; + + public JCFMessageRepository() { + this.data = new HashMap<>(); + } + + @Override + public Message save(Message message) { + this.data.put(message.getId(), message); + return message; + } + + @Override + public Optional findById(UUID id) { + return Optional.ofNullable(this.data.get(id)); + } + + @Override + public List findAll() { + return this.data.values().stream().toList(); + } + + @Override + public boolean existsById(UUID id) { + return this.data.containsKey(id); + } + + @Override + public void deleteById(UUID id) { + this.data.remove(id); + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java new file mode 100644 index 00000000..a60363a3 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java @@ -0,0 +1,40 @@ +package com.sprint.mission.discodeit.repository.jcf; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.UserRepository; + +import java.util.*; + +public class JCFUserRepository implements UserRepository { + private final Map data; + + public JCFUserRepository() { + this.data = new HashMap<>(); + } + + @Override + public User save(User user) { + this.data.put(user.getId(), user); + return user; + } + + @Override + public Optional findById(UUID id) { + return Optional.ofNullable(this.data.get(id)); + } + + @Override + public List findAll() { + return this.data.values().stream().toList(); + } + + @Override + public boolean existsById(UUID id) { + return this.data.containsKey(id); + } + + @Override + public void deleteById(UUID id) { + this.data.remove(id); + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java new file mode 100644 index 00000000..eaa8e07d --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java @@ -0,0 +1,15 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; + +import java.util.List; +import java.util.UUID; + +public interface ChannelService { + Channel create(ChannelType type, String name, String description); + Channel find(UUID channelId); + List findAll(); + Channel update(UUID channelId, String newName, String newDescription); + void delete(UUID channelId); +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java new file mode 100644 index 00000000..e7662d0c --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java @@ -0,0 +1,14 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.entity.Message; + +import java.util.List; +import java.util.UUID; + +public interface MessageService { + Message create(String content, UUID channelId, UUID authorId); + Message find(UUID messageId); + List findAll(); + Message update(UUID messageId, String newContent); + void delete(UUID messageId); +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java new file mode 100644 index 00000000..79111d55 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java @@ -0,0 +1,14 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.entity.User; + +import java.util.List; +import java.util.UUID; + +public interface UserService { + User create(String username, String email, String password); + User find(UUID userId); + List findAll(); + User update(UUID userId, String newUsername, String newEmail, String newPassword); + void delete(UUID userId); +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java new file mode 100644 index 00000000..edb7231a --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java @@ -0,0 +1,51 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.repository.ChannelRepository; +import com.sprint.mission.discodeit.service.ChannelService; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +public class BasicChannelService implements ChannelService { + private final ChannelRepository channelRepository; + + public BasicChannelService(ChannelRepository channelRepository) { + this.channelRepository = channelRepository; + } + + @Override + public Channel create(ChannelType type, String name, String description) { + Channel channel = new Channel(type, name, description); + return channelRepository.save(channel); + } + + @Override + public Channel find(UUID channelId) { + return channelRepository.findById(channelId) + .orElseThrow(() -> new NoSuchElementException("Channel with id " + channelId + " not found")); + } + + @Override + public List findAll() { + return channelRepository.findAll(); + } + + @Override + public Channel update(UUID channelId, String newName, String newDescription) { + Channel channel = channelRepository.findById(channelId) + .orElseThrow(() -> new NoSuchElementException("Channel with id " + channelId + " not found")); + channel.update(newName, newDescription); + return channelRepository.save(channel); + } + + @Override + public void delete(UUID channelId) { + if (!channelRepository.existsById(channelId)) { + throw new NoSuchElementException("Channel with id " + channelId + " not found"); + } + channelRepository.deleteById(channelId); + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java new file mode 100644 index 00000000..bb8b368a --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java @@ -0,0 +1,65 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.ChannelRepository; +import com.sprint.mission.discodeit.repository.MessageRepository; +import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.service.MessageService; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; +import java.util.UUID; + +public class BasicMessageService implements MessageService { + private final MessageRepository messageRepository; + // + private final ChannelRepository channelRepository; + private final UserRepository userRepository; + + public BasicMessageService(MessageRepository messageRepository, ChannelRepository channelRepository, UserRepository userRepository) { + this.messageRepository = messageRepository; + this.channelRepository = channelRepository; + this.userRepository = userRepository; + } + + @Override + public Message create(String content, UUID channelId, UUID authorId) { + if (!channelRepository.existsById(channelId)) { + throw new NoSuchElementException("Channel not found with id " + channelId); + } + if (!userRepository.existsById(authorId)) { + throw new NoSuchElementException("Author not found with id " + authorId); + } + + Message message = new Message(content, channelId, authorId); + return messageRepository.save(message); + } + + @Override + public Message find(UUID messageId) { + return messageRepository.findById(messageId) + .orElseThrow(() -> new NoSuchElementException("Message with id " + messageId + " not found")); + } + + @Override + public List findAll() { + return messageRepository.findAll(); + } + + @Override + public Message update(UUID messageId, String newContent) { + Message message = messageRepository.findById(messageId) + .orElseThrow(() -> new NoSuchElementException("Message with id " + messageId + " not found")); + message.update(newContent); + return messageRepository.save(message); + } + + @Override + public void delete(UUID messageId) { + if (!messageRepository.existsById(messageId)) { + throw new NoSuchElementException("Message with id " + messageId + " not found"); + } + messageRepository.deleteById(messageId); + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java new file mode 100644 index 00000000..51f24ab7 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java @@ -0,0 +1,50 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.service.UserService; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +public class BasicUserService implements UserService { + private final UserRepository userRepository; + + public BasicUserService(UserRepository userRepository) { + this.userRepository = userRepository; + } + + @Override + public User create(String username, String email, String password) { + User user = new User(username, email, password); + return userRepository.save(user); + } + + @Override + public User find(UUID userId) { + return userRepository.findById(userId) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + } + + @Override + public List findAll() { + return userRepository.findAll(); + } + + @Override + public User update(UUID userId, String newUsername, String newEmail, String newPassword) { + User user = userRepository.findById(userId) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + user.update(newUsername, newEmail, newPassword); + return userRepository.save(user); + } + + @Override + public void delete(UUID userId) { + if (!userRepository.existsById(userId)) { + throw new NoSuchElementException("User with id " + userId + " not found"); + } + userRepository.deleteById(userId); + } +} diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin index d2567ee7162d4c8e9b270cf6e9b6bbd74e3d4303..c040c2da4d29a217422f55521175366c911284ce 100644 GIT binary patch delta 1880 zcmX^6oaz1y<_RKOe>Stdm(i8)CbSygGtS?N_K6{(d17VK|}H+!BrEGj1YG~mUjPaVt{LX#Wo zT{kz>Phew`xHH)?S(>FJHMd~$!BWG?v2A>lSFBW>JZ+8)TyRn--(>Yws*E?0mD)^Z znW@Bh7a`<0(?KBO(nFScb*ZfLKL@LMOp%kHJaMKN<12)kgQZ&GMX3e(#hE4fMV0!_ z8Hss$sX0M#5xuO$vP5P9SphZ|$(N4hUp}fR7ws;OWL!j0(`OV*GLh7$W#**ny8#JY zwyjW(nZI*QedeQk7EgPHm+>&JCSErY*7~Lv7bm8tVt6uk!s>fye1+ZMO66bSKS zw-&qZ4=BD(#^&D8;?yDxJ6$wx-)ezpnf0Y(|VLh}8NK#llo1U0KO#`d-d% zxB}PeRI-~yRCj6opTr-_`RCa)t|V43K`XHb4YNS>?V2dTrSe{#-{v)Kc=<&ao0Zu0 zzC-b4Jf=&r2I|z8)8`xA%QVZZF8s6c(FA?QWkhMjoh`6Cj#=P-pl-Wa-IOVB8CE%l ztQY@>k}a@ndXD0wKqQA@^~!&R-PZSN&ivh&dFAr_g~jrW^YQC=f-pXDbqOO9H*l7b zvrA@ia(+=taB5LmW^yVtZ;QP+YIx|mZVU69bOCY2Qb)!)z=R5t*TKH zJUK8;Se03zm1}>0&BWM)PS-^99~|$?XIu(13q>U(PGb}*M9od^adNetYnj5~*1qYd zuxd6IL!e=c>=C5c1G>x)ZXYOEk<~E^aC&E~Z8^B9HE|zDSDx1Nzl@789Eq-J^2Kau z=^Hq!37KQ*i6xMj1+rU?UTMB?@V&9ZQvQGQCNwiHhFJm4omh0C7&{pl5JK9z4}M%0z^Da9wt7syY-oI&@mf` zc<@x1_+(QF4}qo18+O0W^>>FzhN@03m9P-lwAsDrj`c67Nx_DbmjVS3@lTdb2>tgQ zqB4ke@>K~1fg{dWw)4MUAPChSKKU(B@Qg0k%?nR0^B{sD+LKu&0|aimb4J7*OqYdf z&z$Tlxk2EMXZGPMz4slVD*GpYm9!AxV9+=dk?ooYHFNi5RjCXOY3_6P*EYwmhiX3y z^MuUZX%$*iPG5nD2PaQ%m9pg5y2)c8#|u>(e0=g&sSN@a`m!y5gnvzin%X%zR$7ri z%+_zU-{8m~)Bj|+N zx{&Y7>mY(52VqVMS<=p)TeAE(R6KSvt4xMKLOQeTJTEIVsHx49Q)L1KGT)jx?EGJ` z6(Sg9K6$N-g-x+!!l6o+jFV99pJB$9ygkr%(#Qb(n&iB`avKAt-q$a=h7lw+n2EbI9Ls`2f&km59+#CQ=0pdYa z?3#QQuJ%7r1-Cau#g56!-Y_#lp{yN~+u^L8P}Z)=uf3%vO9n!8?VfBH2+_5Bax$D{ z7$`NF)dyy?tdG>>pT02lf__qy&7pF8Ci?^B)&~mng8aD~5;QEvlO_FBkwv%#C!Y_5 Zi0p!>VKAHQ?WZaT(ghV^OaaR10RXLWEH(fD delta 109 zcmdnGma%mS;|3E6Mx)8K5+0N9N*GL5l{A=~D=9H~E)buU^q8zGwPNyHDTB$T(g~A~ zN*hk*lUY9btc>L3e=_cqV`U8|FOwCY{8lz$a;luiS9;RFB#$t?r` diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.lock b/discordit/.gradle/9.0.0/fileHashes/fileHashes.lock index e2554b92268adc1015d0db6255e64a42aa46df9a..ab39f30a16396adc9988e43541bf268079739a9b 100644 GIT binary patch literal 17 VcmZQ>Zi(JD^~t+O3}C?04*)?01^55} literal 17 VcmZQ>Zi(JD^~t+O3}C=g2mnCm1=;`r diff --git a/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock index aec937c802ef6e16b01e0a496343513becd94d0b..2c43e9d1537594ed376bfb149e223bb7822586c3 100644 GIT binary patch literal 17 UcmZQ>_0_1)+G*X)00zwR04cKrfB*mh literal 17 UcmZQ>_0_1)+G*X)00zu_04bsaZvX%Q diff --git a/discordit/.gradle/buildOutputCleanup/outputFiles.bin b/discordit/.gradle/buildOutputCleanup/outputFiles.bin index 8d945e5e90052265137ac3878d957ba1e7bfd4aa..4e1204199d28f3e77b888cb42daf53c6dc052982 100644 GIT binary patch delta 399 zcmZ2Jg>maN#tkMCj#{$~xc8P^E}zE$1|F&ZpAJ!Pv>IQVJ2V&tKht zqOB5R3PS+QDS16xl!?l_(p>U(anw?&lmv_s2X1Y diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe index ef11c0ec529c749e23bca9e586baa9ddc64cdcf2..ded2f97a64b3b0e2bfe9495b93104ef210b7c485 100644 GIT binary patch literal 8 PcmZQzV4TAwJ|hVL1o;86 literal 8 PcmZQzV4VGh>1q-H2=@ZY diff --git a/discordit/build/classes/java/main/JavaApplication.class b/discordit/build/classes/java/main/JavaApplication.class deleted file mode 100644 index e9dda19eb0c79ecad5ef4a1e633054af012bb083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7079 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 diff --git a/discordit/build/classes/java/main/entity/Channel.class b/discordit/build/classes/java/main/entity/Channel.class deleted file mode 100644 index 862ec4b828cfed575518fc5dc382a4d3c2d77b73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2310 zcma)7ZBrXn6n<_9Sy+}rQ?P=(q$P#0v_!31Z7Q}6(n15M0jgrhS&}O(Y<4rdH_Y%C z{O*h&{Rujjk?9A2fPcmQhK}dnU6M@*9d~B;+?Vs5dtRP<_MbPe{s!T0T>KdlzKzhPJVlPb(ul; zEw}2`!bv(eUust<^y3PKGz=TKiZtQ5D{OI+FCJK~%N>S$c^ZB|0EY1;1%Gzx^}3QF2x+?dQ!A!fXD9$AiQT)NW5p;l71PU@7DiBdZo zvJorfZh@hgd)xm1@?nP|S@f!O)=)#i%D@HnKayS zGI`Ux&&4Wn)gW1HF{4TO7B@nj?Q>EP2_+=XhLQ7o66Zsxx7;EE!(hm)=4F|S*Xr`j zQ`CLJ3-{@Umc52w;VZTb+K6l|%4h2;Zu&b8+BR zgP{~Qb$o@dHGCt9R%Xby`iboxdq+GU`Vn$(#i|I;KVkSa9!aDa8huLr#Nk1<oGP(O4bU$-RuFJv+(2}qj6%bA47V;MvRi&M>@rNf zU6nd|m`vQD{*<7ukV0CvV;UuB?WU5{%9Nz$r6lzwB|pJEl6{~XfKTcB8O?r150WHJ z^Di*-4B9CMNnAU_*eRx)qZ#w|DQ3+(r!fCew(iq+3L1UK2tQ80lnIPdo13Q9EPdyZ zK|$ILt>Xdxu;gPxdco94`X^&BW#=S67?xl}e&tC@tzPpb27jkP0`ka|TAWd)r79^z zrWwA#Lt2qR#lh2^;JL2gM_s`)o#2J8;KwL-IeE4dobL)=?g}v_IEHWWJ$}I0e`AmhDF6Tf diff --git a/discordit/build/classes/java/main/entity/Message.class b/discordit/build/classes/java/main/entity/Message.class deleted file mode 100644 index a2d40b3ce828992a865f94001c7a6e474995cabf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2293 zcmaJ?+j84f6kW%5EJsxm*GXvurEwF-IL^h;3zWJPQkPH%yP-I73xNm4J~(P*DI>{Y z@*NB_Jn{)JG()Bjd;q@!-@vfXks`}RLuTZyeYDrUuCw#!Kd=7)@DaXIkw8*GO2Y)w z4B40ZiC!^vt5?}Mc*#2+L;8VX8Qw#NWND?XB7;c0ielfIyXsC$Oj6U!VZKvK<@g8m|xGieBGujR5i=kMG1n}or zjTRTg%n=3N*YE-EF6wc!%`ndb;IN8(&17iLO;6&d2q@bHpMzi3!he zH|lx>8d53kYP$_rWyK} z@@W(5%Rz63mB%!ddXe#LzjKsR%N{r#zGaA3Xo05e;I{3^|DUa(W#lb>vC7Y3x?(Yv?{Ix3chBz@&Bf@VEuOCCSCRf zUCA_ZVms1Xj?NZICd6iul6Hxdv?rvb%|KEGaTy=d?|ssKKoTjEmGbXk<#Q-!m?ANI zj`=ezgl|jb)iV^!YiB5z*Uzy2t8`eU-$h#Tpkz{*p*5ey6-sA;0u?Yz;pebHClAP? z?1!O$BM(WVfMV5A65>rHD2l0wKA%RK!i=p!)wyDFeQV) zHNz*^q!UqH6udAFz8(vH6boJ&2j^qKH9U@qTpR}%V!@xr)?6M3mtw(NvEcP_@LDYR zGuckjuvL0QGud#!ey1xDAPYPF1ofcaHjOPwz^vd%ambsYpK1C17R~84QRR;Gm-jIt zDYBBwB7v-=M}oX>hdr$kg~YdcqQU|_OM(*Tc$Y-+HSPlA)!vIFJs$)~;&XD5Km$#Z V8FKiPo?Wy_6IbIozQR7{{{@<+;%oo_ diff --git a/discordit/build/classes/java/main/entity/User.class b/discordit/build/classes/java/main/entity/User.class deleted file mode 100644 index ea674b990ec526a54e2966fa59588f9afb393a0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2433 zcmb7F?@}986#v~2SlBKF5^N+<3`h||Nwij5NNuH|*w6q~2vyM!OLB!Ro88RrhMCOh zQ#j7}(MQm+8JT|Y0elsG2FG*nF3BeDbcUVTz4z{(-}(DHXaD;5)t>-9!8a;m7*Y_| zFpLp~$rt*$UNCj*q_B7Vg4aBTk^6>acn=tcmX;4yjABfIs^Jm8m5q7xW+Bd@Y;o{%N>T8Q6~?gAk!M&zzveG8*bCo z+q-&$GbDUb>FvJf7}kl@|E7i+Aw0|*x?u{784Yhqc=Ob@_-?Cl%pDc8ct=52!yM-O z0^e`D9&a#A)mn~24jvc{zGIlC;mRCrt60EI1&bQq!_s9Aq!Sg}I$==Gb+g6yzGFx( zZ3h|XewH5QG_2qj!&uGXy2tAql;$Are!;wkf)s2u>%O3h4{%$-hr;-sez#=?7#5d8 zY4M9#40{n|Dna%CSi@c1V@NghGhVW-n(jR}yi?k_o^E**@AqM4BD`Wq`QSOw9Fn-g zn+O*f*23nmqU?|%Ub5>%l8K6OS@Hw@*p#%fYr1);JBBz1FXP^+sPA|s#KlFsaLEnvwP+8WvZ8TB3=+=Gfda%%XW~UAR2~Il6x$e>O-FOC`#=_-!@FsZx7Wc zfqy6mnd$akxG-1D)Tn3s2r{^Dx11W^GDM=rgsHsfU?SQh+xA?~(VIKmJGJZX#0d6O zJj3S-z7RCpXISVB55qdQ&v?OC>oaRhuX(o9X81W=)IiWz`hqtcX&o4jy{rk&rvud|Pv)Sx=mIXDSjt$P$ zyiupEyu^2lCR6wD>2SqRiG1kc;hKJAs2Me?cso~s9jQ>iT7=+mo`7$k4 z3sDjXR5N^v4SFM@3xk&j!LyOzN0H#wLGXMexP;9J%gI6TVkG!+Bset)&P9T^BEjiF za6S_JnM|ih*b3bunXFe}Khw8EK-SIl6O@B^f1t7r6EGuqlN7v3>oD?b3aKLpq60dXBGfgqi;U(Xa=; diff --git a/discordit/build/classes/java/main/service/ChannelService.class b/discordit/build/classes/java/main/service/ChannelService.class deleted file mode 100644 index 43a26bb630ae2d6b1a4e3bef54fe51bc25288ab2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmbVKO;5r=5Pge6<)et8C>{+5xY!?n8V!bogv7*(_mxiSl1(M;mW03N!5`p{GEPfH z6ufxZ$-bHQW_I4bf4sf{xJ1iBPM{f4I9C&L`p+^5NW06cgbe^8)2eII*lC yAh5%q1IV-ec@&U*0}Fd;ETY8uGG}wBFm9uo;`^wj*g<;M(cqX=9-@hp>((c%)Ug%- diff --git a/discordit/build/classes/java/main/service/MessageService.class b/discordit/build/classes/java/main/service/MessageService.class deleted file mode 100644 index 63f721aeafacadbf2d315afc06b4df5d8f7c9c37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmZuu%}T>S5dOB>#zv#H0UtmVnu~dWsvs0Whn(3ci{LAHataCuvNJ z>uH&9zMt8dukVjf05=Fd3rngDoQt{hkb#`O0H#WWTE1xmlb7Jz?XU6 zF$EU0WXnixsS7pVAhp#dUM?RNP8}swSZ&{b^XBZS$o8J+o#)o!A4R~5J7ap$bQbO8 zCc3h0J5IGKq^(O5xNr#9f9JSmNl?G#(o*kx=?vq3IC^GXPKI`Lp`&Y9e)?LM8Qp8c z6NOz!x9_WFks|?tJw6UFi_@% diff --git a/discordit/build/classes/java/main/service/UserService.class b/discordit/build/classes/java/main/service/UserService.class deleted file mode 100644 index 31ef89ff2fdc59e18abf8e7988a3df17d5068e15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 491 zcma)(&q~8U5XQf)wz2U~WAgywt+|*7hzf!h3V|L%ysya+wk%Q7O~F_5-~;$jrIX!? z*j#$r;ro7kGduIM{rU#*fY8H0AY4u{BD^dA@i~4q2bsC#@YmokgynRZG)0ByigU?*H|EWZrK-N@>U?E_wqT^PxTyy>f6#ntp@BUa&>7_qHi$t~3uD ybR+DSf7dN`Bp`6YX99+Niy=nnZsOt0zGL|8pR+r_1?!i%vibx8YXaBSneG6ZI*9=Q diff --git a/discordit/build/classes/java/main/service/jcf/JCFChannelService.class b/discordit/build/classes/java/main/service/jcf/JCFChannelService.class deleted file mode 100644 index ae249ad6fde146befd250bac360e3008fbf7e103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3765 zcmcIm`*Rdk7XEH#l1`e=g8?EV5JnA{$%6rPQ5lH9kVx1GsDWVcwKp@Jq)DfHoau?i zUEkmf-DTIu;x6L*Sz0~{6M-uACx5W~Pm=u)wzfR?_D!beQEHX7sY*}x?Q_rh&Ue0Z z`u_O8%ijXngO7F8A*3N}pdJkjZ72CGPuSda?L#e^k6n7lc9`RQh!ddQd zhSqe+8+l5u!fHe`tTC__>lm8L-V&NwZWql0!}_jxU}ws;Z9;3g4mr3A>or6TT#XG3 zYfBDFM&zg9o_TMZj;-hsI_PCsS1V1b{x*gd)A1~CE}`nFqYvA~t{n`iu5|g!PGxj- zE@vjIiK||Tj|zV`8n_96V5pxoy`d~aq^w5Ajtw1+TWh$gu~EZq3~Nf|+?UVuxwKXAbo67N;AB5TG+4=!0+W8G z2Mi2gkYrxWQ9GE5E~;4&fs$D*wnVoaG%zHvH{{J3ch+peACcBDY~V1Cly&sTT){I* z@*!97wa)ivxg=G~@s#9s+=;t1j2JkIW97T0*cmk0fk!5OohF4l0*2!T?#392e}+$+ zDc7OKIBt1UbXV}W<554Cajtd-Iafdr(Ca0x26$m(&1h) zPmy-`Ov_%T5w|<=D79SCG|B!XjhmF4rLC=L%P|iZXU5I^Q9f?dN+j)OxIN1AmUvc+ zVQWNGpO+p3O7|Gt)%2B1kV)pW)hIOUeqwt3A|NG~i?A+dZmiSDQHoy*#iH5ZG!D42 z-dWN>=XQoIwMI?(7*EEDZ+*lq<}>D?B~;j6^+Dez<{&Y)-*vr$m*=@*)0=X$h1LeV zsN*I4Rm0y5oWa%SCWGm)0SXa}F*8PCnnQQc>PPd^1gs!e`?gWSp5W}!3f zy3@s6aN?_p5g@Q^W92vLx4-m5218Zv4UR7LHpOjw#G(U18zzXAS9Cfry=veYJllqU zQgtf3kyt0Q*LD00|JHC`Owcz-T2ZsY1$8 zy(tQ;;eAqg6=k)gqv1n_j$byVkAkl=I?}D8lQY94{YS)smwqieF4o~BorUS>f(E)y z)5UI6R90&Q#oOOcnA+8Odi%^4v!G_Kht~4^uOq)`HjEeQI*$z+9~$72!uVCu&WN=qfcO~lh}NA zHcAZbzU2yr7CeT>$q&O5c#_@;zLSdY)mP9zw!+l{_Ex&w93XtPa_N`wDRMY~rxn1n zTLwjjdD?L0(vr*C@#A(CAFVa0;gtx-6v~B6J-J-R+XT;jeJ0_Z!@C8Kb~FPL#yf zBCQi7+3nbb9THQ__ppMgLt$z`n~Y!Ari(G9BJQDxqF_xu^LU_p9+^++Ay}(OpjJ&X yDKbElbVa96JSXj+#|!iup`B-F?H_m^mhRF zP>v#mu!4w+3ut19?ecw|(z&snTHf3hd558CQZqE?K0|moxu&3*q0==gJDQ%F=l0Gb zFGZms+=5o93ffe(ql4k9Ev$VlFH*btt<;0e+@i2;zAbXzE<>ci9nR2^Jx3#?w1Q5C zc40W0bCB|VqKKhOGQ7xed)RYuIp!QoGq%$Kh}G4FnY#DnnndVUaTz@f7q*47P+*7; zCu<#B@f@C4a7D#c^fI(nQ6mLPWfJ60kb$R?A2Fa?+Q$xVN%TGy*U?Wa$ z3I-Xv&dE$!7C*>pwj&X5sCWUxRHuEemxayHQKuq-NoJ%Q zlw`2#XQ(t<4;Z@7hNgB}T5{U9!JV=t7;XmImPTeW@aom1dV13L(==@vvp}vLSIEWR`{k)JMpZU=lUAAH2LmtMw}gu(!Z8HqtkGP2{y_Lg-UnKG{~!t+j$qeT$9-v zvV>`fPb-*l4rxZPWl#Ks1AuK>c;C-GEw1 zBg{5(o6_})XZ1NE$C88@tQtbOIay0UmZdG{@cbSX(HFk0AaoHJxUPCuYot)lEL(Xo zr^y0#*PX2sQe(<^+B6;8v3O}wkRAoQqX|1vXxLS-CtF`9nr=BV0jUA|8mE+1mNi;Bj6tMTt*5JVT5E-uP zIn5F2X3#uM-1C0=hG%B8vn#X7(=UHK{qFIzuOIh4`{A3@ub!NK|3%-KO_VXH3)DSU zM(4IIYz3dt!B(e3qx2NeQ1t${DIIy97IeiOUy-ljK(caZb(J|pZ4 zwAXin*v9DC_z~iFBO|{enur|YQX+DUL>TLd$WLSw!a077Fgxk$i@W%@JPaS7(6EA4 ziXc~OSSL@pdY4vV^1Fx)yhr>P9^rj@dU=Iht9BWC^cdGd_ye)?s4{=hr7W}Q_AD#W z+VKG)Gy44yAJKObFYW8pd4horiFu46h9e|vA+H1k>hvK!=|3hwy4vU|0Y4|e2z@51 z2riBPiI(xvu|tf>3WQyS;;!L!szg8OGk_ipxj{xefC}$~&znG9y+Y*C>S_}PC$wg; zztN-6|04{W$ooVJl%cF}uTSJfSEubHV9R5IZHixnNpDeFm0-a^;$Hxlek}k1 diff --git a/discordit/build/classes/java/main/service/jcf/JCFUserService.class b/discordit/build/classes/java/main/service/jcf/JCFUserService.class deleted file mode 100644 index 22b1740a48f2109264a918b6571ce2cbaf3bfd5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3569 zcmcImYf}?f7=8{A7S`or5H(&1ShNJxShZdV&?=%rgO?&$u(w09z{+MfCL1cfT3cJI zz1UV;ZP9A$M?1ZY1<{$dpZdY+KY{*(PN(nL-N=S8)-Pp-EZo6 zJ<`pSG9(n1Vi6PxWeUns!LTB&rpC0G8a^Hy3U{^d?WN})XN#dI&MnSR5uJk~n8+e5 zhF?OJf+eVCD9d?ERK~cTQPT{|8$uq-c2n1hs%9Dlunfy31Qe{mN`@tK0CR^3CvBxv zo?uv+gX8Rmd+e7HKMAy2K@EaL*HY6Y#pVXbtE~?m(~RMWm&j1YuxW%3rPR0<aa$_V+!iAmSNc(p&V}vCEOVA=2mQkq0V(E>teft9oR`_n9NWrc6ePnr5f=#aCh9~cd-!shcagh!g1^1s&MSAZLJA4(7CX&v@EWsRas6A!oJYK{KgzHN$dS zK*nJ_E1^fh5%lI-+r`fy*&TUs=)YBTBk_absDkIvPtB0vqiVZpP@^2xtPxtJEpAxU z-#IC9Exjpmw`3f{^AcWA@S><(Cpoz>5XGd3NH;{Oy{v#^kfEFszeh_abv}N8CsY~~ z*_!jVwg^A2Km~^pH)zlF_sMC%=YR0(U$5Wbkb~lTx5sfIWie`!A zk6yx*cs%ZuUWd2xT}>aU)S_OVG#BDtE&cfr)ZA)Pa`aNx zmKg-LH{!aQu8*4LXeQ~MwfTjUV|Zjdsd|q;`b)>=IN>I(D7`|kGup|8Jb$1zuJa99np>>9iiFN-_Ks3n7J_FUI1#d2V};ebQ*@5 zYS(!>t)?Yhr>jGr2n$t$gl`#Y9)6U@r&Bg`8CpaaPKIIn_ltWXeQR{lD!_5NLeiK( zF@28G&TbUa3aD(H0&BbnsecNkzd-)UKCRPdIh_E?P-Np&AVE)xV*>*wJuxJ4!o|C9 zV*_1{w;@lXl3^N4Nu;}21zOe?U|Ugj(G`^4!@7Qd!xS2SyN3<^P3t#IA>8Z}Rsr86 zHV1su*j9+60pE}0p%8*e4RHsy(4}=NR$?1!u^o+Qrd0&{=&B)@wNYf`-DM_LDWq+- zU9f0XV86}Ks*o_k7{erLZj*44bCWT!7!P zL2xUuxd}amnu5bp=i~zp<#+>c(tC!taEjgu-6O8;!4jchjYL-ghSPY*r5LB!g-wl1ai6VW_s{5Be+P%| zq7RtF!2HVVrMm0GYMK~A+gb_zWrqR0qtGDr?`kO$i)P%(Y{QpZ*T+OA@DEcbgHia diff --git a/discordit/build/reports/problems/problems-report.html b/discordit/build/reports/problems/problems-report.html index 3dd98675..2e25a546 100644 --- a/discordit/build/reports/problems/problems-report.html +++ b/discordit/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ diff --git a/discordit/build/tmp/compileJava/previous-compilation-data.bin b/discordit/build/tmp/compileJava/previous-compilation-data.bin deleted file mode 100644 index 30a32493c315a423d2a87613e010d60406c60fdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmd;P2xfF<(qm@mC{8UZ%S=vXVQ6G!XwOK@%S+8+V`zs63ixb&J5gToc=5Xe8<8tQq;?d*PW9DOM$x2RR0RmPwfz%c2B4-p(O{jZm^GHr<6O&g<3cIYM97C&DVp*a*Lw7+zPG)jqNoIbYz>C^gUG1pP*+*rx z%A2!pM<@g1#)xR|eYtU7#GS;>#(>CU9{L`*K;Q)PIdZoiVA|X`);Vj0{ZdvJCt{ zN>-Uch>=m2Nm_wH3`jFGuuC#10L7(c86+8*#AKNm*cp^S3iy>7*nu8!|uZcc0SQ$`+-&D^m*gVuk6sQZxRj|;rbT(iGv6&>rtn{pdZ9+Ama?-YX pvS3BBc6#={27+L=l7pUOu#>Y1D?~qovz|+^tFs1_%MNlU0|0bVl(zr? diff --git a/discordit/src/main/java/repository/UserRepository.java b/discordit/src/main/java/repository/UserRepository.java index bcce25e8..e3c7da09 100644 --- a/discordit/src/main/java/repository/UserRepository.java +++ b/discordit/src/main/java/repository/UserRepository.java @@ -8,7 +8,7 @@ public interface UserRepository { User addUser(String displayName, String email, String phoneNumber); - User getUser(UUID id); + Optional getUser(UUID id); List getAllUser(); // boolean existsById(UUID id); diff --git a/discordit/src/main/java/repository/jcf/JCFUserRepository.java b/discordit/src/main/java/repository/jcf/JCFUserRepository.java index f2d0857a..1789590f 100644 --- a/discordit/src/main/java/repository/jcf/JCFUserRepository.java +++ b/discordit/src/main/java/repository/jcf/JCFUserRepository.java @@ -61,7 +61,7 @@ public User addUser(String displayName, String email, String phoneNumber){ //READ 조회 @Override - public User getUser(UUID id) { + public Optional getUser(UUID id) { return data.get(id); } From d2929f674b6adfff495aed8184439268c41dbede Mon Sep 17 00:00:00 2001 From: apple Date: Wed, 28 Jan 2026 10:22:28 +0900 Subject: [PATCH 10/12] =?UTF-8?q?=ED=9E=98=EB=93=A4=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gradle/8.14.4/checksums/checksums.lock | Bin 0 -> 17 bytes .../8.14.4/checksums/md5-checksums.bin | Bin 0 -> 25847 bytes .../8.14.4/checksums/sha1-checksums.bin | Bin 0 -> 33995 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/8.14.4/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/8.14.4/fileHashes/fileHashes.bin | Bin 0 -> 18697 bytes .../.gradle/8.14.4/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes discodeit/.gradle/8.14.4/gc.properties | 0 .../.gradle/8.8/checksums/checksums.lock | Bin 17 -> 17 bytes .../.gradle/8.8/checksums/md5-checksums.bin | Bin 0 -> 30147 bytes .../.gradle/8.8/checksums/sha1-checksums.bin | Bin 0 -> 78431 bytes .../8.8/executionHistory/executionHistory.bin | Bin 0 -> 47114 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/8.8/fileHashes/fileHashes.bin | Bin 19197 -> 21447 bytes .../.gradle/8.8/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.8/fileHashes/resourceHashesCache.bin | Bin 0 -> 19211 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../buildOutputCleanup/outputFiles.bin | Bin 0 -> 18929 bytes discodeit/.gradle/file-system.probe | Bin 8 -> 8 bytes discodeit/HELP.md | 22 ++++++++++++ discodeit/build.gradle | 34 +++++++++++++----- .../discodeit/DiscodeitApplication.class | Bin 0 -> 772 bytes .../mission/discodeit/JavaApplication.class | Bin 0 -> 4482 bytes .../mission/discodeit/entity/Channel.class | Bin 0 -> 2061 bytes .../discodeit/entity/ChannelType.class | Bin 0 -> 1237 bytes .../mission/discodeit/entity/Message.class | Bin 0 -> 1849 bytes .../mission/discodeit/entity/User.class | Bin 0 -> 1943 bytes .../repository/ChannelRepository.class | Bin 0 -> 712 bytes .../repository/MessageRepository.class | Bin 0 -> 712 bytes .../discodeit/repository/UserRepository.class | Bin 0 -> 691 bytes .../file/FileChannelRepository.class | Bin 0 -> 6506 bytes .../file/FileMessageRepository.class | Bin 0 -> 6506 bytes .../repository/file/FileUserRepository.class | Bin 0 -> 6464 bytes .../repository/jcf/JCFChannelRepository.class | Bin 0 -> 2171 bytes .../repository/jcf/JCFMessageRepository.class | Bin 0 -> 2171 bytes .../repository/jcf/JCFUserRepository.class | Bin 0 -> 2135 bytes .../discodeit/service/ChannelService.class | Bin 0 -> 810 bytes .../discodeit/service/MessageService.class | Bin 0 -> 744 bytes .../discodeit/service/UserService.class | Bin 0 -> 794 bytes .../service/basic/BasicChannelService.class | Bin 0 -> 3924 bytes .../service/basic/BasicMessageService.class | Bin 0 -> 4376 bytes .../service/basic/BasicUserService.class | Bin 0 -> 3759 bytes .../resources/main/application.properties | 1 + .../compileJava/previous-compilation-data.bin | Bin 0 -> 26193 bytes discodeit/src/.DS_Store | Bin 0 -> 6148 bytes discodeit/src/main/.DS_Store | Bin 0 -> 6148 bytes discodeit/src/main/java/.DS_Store | Bin 0 -> 6148 bytes discodeit/src/main/java/com/.DS_Store | Bin 0 -> 6148 bytes discodeit/src/main/java/com/sprint/.DS_Store | Bin 0 -> 6148 bytes .../main/java/com/sprint/mission/.DS_Store | Bin 0 -> 6148 bytes .../discodeit/DiscodeitApplication.java | 13 +++++++ .../src/main/resources/application.properties | 1 + .../discodeit/DiscodeitApplicationTests.java | 13 +++++++ .../fcd81e3e-884b-4f56-b777-dad45e6f6f9d.ser | Bin 0 -> 534 bytes .../24b61ba3-e15d-4d90-a6f3-8c53002a67a4.ser | Bin 0 -> 418 bytes .../58c01899-95da-4e81-b490-93c4cdbf8cf0.ser | Bin 0 -> 388 bytes 56 files changed, 76 insertions(+), 8 deletions(-) create mode 100644 discodeit/.gradle/8.14.4/checksums/checksums.lock create mode 100644 discodeit/.gradle/8.14.4/checksums/md5-checksums.bin create mode 100644 discodeit/.gradle/8.14.4/checksums/sha1-checksums.bin create mode 100644 discodeit/.gradle/8.14.4/executionHistory/executionHistory.lock create mode 100644 discodeit/.gradle/8.14.4/fileChanges/last-build.bin create mode 100644 discodeit/.gradle/8.14.4/fileHashes/fileHashes.bin create mode 100644 discodeit/.gradle/8.14.4/fileHashes/fileHashes.lock create mode 100644 discodeit/.gradle/8.14.4/gc.properties create mode 100644 discodeit/.gradle/8.8/checksums/md5-checksums.bin create mode 100644 discodeit/.gradle/8.8/checksums/sha1-checksums.bin create mode 100644 discodeit/.gradle/8.8/executionHistory/executionHistory.bin create mode 100644 discodeit/.gradle/8.8/fileHashes/resourceHashesCache.bin create mode 100644 discodeit/.gradle/buildOutputCleanup/outputFiles.bin create mode 100644 discodeit/HELP.md create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/DiscodeitApplication.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/User.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/MessageService.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicChannelService.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicMessageService.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class create mode 100644 discodeit/build/resources/main/application.properties create mode 100644 discodeit/build/tmp/compileJava/previous-compilation-data.bin create mode 100644 discodeit/src/.DS_Store create mode 100644 discodeit/src/main/.DS_Store create mode 100644 discodeit/src/main/java/.DS_Store create mode 100644 discodeit/src/main/java/com/.DS_Store create mode 100644 discodeit/src/main/java/com/sprint/.DS_Store create mode 100644 discodeit/src/main/java/com/sprint/mission/.DS_Store create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java create mode 100644 discodeit/src/main/resources/application.properties create mode 100644 discodeit/src/test/java/com/sprint/mission/discodeit/DiscodeitApplicationTests.java create mode 100644 file-data-map/Channel/fcd81e3e-884b-4f56-b777-dad45e6f6f9d.ser create mode 100644 file-data-map/Message/24b61ba3-e15d-4d90-a6f3-8c53002a67a4.ser create mode 100644 file-data-map/User/58c01899-95da-4e81-b490-93c4cdbf8cf0.ser diff --git a/discodeit/.gradle/8.14.4/checksums/checksums.lock b/discodeit/.gradle/8.14.4/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..ea32d83183a0c14225b3e516870e060b38a08477 GIT binary patch literal 17 VcmZQ(Z{p`$8}LA#0Sp+o0RSL917!dJ literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/8.14.4/checksums/md5-checksums.bin b/discodeit/.gradle/8.14.4/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..36a57994f6cc97243e8d7fb437d0f357b9cf64a3 GIT binary patch literal 25847 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 HzEl4XYze)J literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/8.14.4/checksums/sha1-checksums.bin b/discodeit/.gradle/8.14.4/checksums/sha1-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..4c35352c0d5614ca15d27a15bd946dd144c8e327 GIT binary patch literal 33995 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 literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/8.8/checksums/sha1-checksums.bin b/discodeit/.gradle/8.8/checksums/sha1-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..536952cbcd4daef0ed5ecbfc10fb95f3a1330074 GIT binary patch literal 78431 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 literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/8.8/executionHistory/executionHistory.lock b/discodeit/.gradle/8.8/executionHistory/executionHistory.lock index f64474e6993104fba4d88e6d92fdbb92b4c73fa0..f274678afeb39810ffaebf2d7eaec5b68f1a7eb2 100644 GIT binary patch literal 17 UcmZQxucUOk-H}5lLjrR;h9MjkHZomKIsZpi!2H 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 Pe>8NJ3(1~T;~IYfqB@u; delta 97 zcmX@Uobm5e#tkMCf_$^}c(=ZZ3QA-E1JB&avXTmuLnS39i%J&bbEGjEG*-ciT=RXuMFfb-=RQw^n(O`$zW=D@bOaKGHB6G05i=53;+NC diff --git a/discodeit/.gradle/8.8/fileHashes/resourceHashesCache.bin b/discodeit/.gradle/8.8/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000000000000000000000000000000000000..67ba9dd105de823ccd2729f2b729159599c6360e GIT binary patch literal 19211 zcmeI(>q}E{0LJm7W~LUdVx+Bf9BQDgoN1+mWhCm9Mi)$5Hb^PZE?VM^%IrF{OlVGW zlv%pe@-ipot$LxPc6*Ud%0lL?i&0|RtJv0h z;F3mBlDU=xes;O;;abtrZ_MfNz2x_Ui$$`4)~J=iOqY6-etG8yd7{7+!1f-}ABZ|U zToW{UriVQy{W%@kx0_B6WUqgQ^v+fm@Ok zcjkn28|kL5b~|~gE|tB$mh_22{`l8BJ+18ZH<8YxwQ<@YHy+#LNO#*z1sRo%LZ(ZT zNf!*$BYdwxXSUaq?&-6#sV@Mg!Bs%1B=`dHA%^t3k+g=}*$PzaO#Lf7V;U?$41PAG)HV zCo^Z1-K$9_-xOu*$ehC`1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf{3`;!mK$}myysirJg0ZOJjc{l|7&{D{^}Q* zIhN@D_aax?S!de%?B$JzX^Vx=6*PBoci3F!XS_5=Zgw47c=6^M?m|>wV}9R0HZ~>W zdq(?7jod|1OJDJa2p8L84V~;Y>+2YIF>pk;Ak@LPdV5QW%Z=HKtGJ6@bH+VgqVn4+ zn#Qj`l7H567lwnI)}4$uYpR_1=59fh^?wXAp0@T;?Lfh2pY$uHBTdVM_5$u=!!etX ze0}QuyRp8f#d`)LxQiW1gGw3WeL2h^xr>w(j{$Y%!TK+Q0(Ec1o(b+k zd9Tw>VQ6eFyuGhKCa>H2Uy&L2Q4vs5QH04H<Q32RXecF{p*P!@I(1w}9yp_n9e6PUK!9?(YoyqLL zAfhClwm|S=X%L8@Nh${22qKwU(UqmcL%24+=SjMiyeR%3?Ay!#d-jg^ce|Z149CW> zT*l&+u()J}00IagfB*srAbL+`p@FB4$$NYqj@$e>XK#wZC5Gv$co9 z&D#qe9hCjOecES2&Xk0_Ra<1eb2|k3-RMeFG}ywzW4OpwimM*YptFd z(C&4e?C-vO$|L=a_AJ*x$;)=XTl%rzz4bMOqbzWti)b40to8-^{zdd3|A1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKw!BA4n)2n`bYE? X(O2|l|D#00KUbFT6ieIruYT$mgdk8& literal 0 HcmV?d00001 diff --git a/discodeit/.gradle/file-system.probe b/discodeit/.gradle/file-system.probe index 487aafa4180b355f3ab0ca77d8f8c7f5f9877919..a2e680a587d45376c140ca2bf1c5b0b76c4cdba5 100644 GIT binary patch literal 8 PcmZQzV4TCGUz`H~1pxuB literal 8 PcmZQzV4TCG#MJ}<1ReoS diff --git a/discodeit/HELP.md b/discodeit/HELP.md new file mode 100644 index 00000000..98bfdf4f --- /dev/null +++ b/discodeit/HELP.md @@ -0,0 +1,22 @@ +# Getting Started + +### Reference Documentation +For further reference, please consider the following sections: + +* [Official Gradle documentation](https://docs.gradle.org) +* [Spring Boot Gradle Plugin Reference Guide](https://docs.spring.io/spring-boot/3.5.10/gradle-plugin) +* [Create an OCI image](https://docs.spring.io/spring-boot/3.5.10/gradle-plugin/packaging-oci-image.html) +* [Spring Web](https://docs.spring.io/spring-boot/3.5.10/reference/web/servlet.html) + +### Guides +The following guides illustrate how to use some features concretely: + +* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) +* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) +* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/) + +### Additional Links +These additional references should also help you: + +* [Gradle Build Scans – insights for your project's build](https://scans.gradle.com#gradle) + diff --git a/discodeit/build.gradle b/discodeit/build.gradle index 668101a2..1d3800a6 100644 --- a/discodeit/build.gradle +++ b/discodeit/build.gradle @@ -1,19 +1,37 @@ plugins { - id 'java' + id 'java' + id 'org.springframework.boot' version '3.5.10' + id 'io.spring.dependency-management' version '1.1.7' } group = 'com.sprint.mission' -version = '1.0-SNAPSHOT' +version = '0.0.1-SNAPSHOT' +description = 'Demo project for Spring Boot' + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} repositories { - mavenCentral() + mavenCentral() } dependencies { - testImplementation platform('org.junit:junit-bom:5.10.0') - testImplementation 'org.junit.jupiter:junit-jupiter' + implementation 'org.springframework.boot:spring-boot-starter-web' + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } -test { - useJUnitPlatform() -} \ No newline at end of file +tasks.named('test') { + useJUnitPlatform() +} diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/DiscodeitApplication.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/DiscodeitApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..39e5ec49deaa7c331f384c4d100b725201f0301e GIT binary patch literal 772 zcmb7CO>fgc5Ph2_b(#j+rcfv!2X1K&tg1@AgjRwePUb@dg#)LxvvsG~yU}_L{4GvY z9QXnJD8#H=R3Ci7l4o}3?Y!B2Gr#}*`~~0yj|b>rEkbvQ9@Yi6FVq($b7eC5Ho4HL z7g&ErhWx3(+W24*p)YWl+Cr8qN5;#7%95;+ODa>l)a2#Mf2-%KRZgk$3=c5CW`yAo zw{TlvVqJDckexYI=&#m&mWj1q&I4=K$mFuFG6KmszPZ{gS7kZ<)QHS|$eSL-ZOo}P zUVrm)X3ZI8l~YNs8znd#;Hf}&#!nE~ipl6VRgq}-A)FN$#Wq#>LOBZi>tNTPQz>v1 z|F;~WRH2BUwKr~i#e#9=GA7?`fw@bswLiDZcPfbIwc~?>xvgBPUs1U3ep?To2K^X& zUl~t@UQkIv2V<W38XQZqp0ySVPAto*?3J3SS2z3>4cf-bwa? zeQ)vu;(HBmvkfpfWrywX>HtRA<=qDE;4YJdPgaD@21g%z ZxX1DP{P$R4b{*{3_5mKU4`m+#e*tk^%@_ax literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..27259b16f454201580d58cdc24462d4a65b38d70 GIT binary patch literal 4482 zcmb_f`%@EF6#g!RYzRRhC_=Rs5f#E?MYOfVC$TCT9?HW~t?iPmu##lc>;_Bi!&bDm zwAHrKTC4V#&UE@)u~R^q=^xNPrKJ56Iz4xHAqmj9IGxOF?%uuUJKuTSbI<+bpC`Wq zIDjAA$V0vWhX)04GL&AD#w0N!#fHW1p-XZ|XK?OUVv2r{A-}GEzy%jW!DUqqkGtTe z^~UgUNDa%1-W*b+E_fIUjoFsnt$T{F4kZFgJt%{hVHd3swRl2_>0(sTG)0YxVMQ~= zMNLkODIrCHp-yX)XjzK zQ-4j}O-;@;T*y%wX>KPhx+Gj=2LZs9jmi3M>gSW2UP}hHq+xl<)zW|FZJOJ1uJ&@)(nM+7iai4MdhjA% z%G$%dJ)La-wKdqDYKflSy$AbwEIn;ZV+ONyu?kQ*<>kE?!h3 zvUrRhJax`2&AV}mSJ-Zb_BA6}d7TN?#lg-z3z!wTOt8}&te?T3lNp&~)a4;bQ$k`p ze`b_uH~MgvA0Mw0&Qr=thPSevN4VTFVU#VVjz>)5xZBONc6H z7%>l2#2Lz>X88{oT}z*=QQf^|lSFp%JSFJaC!f8=+`p9C42}RbYz!qqB_?+zqeF6{ zPa2BQj5nx;q{x7jQ24tw>Ci_Ms=Up)BeE<5{0v1&($~A#$nDN8zFH0tQ4Yc2%PpIk z40INC%KC^J?vWBwRMzDLQC}A_yR;=TdvgOWl3A7(bYfUQ3{ANamW78XSc$P#3d@p$ zdPFHn=8;nb3(+nY3yA{bh)N1=(TcirE1NnaJ*31id98ev&twP>N%|0B*q7TA8P$pB zUs{rglv(afPtqA;8_tSOT9_kRPDxL$1<`U*T9^>sy=pQMlKH{Tuzp#VH}k%NQm$Q9 zbxlu5aWnU{5+}ZL<7?azFvVM%Zy0L%QuAu1#KzQ7Sv30$v&%Uqg?JOea5u9Pu@;)3 zC!|<7B5SolRUJ*nbKiZk1o_=$mF1byU8O6tAOcb((yQn)b?bL2B^G|ZlbXCwca-YX zwFjw*>9%S{MYn^lK#4#^(ll8U@IAx!6~?Y+gMbGNTXHX@gf|VwRw}c3)FXlpROLT(?O5P2nk|xt@8P8k|LEa2{Rs-_tpd)AZllHIKf*hFJ`> zIp#4q*f@)GZ3XkVFxb>cvv0OJs~mF(wFy-Pb5Pn`Rn96`l`w~B+5jKigujD)y%VK$ zQ>>)hT@4!P*Mxo8MYoa`x&gGJ8+#1n&YOI210R!|i{f$N No0~@Wa32p*^)JuEYbQjW zn9jcKKWcl{LCv;2m(G~-dIFbmMZ^0#KETzZlvRbQp1UugJvW;@d+U3Fxy*W)@bPDr z@P|4+!p8y=R>wAdyYY}Ag=w5N%;?A>ClK=w+qS^<>KV$jO^NbW(6NMT+{86o++;SW zmvU6|S?PUc^@)z_(rU6{cdd@o_E~z_oE056RII&rBZxJDTliGNZ5?-T_Y@()b|l39 zv1c~Bvcdz-0)C3wT@CjH=2cr9iQ$80)3nR`t}m+Y$7y4{hzR|tu9fvJiY^sX*z z8z-vrPY68CoVg|gA%*$>cO_eAy(*+mV5aK0_GYiOXLq)P7-y@VWj5<3<7Uj^V$45q znDNqC!YMM}4ckBP8c)m)o8vQUfjFUCBWpUx$_XIHhvx*5z-H&DF+`6N*>`~zvVB%q z0{y0w;9ttR2>d;5)iv=e$6+n zA2!T(Sn5R0>vb&qu_J-e!`tAR<#NBcEI9 z!}wk8w94mY#sd0|(fcIkZ~-YS;5@GKeoFK05x?ewz3~{I^Nn8Qxu<_QlTk&~OvV+( z7o1N;X#jo#Pc07u)}Zq#12s5GVLbN-rhelj0vW}aTD+vZNmCkx-UQb1C0B;Ui^Jk8 zBgNH`;^krS;z;oZHb;0)4~x?y#annXLYyBK=SPaa8Ywo0#l}eS*QkY9ybiG_M@#v? zkjk^@`Ior)D-x22e5_R9YJsapxJp2bSZU!GBnRnPmbgS!qjE@azQX-)5Sp6=lp#C~3Al`8$rR#X3Gu0PSGc5WN!yX|=AWdH z2+?SG_Kz~2+s!zGKCDT5dhY$sch33lxj%k>`3~SER&}HpY&U4z(Mc%$*lvp`5`k~G zMC1l7E@GSev53#?%8}#y+}k}n;TbTfCNvB&4DIZ_s@EzErTTy@Wl57Zk&!g|&f8jZ zbGItjZkaGKOlyVaW__>PU|4=PFu8$IWOWRi7(SUiRWGt;HPg@x(jcEkM%oz@vzU`wBsD|~D@AK?H7M`zc(p>u$}n0N zK7Z3`AMkM3Iq+zu`j3LFfpurd)dSb@nocMrZ;xE{oi^pj-BgPq` znpEQ>LB=R>(y!2s9qu|o*b=_uF=QIz(0AfaNW4nXYSJ*Rxn57*N?#&*25SR1vR9v!PrK}-Gl2Xc+EU5Ga# z`^q_##=d$Ey>YX%G)h?Ng>Cl2X1-EX?!Iz~2NzHh=b@T7`V}5sz>sBj1sX}JS4mb4 QdHPTF>RHAM!lbbB3$W4`>;M1& literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class new file mode 100644 index 0000000000000000000000000000000000000000..8a1d7803e28f1f68943656614265f81117bc7917 GIT binary patch literal 1849 zcmb7FTXWk)7(MGtl&DJL=2Fs6;=ij*2Y>TW+WP z0$%t5@GD>jmktj+_MyLtVK}>zQ%B>MW+wXf@}2!I=j{5`e}Df2U<==w$RKMVXCaRX zfx=_=iR-l8pylizK9*i2FmcNd{OGnowpePIn8cI;)4~~80yEmZANg(P;GlX(!0fs~ zGwj5Zxniky+MzOq8O$0eSU8J0fwC8NoZfNQ4VISX%LN#LxG82KIPRD)jR1}q^Pgii$)hv|%NRuue#g}1TH za#}LFdmMU4b?JoxgR$gY6BqH0flC%HSNZo4n{zZaM zo2s#nh47l*=FcZo8*iHWEJ; zM5Xk|Kt*6d_t_7fy6pOH+yBWuY?GrxPfr`NtH{)v5W51?J7G*lLp3W;?WsQ@usIqb zsW8oOdR}S>iVJOB?YLjD!oC=&FWIG{~ zw8RvqXi1u;nqmg>=}ClHH+ZJIounWj9+8N8`UILF6r2^B0;xFyO~3FA_H`iU@Xe4~Ytp)l%rNbCW<3}pW04@p65 PBQNNqG|}KUgKz%_Qq5uK literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/User.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/User.class new file mode 100644 index 0000000000000000000000000000000000000000..3aacaf498fa6087ed39b4359e0bbb791e441467d GIT binary patch literal 1943 zcma)6+j84f6kW%cICkX3xtTV!rL=|k7OR2OC3Pv3G^Ghnlh(B<$&+G>M8%ejEH_iW zfM0;GfEipmJn+Z^-@+#_4C@@piQ_RdXhz!SZ0&XSWi9E?e}4NNz{mJ1fe^wmL^MP( zA&`1uyfpNdVIS$chcC>ACopl>vMukPKsb}FCoqY43<(WW&;+Jcc+az1dabtgKp^27 zcGGG5o4HK3az3CO$24YQNNJeGoIs}GwDoSswQNssTiveZ*m~3IHk_tudAezPmiJ1p zbxl_wWHnjd=y?e&U@?ZYhPQA*U{pSDH#bQ$|o7=kSN*a|K#I`_k!||D@%SlD4I(Z3!_2CRb zcSAY<)03?WL^h}pftiYBn~!_#L(_fc7cp0H8mz%!B`hj%M!aK-E#)fzS8Z%EwPSk6 zPIJ$2$%MzAIBp7Li@MNgH_pgBRrwj6eoSpJc7Z8Eq>O!97Y14!CYHoY0ZK;w_`QHi zlHwCcw{4!B9W%+@AfC&!_!+}~rKTNJARzWhMAb7I-|QHjU@D2K({mfg;PVP=0W(K1&mYeME+CD| z{N%53wTz2+z_&U7Y;58ocg!L`C+3$cSyf1_WL;r=&UG@(0Pq#~?NE_;1dUHws7@<^ z(cCXc{=`KHvWf}iyriW5E^djLEz_3eJoL zKOPItkAe$h!MkI@#ZmChvEaQ^S^PypT9FcLf%FLk#JVVBbv1E9xHvcRwjaPnNwsy3Vni}6o-%H|KVZ}gt zX&plt%`7skKPwYoOd2u6VYNB6IPyyKPN#82ofbrE=xJb~YYc%Rb-t~-M);AX0XqN6 zJYC86IW-DXb9Jp5O4aXPn#y?!*O$oETNLCA6?3x@l8jBF&Y zm8NY}mj3@ZU1N@cVU6wy$kI7vks}gBU?g}jUg~belJ1tYg~(s?;1BRe8D}Aa zhG^u_!+Y~)=FN28KVIJeoZ~P=z;GIwgu9_tsppAuPMMU)%0(uY%5y7+#wl;?gtw)0 zqAzdfOo(-c(m;#_*COrn&f`Evo?+dIv1E9twf-zEQ?LBIZ2fp8H8pNa|7_wLVMQXn zw2mQ6W)>MXo>UrNPMR^pQLQz#IPyyKUaxsYofbrA=xJb~>kNS+b)l>JsqiC91N8ot zdA5@83u+W*<{DZvlxyF;w3PD{ZY+_jwWQ$&aZ3^vRm((*{BD{z4 SBAcW{Rj~hqB5*LxuYLl+!^mU+ literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..f9039ee194488a453d07d71ba82dc265ac9f15eb GIT binary patch literal 691 zcmb7CO-}+b5Pe;N75qZ*;~yBj*qaxWL}N@yFc=6Nyw%-`C1p$6E|I_H!5`p{GR{I2 z3DMx8hxg{q%$u3Mf4sf{xWsXYfZ;qcBksmlC7zFzbIK$)!Ifn93Oa#{=8SwVwP)431=fp%Z^lPm@>&nC{Kd)IoU0+Hq@1%b=@x8EOB)znb zTBhWTVe?5P@%6MBGn~{~GiRw+n)iCm8|twj+G9^c3SDOi6se0{HAsX{E&1-Om3gtg z;|6sJGiO&?GgN9njkJ{W6mG1L|EynA@Tcv3a z)#YoSW!oz-Fl^A*0rGVGJPL%v4AJtD{f8n-2)?K-ifq#hutT9;?2&qo%Y^q)S!9!x Os45PYC<2GG{G(5NWWYrL literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..dc263faed8df825a15e09d9cf01c74f9eb1d7155 GIT binary patch literal 6506 zcmcIp349dQ8UN4bm}E1U7*trGB8Nyq!YUq>ET9kq1alzaFnBT9oxs3kXWgCUu&u2} zwTHbg?S0tN!?xIJh)|7f?PayCy$^fe_kGwy{C{s|c6Ugi^82+vVCT(y-}|orcf2<| z^3>r60W8<5;)tP2N40?()M{wjW$rPPj+xz&>>t`?r9BO`%j~S}tNHd@ zE?D_`#L=L`FfawDXjqkYN0NnH-p+c-5xY>Z-E1;r7t(IVvb|*9%DDyGbMyO?!?t53 z*YKxvrpNsz#hptR-ZXyX*g}+B>KfM zA7|@WVBj1q)G$?X$=a^(*bSz)lbou^NkeK9i?5t$aUdkZBPH;*8d!uj!m_%1V^`;< z{*8mw$=@F(*0ET_^r$91c6N7v&SM;QADyg}W{;foF)6TrR z*Bo-JRLhn)rlHfoYIJGP_n1!6>K{HP-2Ge*l~d^*3xZ}{-T#FdeqG_ zN5r^o2Cl?aEOnkM%gp~!jbH{Ban-(U@ zyDLc)j@vP8U)v%(U5dZkN4EQ$Me>@u)h>UK@qaSN6XRz1HWD2z){5{CoV zKu+RlikZm_6mvPcvS4Mzuw9Z81p}U>XRW2OP{$qyghD#7vpZYzSsX=Nqk}~?5mNYC zMQHZnIb!p3%b`n76%@+keYnBE^YH==aiWn4EsmDHz~nggiLOQL(s7H1v&wm+3TU6} zt#OOlOhxwGiraL&$iR#7k}z&nu=s_^bSTvw?khTuq|z~=8~WKVc#&-khjVeeftTUs z?1m1jmWE`2QK>#jjD{Jfb{ABF!PY2kIA>lZjF!5=j6A$*vVRyI?R`l%t3 zw?3unRrk=T&lKrNj!9F(%DhF2J;SGyrz{>Q*b%M1;>eJd-{i-0bB~)goh@eGmiJ&% zBkAdWP)k0Rn^8&vai`4|xcYw)hpaRMo|)d=YvuyUF`ME$b5SzkqWp-GfzME58~5DBVX zlnN)gHwGq!#ZkwXG@PO;u2Mvx)A8jA$MHUN`WV_0BJvJsY=jULdu@*m$<0ts3j-Sb~ z@aG!lm;0=p-Q(`Iq=oT5=ARVTm~wJvVZS4=Q-xAM=rdhsW-~nG&+l>F-NjtWkH*SF zXvIuqL4SuWRcLsisKWLac z!MYv=AyqerL)#iym&$LC{{JmKp&KHLzH=+R6j@d-4DxMK?=<00$26+YrP~^7@E19K z|JA^E@x3Pb`;T&gI-dK3?R51&W%IubddpSqfFSmjV`0uqacFCMr3VH~7;?aRzA;q?(27=pZ4RL!TvinK=&^@docGpY`zBhmG`rLw}jbl>EH} z2KAiB*|SNxfV&rRe+xOxr*B)(!>7p*$#86;6V@2S5xHHg&|iTI$Y&`zUBLY*a#)JJ+;t;Anh1*P7^UsR`*V1Nkuw(?@OeB+Johqd zM)4R&^ic`LTZ5pF;TC*>c*ZF628Cyp!gH74$-q#seKCZzsPj%5LaI+(t3-8e1o=u9 z5nvy0s7$=CP{|m+N`SwHyEu{rznu<}1aFfBAHz#q591Y*;IEO$yHiGQiSg$htbyff zL=Iq3&!wY$_nxVexRaI9FFmtZV&gF-kWxd;pAM2uFYok|r$%U) zh|2qqH^t<{;(MIt`u)&YbU)t5&p@nXcb6m4Z-lE$;STl;zthS{VvpA-e4i%9@B{pi l&slu`5odpaUvczD{26~!qrc-x{2Tuv1-mkyqB=1oo(BH-zyAOL literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..8d1976e30dfa5e57b4ada446c6934f7cff58efae GIT binary patch literal 6506 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 literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..d56df36d46ce5804dbbd3c93e0140251ea893156 GIT binary patch literal 6464 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 literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..bf15f0d32835bf8185798c8b64e6c62ce67e8a28 GIT binary patch literal 2171 zcmb7_{ZkW17{|Yx04K?!0r9O`-^D=G>zl1Mh(ZuW1E>h7<1b6Hz%rM+%-x15|5JZx zXWH7dGmby|M|Jw_-N{`bWQJevZug%3e4l+@c0d33&qn|c@Fs^0vKIO{`Z2&z*cLm& zc7(fWFRgFOnr0Z7RIbuf4B6uNs)b_=!=X`2E608+f~^J7%)vr-5P5J5LmbC(g5gok zYuG{4SFW}jDhQP4+I1Dwyt-7{_GQxxl=l2xd%Lz_Kda1DwuI|S=hfa1hQ7Mcg5g9p z5hSs44#OC+aFSybrx;2-g`}&M-nC;oL;t4K^L2)i;&=+XvNAtg&f^TuS~$n?70xpZ zb*R$*n=J~*y<)U16{GUOnV6k6GW4%GF5(iQ$O(qAE~qXGbGU-57Ortz#|?5kacilm zDXPL@$ax!!Eyoe-j$|kv&JC0HWm&l4n;b=qQ<`^#(~<$h*^ailb|~6h^D=&3Mf{c=`wSn z_djvm!+nN)&2zO-Ztz_0GMwrbfOjSVWsXUcfB|1Nyd7zQ>iT}q`biaPmkJ$RR-3NS zEuX@^n5ri#)5+8@EU#)$oz6NfPnD_sE7U8d{FN&gTa9(;zm5_-QuS)WSrxuA<9M=9 zZz)ROOmCUgb`I-1qa27GQhs0T4cq7Q_>rs`tXkCa47ZQCvalfamRElve9@3v`n2z3 z8_KQE?3&j8(pO=zhoMim`d;-jWE5E!_UDOVC9a>|fXO2{Z4zo3AEzDa*XfStFy(x7 zT2B5#>w;*{Cl9*(j*f-8bSOTDnyiw^ve)u!a!#3(<6O6M_>SpLI)n0bRWQ0Us2R-( zPw$6xhh*>w1N2ST2R)~0W(HaM0tyo!z$X5M_4We>|3vQh(0YcR$H@Z3>jNjw5Gpj{ z(HhL+F^w4J@PycgH&50XdJj+hfn4b?6iRKJ&SI_f8%<_N4luVE84zqFgq@DZ5zPE~ zN*IP`WYy1TU=*ICN@Sz(n9LJ}HZElF3B!Nma-v{12RcBEs|V=|SWM^(WD-SYi6&p* zF0qZu6pajI)a;{;F@`oK%;Ot|{X!Q~F&T|x5;0#A;}w=;=EKETHe$3!kl8B-b w`Fthib3R6y;2-dr;Wbub?rhBEG56;T){^{1;T|K%%@myP!Ff0MYUtP6|8T|{Pyhe` literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..511d2931a518386f0fd03ad06dc0fbd9f81beee5 GIT binary patch literal 2171 zcmb7_TT|Oc6vzK-0}A$%7((tz+w?*VZlc^TH6`H^8WJ1Q5TMQUWw94nMwUF%nhD=2 z5A96S#O+L{&-qZ9oRt(LgYgV6l6H0W_dk0syB|OO^B;hp@mmfVWG(b@^kaabuq}3k z?Fe_%URvLlHO(+Esa&O}7_!CjRSU-$hC`#4R*wBd1Y1?n%)vr-5P5J5LmbC(g5gok zYuG{4SFW}jDhQP4+I1Dwyt-7{_GQxxl=l2xd%Lz_Kb@Vg${-M%^2Oc{hQ7Mcg5g9Z z5hSs44#OC+aFSybrx;2-g`}&M-nC;oL;t4K3w4H(;&=+Xva&E&&f^TuS~$mX9v2vf zI#g-@%@&2@elc2>ic$ICOw3Lj8TuuTukbaY$O(qAE~qXGbGVFeEqurEJ$@j^6StO{ znxZNkhMc#t*m4}P?ns8>;oLB3UzUX%zQR$&IHh?0Iy5}${dp>0Rz5lcstSp)%Am(^^+>pE)_bstTtVt zTRw$-F;!1grjw~*SYDN$I-PY|o+?xM&r+|L@>i~0Y&F)U|1wJONX4rOXI1#hjN{2Z zy`?C9GreU}+c~W7jB+4$NcoRqZ`eMc$B$&qU^SwaXSjOAm4&L*TVDOS@I^yv>C?WC zZ78=svuj%WOJ9Y>9)>>M>U-7CkWpk^*q$QHCZK-Wv}Je-YBI*YZ^pEQ{vIl$avWI(Wy5Oz8qM=CWIUl1;@DKRR@DeLAcP{4gnEO)(Yf1j1aE}q>N(#>R;Jh1rHS}xkGyB*Y-~a#s literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..ad6ba7d043149365e4e469a4a011bceee2d5781c GIT binary patch literal 2135 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 literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicMessageService.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicMessageService.class new file mode 100644 index 0000000000000000000000000000000000000000..64bc95a5fcd93abbe08ff2858fed8b9c28f7a538 GIT binary patch literal 4376 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 bS@;lcuv(?nI=Om;FGwOmt1t02zD57PoW$a| literal 0 HcmV?d00001 diff --git a/discodeit/build/resources/main/application.properties b/discodeit/build/resources/main/application.properties new file mode 100644 index 00000000..545cf9f0 --- /dev/null +++ b/discodeit/build/resources/main/application.properties @@ -0,0 +1 @@ +spring.application.name=discodeit diff --git a/discodeit/build/tmp/compileJava/previous-compilation-data.bin b/discodeit/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..01c74cf362df7f814c9e222d8492811318974453 GIT binary patch literal 26193 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 P=Y!x6K=k@k8f*3^a_!%y literal 0 HcmV?d00001 diff --git a/discodeit/src/.DS_Store b/discodeit/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ee0bfac7f47fc693d560eccd9367757fc41806e0 GIT binary patch literal 6148 zcmeHK%}T>S5Z-O0O({YSiXIod7Od7P#Y>3w1&ruHr6#0kFwK^xHHT8jRbR+A@p+ut z-H64UMeGdhe)GGV{UH0p7~|eNI%LdYjM>l-IVu%`?#fWjBqMShBh0f&n8*<9cN6>T zfZuMhF$-AC((m6NPLepAbvhrsR<|}b8+OBP+4ugF%>7v~n`d4yy+!Lv$|NlHAiR!8 z`Ow)um+35s)6rBF#L);+?r!2VlDQ}6X_Tp2UkB`_-5ff*i^XxbEspxVWm_yx`zLMD z>vosRroFR&aCSL-PR6Nx)qHZGTgjHe65c@hTF#3wpfg<B5Q9#GH1fnqL8Z0zI1cd8SKwZks z6NBq=@C%dY8Z0#Ga>munFpinIe7tZqJNSi4XWZ3DJuyHGtTIs7ri17I1^hCVkNnjV zvWNj<;GZ$Tt${!AU{U65{joeeYX!6iXegLhpaKH=$|V2{+(-6QP{#%8kmnjKG~y`e RSLJ|o5m1CsM-2P|1D^nCN*e$G literal 0 HcmV?d00001 diff --git a/discodeit/src/main/.DS_Store b/discodeit/src/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9c587049484e1657e6b157e8de0790eab8f5d45c GIT binary patch literal 6148 zcmeHK%SyvQ6rE|KO({YaiY^D-7JSqy#Z8Fy2aM=Kr6#m!G-gVZHj7foR)5Gp@q4^? zW+E1|7P0rj%(>5*%z?~3o>;(UEcpKY;W&=cY=8fQ*Xq{Vdc$tmE&I-Yl)0Y;*);Wn$qibUQpRDa2jNvT z$_LKonM|@EN=6e^5DiC=a(f*mLz#PWnhaA_>+68sw3`EGdp(9A`0mEmOvB+U4w;2h=6ci3aCrD zd17!~4t`5RJ?sV4@Afn^5j+H~;zKZjqY@{zw> zLKZPV4E!?&xYhUj9xTe7tv{BBXRUyC4-EzL3RFNqU%CWWG0~VBiyZNlFy} literal 0 HcmV?d00001 diff --git a/discodeit/src/main/java/.DS_Store b/discodeit/src/main/java/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a2b4558a22f2f5353ca51944fec885cff45782e3 GIT binary patch literal 6148 zcmeHK-AcnS6i(c98AIrWqL%@02Ttdd;Z3RY1+3_W%53e>V%LmyvlnB~TYVwl#OLvx zBn8KIE#l6BCvi4uwZ8a9rMkIQ6E)Eg5B`hF{YfyHW?nG9L+e_pBrNqHyom>S z-`TlP=_H8L!B`i>(Ew8JZ{svlxu>RSl<8XE1Vmlb`_A5McG7Oj<8Ei(l(Vz$X;XIE z?fJYeb`K8EulldaFjen{O%7yh*|u212Pk$iZ~iz6T?p*=!F!Mp+$5YQJc0bt-hvaf?CE>VX(*J5E1M?t?X Q2c(ODCWJa-;1?M92C`;JMgRZ+ literal 0 HcmV?d00001 diff --git a/discodeit/src/main/java/com/.DS_Store b/discodeit/src/main/java/com/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e34b8caef606e023f071251b316087ea2d33f553 GIT binary patch literal 6148 zcmeHK%}T>S5Z<-5O({YSiXIod7Od7P#Y?F51&ruHr6#0kFlI}VnnNk%sxRc5_&m<+ zZVtiVQN+%`?l(I>yO|HNKa4RxUId4X*^Ds@8X`xfM$laA+AzV0T+I=)%+J%gA4$Jv zqQ7XuZ*Q@b%~`@iR{j1De;$Qt*6)AvjYe~`)wbGJ*SdF~WbS5Own)cba*LxYDI>qs zJ^wnKS1`Ca9>wpfg&**O=qJWNX2}EJgF<58>4+z(( zfI5|%CkEH)U>7FNF<5BS>5QwDVIH$``FP=Kb+8K+&bXtIdSZYWs4~#dLmSWk3;1Pf zANkc38W97;z&~SvHz)373`Lo<^;>y()(U73&`>b0Km`Q!$|V2>xR2~9r}hifAS5Z<-brW7FuMUM+!3s!5D;w8lT0!H+pQWH`%m}X0pnnNk%sxRc5_&m<+ zZoq25n~0q$yWi~m>}Edb{xHV4I|~mOvl(L+G(?U{g`m08wPu15xtb$lk|jZ&PJ*~% zqQ7XuZ*QgyW~t6{aQJMU5EUgl@B)b*z~IJ%TF z4ock*uA)&sw71S=lKD|GnyQ2-96`wKb(DlMcjYVzQ_UYz?r5Z*7$63g8K~)@jpzS4 z{ADU1`O7IZA_j54?d3MVYhpTX}fa3TXGxP%y4Q1qAe^O8^XTAK6t-?H8y+ ZoMW)ih_j$wr32DMKoLS6G4Klvd;m}wOql=x literal 0 HcmV?d00001 diff --git a/discodeit/src/main/java/com/sprint/mission/.DS_Store b/discodeit/src/main/java/com/sprint/mission/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..66f2e4e6fc3f26c1825ea1e7c2ee29f42de5a62f GIT binary patch literal 6148 zcmeHK%}N6?5T3Nv?oxyv6g>vK7Od7P;$^Az1zgdCO6|Hu7uQYcZtbBI_Np)BoA^A= zB&k?h!IOxcfytN5&xU+iG6?{P)-c=!r~-h4N?35QSs>&mos)vK5DNVb1tIhxf-D%# zMYG{AGC+Ih;;u!I!X13szqB93DnRdB(2t`utJmK}p;%g3EjwkW;@tQTYUF3#Y?!vX zgDV=HD-{RRemA&?dZSKt{X`{MH%fW~oe+gR47t9Hl2DCWYM6wn&h?GMaUHi)-5ihi z8#TFi)ST4h`0(hUCYz1MWa2s-+dIc+oyYhoQ7?u~fj^#>HH%Yt#m<6-J^O?hj zrQ^p+r$ z7Cno(LG+*qlZt3kg?(ZOla6+2<2;MGL6Z(b&y3%(GYk7d5qfsCOC1ivGsrD7zzobX zP&C6T)&JA)-~Y2oJYoizfq%t-D7F1|3zuYT>)hg~)=Jb{R1%8I4SuFzN0(xZrBb|w bss-(mI*6Xd+#p&|_#&Wb;D#CaRR%r)5PwZ7 literal 0 HcmV?d00001 diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java b/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java new file mode 100644 index 00000000..360245c4 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java @@ -0,0 +1,13 @@ +package com.sprint.mission.discodeit; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DiscodeitApplication { + + public static void main(String[] args) { + SpringApplication.run(DiscodeitApplication.class, args); + } + +} diff --git a/discodeit/src/main/resources/application.properties b/discodeit/src/main/resources/application.properties new file mode 100644 index 00000000..545cf9f0 --- /dev/null +++ b/discodeit/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.application.name=discodeit diff --git a/discodeit/src/test/java/com/sprint/mission/discodeit/DiscodeitApplicationTests.java b/discodeit/src/test/java/com/sprint/mission/discodeit/DiscodeitApplicationTests.java new file mode 100644 index 00000000..3a987a21 --- /dev/null +++ b/discodeit/src/test/java/com/sprint/mission/discodeit/DiscodeitApplicationTests.java @@ -0,0 +1,13 @@ +package com.sprint.mission.discodeit; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class DiscodeitApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/file-data-map/Channel/fcd81e3e-884b-4f56-b777-dad45e6f6f9d.ser b/file-data-map/Channel/fcd81e3e-884b-4f56-b777-dad45e6f6f9d.ser new file mode 100644 index 0000000000000000000000000000000000000000..03c6926b4664fcc13f1e8ce618e000d92e593000 GIT binary patch literal 534 zcmb7>F-rqM5QQhF351A*G**gWDePh`2qs!29xB9G3TJMKD|dVA-CRtXV39~5g((!Y z&_=-~jfmLz6D%#nMhhzwYa0vqyb!f?tKHd|dEcAqyhGG;VY=wp#FH);NNnzT+!4g& zUePfbN5TYhtdh)@Aq2A^JP{3II>d`EGmx3{h>+B`jj};4LzJlQh|;VM36pt6mrGO) z5mLVr@~Fgu6pfpMQXjcR3x({0iVq9JW;;*=P2I678N!UNFlmTM`I~s73fRlW4wqD!!2UE`)L~;-<8d_$4n{0y zc$nv0!fhPCp+f=9)_@>j<$>rRDf4M#Y literal 0 HcmV?d00001 diff --git a/file-data-map/Message/24b61ba3-e15d-4d90-a6f3-8c53002a67a4.ser b/file-data-map/Message/24b61ba3-e15d-4d90-a6f3-8c53002a67a4.ser new file mode 100644 index 0000000000000000000000000000000000000000..5274eb6f50d327fb28719b4ac9bcafdcf2993dd0 GIT binary patch literal 418 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@d>A+qOG`5Hi#$_G7zBK>63Y_xOG`3y^g}~EU95c=IFmCH^YT)2JW~o8 z>KGV(7}%5Z^Gblml`sfFROck-rRxWm04+`jt1n7TEJ;mq1S)_U2Ug&d50+-igqg!x zT95)!2r`(tq5$XzK9Kc#AnWx&*6*3g{C!4lt3DG0lNSR|PHJLtNpNPmQ)WrA7Xx>0 zKAcxkuw}yJBWL&be26$8F>~rIzs6#anXKE(Z(WJY&!79}hMZl8w|^MWMQ^5dyl$QP zcIu2bEj!-KnxY4{6y!)fup_&lOgPi8e4mMd(Tjn#EHS4vwW5eY0PHfbBEQnyq|~Ce rHB)7|r#$FpVqmB!00n1eWy)fRwaY&D1T$!*FHzYhz4&3Q?}P#X5+;?} literal 0 HcmV?d00001 diff --git a/file-data-map/User/58c01899-95da-4e81-b490-93c4cdbf8cf0.ser b/file-data-map/User/58c01899-95da-4e81-b490-93c4cdbf8cf0.ser new file mode 100644 index 0000000000000000000000000000000000000000..1b515fa247381840eb6b8d935d0426f9d432b5fb GIT binary patch literal 388 zcmYk2ze@u#6vtmrPAnBEPA*O^PC5Lsxv02UjxMF(8k Date: Fri, 30 Jan 2026 10:02:12 +0900 Subject: [PATCH 11/12] =?UTF-8?q?=EC=B6=94=EA=B0=80=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=EA=B5=AC=ED=98=84=5F1=EC=B0=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 6148 -> 6148 bytes .../8.8/executionHistory/executionHistory.bin | Bin 47114 -> 47114 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/8.8/fileHashes/fileHashes.bin | Bin 21447 -> 21447 bytes .../.gradle/8.8/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.8/fileHashes/resourceHashesCache.bin | Bin 19211 -> 19415 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes discodeit/.gradle/file-system.probe | Bin 8 -> 8 bytes .../file/FileChannelRepository.class | Bin 6506 -> 6592 bytes .../file/FileMessageRepository.class | Bin 6506 -> 6592 bytes .../repository/file/FileUserRepository.class | Bin 6464 -> 6550 bytes .../service/basic/BasicChannelService.class | Bin 3924 -> 4007 bytes .../service/basic/BasicMessageService.class | Bin 4376 -> 4459 bytes .../service/basic/BasicUserService.class | Bin 3759 -> 3842 bytes .../BasicChannelService.class.uniqueId1 | Bin 0 -> 3924 bytes .../BasicMessageService.class.uniqueId2 | Bin 0 -> 4376 bytes .../BasicUserService.class.uniqueId6 | Bin 0 -> 3759 bytes .../FileChannelRepository.class.uniqueId5 | Bin 0 -> 6506 bytes .../FileMessageRepository.class.uniqueId3 | Bin 0 -> 6506 bytes .../FileUserRepository.class.uniqueId0 | Bin 0 -> 6464 bytes .../stash-dir/JavaApplication.class.uniqueId4 | Bin 0 -> 4482 bytes .../compileJava/previous-compilation-data.bin | Bin 26193 -> 26258 bytes .../422775fc-de56-4a75-8f6b-48c5e4ad42d0.ser | Bin 0 -> 534 bytes .../a9f39f2a-fbbe-4254-8d68-16fb11960d94.ser | Bin 0 -> 418 bytes .../e62fcd9b-5a60-4a0e-8309-91fa9437439d.ser | Bin 0 -> 388 bytes .../discodeit/DiscodeitApplication.java | 35 +++++++++++++++- .../discodeit/entity/BinaryContent.java | 36 +++++++++++++++++ .../mission/discodeit/entity/Channel.java | 33 +++------------ .../mission/discodeit/entity/Message.java | 34 ++++------------ .../mission/discodeit/entity/ReadStatus.java | 32 +++++++++++++++ .../sprint/mission/discodeit/entity/User.java | 35 ++++------------ .../mission/discodeit/entity/UserStatus.java | 38 ++++++++++++++++++ .../file/FileChannelRepository.java | 2 + .../file/FileMessageRepository.java | 2 + .../repository/file/FileUserRepository.java | 3 ++ .../service/basic/BasicChannelService.java | 8 ++-- .../service/basic/BasicMessageService.java | 10 ++--- .../service/basic/BasicUserService.java | 8 ++-- 38 files changed, 179 insertions(+), 97 deletions(-) create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicChannelService.class.uniqueId1 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicMessageService.class.uniqueId2 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicUserService.class.uniqueId6 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileChannelRepository.class.uniqueId5 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileMessageRepository.class.uniqueId3 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileUserRepository.class.uniqueId0 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId4 create mode 100644 discodeit/file-data-map/Channel/422775fc-de56-4a75-8f6b-48c5e4ad42d0.ser create mode 100644 discodeit/file-data-map/Message/a9f39f2a-fbbe-4254-8d68-16fb11960d94.ser create mode 100644 discodeit/file-data-map/User/e62fcd9b-5a60-4a0e-8309-91fa9437439d.ser create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/entity/ReadStatus.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java diff --git a/.DS_Store b/.DS_Store index 741704dbd0688836237bcdd8d84aed40f4468bea..c5c99abf4313afcbc55a11124f836039af649b72 100644 GIT binary patch delta 251 zcmZoMXfc=|#>B!ku~2NHo+2a1#(>?7iw`g}F>*|{V-lOJ#AM63V{!shA-6dv1(u`e`zcI-(c7s*vFgwa~GNdqMG88i;GvqTAf!QTV<;4X_Ir&Kp3=DY8 zQ0@lGW6@m}T$GoSpO+4lWt^PFY^%-7kOs6Nhar_g7ifMWLkSS;GUNiu0?(ZMWT;I7 rK;_+=XE2*HZf57;=Ky+b^G4?H%#-;=961;n7?^;@F>HB)qu~2NHo+2ab#(>?7jI5LGSi~kPvDh+ho1DN>$SGD`ZJ?uIXlXwA z4vREn$K)R@@{FBeHF~U$le5{ZHs5E{VBFYX!MvHBgP#Lv+-5^vEd3vdU&DmFLH^j!s-f5q; z?;7I|HKxtg9zU2_uCG5eZF9MggScH`g>iOeMNUClUV33(URrWmNn&<#NnT-Lr9iFl z5tj)nCtLf@RlXPcv-aa+HVmQ32Q%d-pH5NRY?b2RAhb@*@mRR?mi4`wfgQi1Vm2|J zm^^Wf+~fn%+>_(OIVbO1vQjAJf4&vt8$-sczuBvw{QISjro?}#*yJf;69l}T_Qkxb zd9v_R^_B>pi5`nKCoZ#O6?mO>^XOFW6+d*D7=7lhDe<1%zs7j-hL}YHR=nRY9GStF z(R$phxHbG$I#A-0K#k}hNn82n#@*MwVspG=xHcEA{lp|-o^Ss5PtV%#^0MAq$4|4b zo9vcYJ^9@Rf0l3OW=@*yxKWqoIfzlTQIq8rh%tYoD$5NJ?_rwnBJF5DvG5B}#R203#*A|&%Y}(4Cg&s;7c&S5 z>5JU{sNg@Np!D4Xj*IecPhqNNPM)|-c=EqZ?Ak_YZk>t-GVIYE$}Srm<07wvl}s~c zW)RpeYMWlW@xt_5Qyd(Rs|o5&HrQ;;^$zHQ1IE7v7-vsTTp>ESX|p)XN06iDZq{e{ z0%Ba)?8J2qtmp(QWtqvTdeE@Q>S9}b!@1vi#$&4v%RdmKVykBTZ?Lmx zu>p0gikva4_WvjQy>SbqtzKq+1qzv}HV58hV7pL!Fe&yLE zy`Az+CIcws_G(VK@7{#WigRA;lr9LB1BLRQ_wJE*x%j8aUi5>&$IVGVp(1s!O9JLD z(~P=|FVBB+?l;Tw{DP9r3foRI%6l+h7Wk2(-*3|TF>sel?1qhCZ%jJN$im3L5E2Uj D=sUBz delta 754 zcmeDBz|{4DX@kFqPD)ZrQdVwJidj}_T3(KMNw#ruX?aC?L3yr#&DmFLH^j!s-f5q; z?;7I|HO|e|9zU2_Htaq!adWwkgSZ_Yy}Ng`E3Fot)nT+v#UbWTy8Lw>0d%3s2Q%d- zpH5NRY?b2Ru-P}XglF=*4gM@|Hy)Wd*>R&T%MB2tXrm^}JrHC5Mpc$GAjXM}N-X<9 zjCUIySU!RnMw_fzu7Vhan>3|#---zwwJ*HkD3$-RX8pmpSAY@+j9(cs&Y3J1CZ?F2 zlUQ8LAfQ|;P`#`4V8*w}k(W~W-+w;^Q#Et)#AU*h|7~K|R&2YxU~SmR2AO3Vr|r&H zMC<}9Ibg)hAYl5E_5OjBskhIofPFx{6xoNXF%X6U6 zZr+ey zoBQ$bwVv$T6aH8S?wcIDMOSL$#)G!cfBxyd-nCEvc*Der?VCWJyCTOpYx0Cxk;$=J z*<%-Wd}i5@vgOAehWElgdb^k#z)EH)F-~_%EY3_0Elw>8PAw|SOitB5k} z=hmOJx*HYiM1t0Q4OF?rvOK?_WV6Dy(~RI05Y%yGXMYp literal 17 UcmZQxucUOkD-o@-~U5=wXix@g;y6u$FeU#Ng&|a2PDvRtT$D1*!q6k=bT-amqxFY_z%_b z8mN*LtYvb)w>q=SSF6ddy`?5!_7;V*^?|hYWPcy2$>u&FF%TOf)(E9HgK4YDPocE9 zFG${MvL}?ThSF=H^nEaGGg;72zaD5F&~hMP1bQ0X$$!#CE*Jn{4Ge6nFm>GJ3svu{Tex{nSG0%c8`(6d4s(bO&P(VzloSQR<}Ucnc{ym>x-J*n zN%LZWAqNb5vnX4L7WSaY5B)&FVl$cBU!U16-F339zf`@DzR2y53jQ++O5Z);xG3)i z)?`_l3ehBa0Nox%fvazBf6Sa>?_rwnBJF5Du@I`G1h)>OG`CJg0~z+{4rP}Oj&YGt z9pOM7pa_$kHu<){I?zQWlUV~mE-RdD4yN-aXM*Xl$!7zkCT|T81?I5Z8tS+|2Hyr#6J{uad-n)Ez z3DhZ#5XbW~0co_X!TRZu4kiM;3dL6_lrWcq-c`#oV_>rRDZ_@fPaFku&pC6Flq?gIBY delta 913 zcmX@UobmW_#tq!w^?fxPlj=69Jh|5N>G#_BZ9NPOjB}Xu%4aZu0gnri(lZ7Unn0`w z!UD$*i@V+sR5P|-Qs5|X&g=$M$8?}15b!hr2{avxwyLk+Ft==q>*p2D2AoVHNIF=- zS|;~615u>8X>S zg6S!f#eG5Y(Zjmc}l{K=E=gXvk51^x8vf#v`$2Li^2KmyIlY_;w# zduBTt3Dlg8b7!uEIe8XX0|Q$Trj9q?Kl{AwmdgIFdaCMGP>L$llTaO;AR5IEB}D;A z?w=j$8gEy7PkB5q=djLKR4wdMlOOtlf@S7pZhw7dLy0|;ZT+R{m1_m6ca-)| zaoX;DMFdpGE}#xjgh@I~zU{9LbkVEHtN|dGJ)dk2rXNqv1kV1ZAQwS%PUpO@LcFPo>i zo+m=&z=C=InxRhl32{8%dLWGwtcn5~Hy*To{_{`w^{##T#~UV2gy@iDhv?uB!PK#^ z<1@>Klr2B*FuWJ`(c8rg)dA7~@~)u7AIY{3YNP}b;7?@rF2{g;a_}z2( s`2DV#DT=JV<8SB(F-mq3SOY^^;N*$H>XX}ojra{^H$cP~lt88c0P=P7oB#j- diff --git a/discodeit/.gradle/8.8/fileHashes/fileHashes.lock b/discodeit/.gradle/8.8/fileHashes/fileHashes.lock index 39d652bd5ccadabcf3c66f4e056d73b5dec7f8e0..1cd0a5d391fb522c8eb2aa24fdb6985752a8cfe4 100644 GIT binary patch literal 17 UcmZR6l9g5*`A}U;mG-Ti>6=00!QLlS?HO1ddndvuEk{O@IpOPVSYk z5V(8q4Cl#L8Ly#&{*(6t1)uDEtAA2H`xaD?d-7YLAOq8{S4mzDH=%-CH_J*2Fsc-J z3;hnay6X%To%|mSFfcI9+^G0Ne4{~w=w?TcQ%v>7K&6sEEC|8^>%<(7g*$Iq->Vte z@hd836HrhNRYl7Gd@IH`hKyH#vsXX)_e&j9h1b)*n0GZ#7JjPU62UXkV-co`*I74@ zPUT+lLzjus*JtjU5^qc;R=nRY9GStF(R$phxHbG$I;M&m(La*5^3RRCuY1Mjc*Ssm GQ~&@a3v?C$ delta 62 zcmcaUow0iw;|3E6M$yTp5+0MMN=QsTDq%30SJGf|sHDN>xsn`=JpZA9fq{v0qv8+o OjRpc@n;kt)F#!PFRTxhI diff --git a/discodeit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discodeit/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 94b05a882c5bbce48b1f642968157bcdbbffe203..ee2594d973ecdd3273a22587957dda24a50bc280 100644 GIT binary patch literal 17 UcmZS9nUpu1Uvq0M0|Z0?04Kczj{pDw literal 17 UcmZS9nUpu1Uvq0M0|b}@04JIQYybcN diff --git a/discodeit/.gradle/file-system.probe b/discodeit/.gradle/file-system.probe index a2e680a587d45376c140ca2bf1c5b0b76c4cdba5..671aeadb3aa6f12c74f599525e3c86b81e84890e 100644 GIT binary patch literal 8 PcmZQzV4TCDuk;@P1quQ7 literal 8 PcmZQzV4TCGUz`H~1pxuB diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class index dc263faed8df825a15e09d9cf01c74f9eb1d7155..447849628a29d7f81d707977228dee02e306b1e6 100644 GIT binary patch delta 601 zcmW-e$xjqP6vltWEJ$a7VH+5hC?GB%Od_I21cMRW1`w`o351d-axD-Fc_ixW9JmHZY(fi^h8SrDSH- z_N^Ix+VZT4X+31yj&J&wV|$9OwBzPdUf#9r+y&R1(esWwmGXS;YR6y5>r_VP9nbO| zccEVqKj=8V=euTpRQng5tXCQ3nZa{jl=3ph5nd@aPnvUPYTC4ODa)R7rgSh^vDo-p z5m7y!b|vDi!8_iU@*&1YJ{8I;!%BS#D&kF5-wX`C$9Tx2cyav-mP2j9c-)BoDSG|} z)A5FgQi_gXsInteszSkH{6T9iVXDPn$5s;b(ZCQ*93sgujf~L}T&tQ?n}V|HmF^D8 zL{-l=TIm$lMT#w=>mn^^(oI&lW(PJsg~pnzs;`$4cCkSou3-;t>=n^IcGJ(GoTmiG z1ziT16+X{?E_0x;RNJYN!;~{3*$&gp3CTDt;ThUF8MG&|kuyX&8(c}u)twV&N(Wid zPf)>miP44n`lM<(D&{dU(`;l^3Qn_K27O$3nz3NC;jSLxy8L!Rs)QIfxG7j<_oN9W vqj@Y=2}>*sM&;&-;8WSngjf-Kl{dmZ^OYa}*-w76#=0mBWY(%gg-QMcmuiT6 delta 487 zcmXYuOHWf#6otRjQYtr>+wy43)lvf}!UZ&fHEM&2DabPdsR@Q)w9q>t&_OFY_9vJ# zaLm{^Fr7It4j4IdcIACy9F*#m zRcS37tgz~5&7_-kJ#Eb%-BkG0>Aaf@6!XsDJsa%|Ai-bl3KK2X@ zzL?Cj5Ij8J^`f`d85o;z$L}P>{qwN@%j7k4LFN=@Pd4l3l9TCt-p%_t&@Y3I3?!y! zteB3LJ*p|Eh@hA%I7KCK!d$_og9x2eagAeoqijOObgF!%rH&F#N~fM08bsg78BU0< zk$%B6O=N_-IAm!qWGWu0_*p!(a)dTn5T};&v~WT0i(KX$*9Aufb0nA+eveDsr@i2W z9Azgd{huSsfNV^PeULha^i(+G8>W~W`c?RD=%%n+@`5qZ-^P+05ylJYh^?x-r0kZm zm*ezF;9iM$Ral<{?$-~iW>tqCwW||e-pDU`c*~+-6fa9CHrNuj!!BR{v2Xm~H-AK7 LNOxbMJlKB$OD$=W diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class index 8d1976e30dfa5e57b4ada446c6934f7cff58efae..a60fa2819f36dcdf3324320ecf4f386e0242d814 100644 GIT binary patch delta 601 zcmW-e$xjqP6vltWEJ$a7VH+5hC?GB%Od_I21cMRW1`w`o351d-axD-Fc_ixW9JmHZY(fi^h8SrDSH- z_N^Ix+VZT4X+31yj&J&wV|$9OwBzPdUf#9r+y&R1(esWwmGXS;YR6y5>r_VP9nbO| zccEVqKj=8V=euTpRQng5tXCQ3nZa{jl=3ph5nd@aPnvUPYTC4ODa)R7rgSh^vDo-p z5m7y!b|vDi!8_iU@*&1YJ{8I;!%BS#D&kF5-wX`C$9Tx2cyav-mP2j9c-)BoDSG|} z)A5FgQi_gXsInteszSkH{6T9iVXDPn$5s;b(ZCQ*93sgujf~L}T&tQ?n}V|HmF^D8 zL{-l=TIm$lMT#w=>mn^^(oI&lW(PJsg~pnzs;`$4cCkSou3-;t>=n^IcGJ(GoTmiG z1ziT16+X{?E_0x;RNJYN!;~{3*$&gp3CTDt;ThUF8MG&|kuyX&8(c}u)twV&N(Wid zPf)>miP44n`lM<(D&{dU(`;l^3Qn_K27O$3nz3NC;jSLxy8L!Rs)QIfxG7j<_oN9W vqj@Y=2}>*sM&;&-;8WSngjf-Kl{dmZ^OYa}*-w76#=0mBWY(%gg-QMcmuiT6 delta 487 zcmXYuOHWf#6otRjQYtr>+wy43)lvf}!UZ&fHEM&2DabPdsR@Q)w9q>t&_OFY_9vJ# zaLm{^Fr7It4j4IdcIACy9F*#m zRcS37tgz~5&7_-kJ#Eb%-BkG0>Aaf@6!XsDJsa%|Ai-bl3KK2X@ zzL?Cj5Ij8J^`f`d85o;z$L}P>{qwN@%j7k4LFN=@Pd4l3l9TCt-p%_t&@Y3I3?!y! zteB3LJ*p|Eh@hA%I7KCK!d$_og9x2eagAeoqijOObgF!%rH&F#N~fM08bsg78BU0< zk$%B6O=N_-IAm!qWGWu0_*p!(a)dTn5T};&v~WT0i(KX$*9Aufb0nA+eveDsr@i2W z9Azgd{huSsfNV^PeULha^i(+G8>W~W`c?RD=%%n+@`5qZ-^P+05ylJYh^?x-r0kZm zm*ezF;9iM$Ral<{?$-~iW>tqCwW||e-pDU`c*~+-6fa9CHrNuj!!BR{v2Xm~H-AK7 LNOxbMJlKB$OD$=W diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class index d56df36d46ce5804dbbd3c93e0140251ea893156..94b4ff7fd446b5f688f017d5521ae85f822f03cd 100644 GIT binary patch delta 610 zcmXX^TTc@~6#h=>MK`5g)V35sQyYZ}?ItQ-QZb@JK?|5ld_W)E(xGlGyUor5;nAO9 zHt{!@_+*;+;DhmjC*OS%MFkZvDBi^jdN3w4^L^i$Z|0mcnS1-L?^o`x-?Ec`5yw5b4NQ^l4qI>SkFRDOSX|lTD3aImHf34 z{T;+Z%&V9u1P4u1*e9#HltKoG2)o_0;h38Vhx`F*Anf=r1MUs=W+DPFw(<>8v?GRY z#LL`xk5JnjV_ z!6R<6d5&`Ka&ueGiv|7^9z4NQMn4G87#DfAq5(^+U*j#aPxylG|JWLSVjX|jp@5&5 IJmf|EFZH02iU0rr delta 498 zcmXYu$xqWk9K}D=(pG;d^e1!`)BqMO0tT?C7)Y?7gyNQ%sEJ0aZDLHc+EzV#_d+J| zukfOciFzO&hzH}vgGYDV_kBa~)tF4?y*KYozHc%Y`fv0(x8|=;14G7p$+=tK=58() zE9FWlcXC^yaw{xe@=bn)%zFcjG=53`v^{CA|S->>c-ZYa?~I z@|##im^4vFNH9u_G2(2e*-kGxW|rGj<7{_3i%H7qpq16ir&!BMY4NiRa*m Ku1kOYd3**if$InTK6=nLzwSz>%rj2lESLDC z>k4U0N4Nn)GA;bP6?nem=5xMX<{QE11rcJdf*G&HKuShl(a23pmeaiw)4js%*~sXmMh>s4cB!A#ODg;orp3xn$3yfKGhVwiFx zNMclFYI7{5o@%F;5}2Vk8eoL=Si}->7&*c!8~tg|=UPZ(>6L delta 334 zcmXYsy-UMT6vfZe*fy^(wgoLpLrR6(M#P}2xHt)Fy9w$Po3u67rna$u*YB_S=_Jl> zg19+|gOjuVDX!ub9PYWldpMWNeMo;A{Nv~46~Gj(p7>*AC_e4`K`Ut5jd?ey`c5kr zg2%CjS{UmBb@TNe0;zWrzI z2$bMZV2@)T2VrysojsH{{GA=k#i*s6F=XW%&xXRdU@!;``4ugwF(`;bMM91Wr>7qR zNqH--)fBlpl1Ry%w!kv7qj}mec{vOqk2FmAt=(y3&|ty9IC&HDzPHSBQi;tJbY~O(6Bh1CT-oZj7>W<;Fk4rT>HBLRg&d`_6YBIXSE4e`V|U|L<$SBp<(6pK@XGTsKnT zLNF7i;p}`c6-83{DwI(wsMKZB^3pg7qgFHV7lK8Z%z3E_l0d4ZIPlH~NiS>!69RWy zN|ma_kIw|^lDwD}`dG5K!qqI-Y(}`Q|Kxs&n|j3>7Ps{`YuLGKagY019@sqO(bvCL zMvOiY?5>Q~+kVgY=KZMUotDsZ!>oxwyt* z?KnDD#bt~^s`|4tBaUiOXy%U@Z`^D-&VEj4RanlSGV`a+{1g?Ywc|F$xbC{O))*Je zw{3*M0opVSXGjfhL(w(dXKFpeizX`U;IheYY~n5Mu${*|<@uI+Y1Bqt^Tu>rM!jW~ H4;0q{Y!Gb^ delta 355 zcmXYtJ1>KA6vm%FrG5YYeft)zONyqgqDB#CU5YA>OU*uk z*l1WxzJhPSWEXLW<$0c*-+9h(K719QeEoiS0uaN^oxIh2#!xDi&*ifd>EY@8Olm6U zsK|*cUY_JG%Kw;J1cqn1RkwO+3 z10{h#kVZ7WlTVg^$*Dpb85_>2tis}wo|P%C>0K3_&9J})4Q}XYK@(c3V6VD7u%iQ= z=t2*?h{BIJ0+i563&DWN+adbYM@5+8j-B-?#H-4fFK4bVI)O_ zsz!X=#29}-L9jY8i%Ircs;%&+40#~S@ F?FV5fN6i2L diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class index 52fe2d7c35f9b486f9fce7e32cf7f42da70feea6..cdfcf972341cd141db1cfee44a8edbeccfb17b53 100644 GIT binary patch delta 405 zcmXYtJ5K^Z6ottdnX$#3nw4Sm1fdnqg)1Dhy3Ry_ zXWgz&lqkxmcwy_{s1n4AX3aFprkyt|yT(h*NSboV_emT%qYd>43LkcLWRVGBk6QMb}bD$%QjGB%pj&b6}sg4Dl$p`I?G~_m&CRg%~PI_(#qH^08l^=9N3&DeK zXy}m%f3~9!I{M|kzo~^0LIiyX%PBoYVzQx^1LG=-V*nEv!KD1s9|HygNFa(?mCwmm zAV=bIAh<>%(hT;ldcf2l+mJ(Ec_#=8$}OcZ+EG;6fs5Kd?JGJ|opW5M232&4YusY+ E7sD@LU;qFB delta 329 zcmXYsJ5K^p5QWcG6!vl#)&yUGL`gs}Dq5=zl`$GRqm^0SBC-f8_D`V^| ztZejG5PyKRg;B@EV$S*IXgU6J>=>R30stL&U2BzF2&*WH!u1*{l>2sdOoqv1hnmlW?J~kVVG8Hr;4r!RBAI zqmV|13wsj#IB?=nVHQX9uDys8x|QROGl2-TUH$YS4RJv~($YL|zzYoqHQm`R9~642 z?Y`FhFc3f={8UrRVwhf4S&wiQ#Q;Vzf*2+BJADE=CK19EVwk2+JujlP=9y0gu)sen q2-Y5~V3oZSIo1y3QD6`9UgWW`1^b^GOuKw@j8kq%rWVd|iNRmT_(bmj diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicChannelService.class.uniqueId1 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicChannelService.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..d55fa414f62418ffea92ad55191d28adb1a29a73 GIT binary patch literal 3924 zcmcIn`%@EF6#i}qEQCcKK7fK6EeavxiqeP1qJmIqBUpp@Z1u9az{+Mf-Q9rn{jjh9 zpwqviooTh|OxvG3{hK;HcXvY;g0bmLf7smTIp;gyJ?Gq;KmUIE8-O?PZ2~bgD2S_Q zL=!{DeZIyulUvK$+~R$qdkjry4a@Mx85)LC3oU3yi-LrTR;Uc)x?RxRqGMQ|Rxn)G zuq`cbxVoJehNrp0Su=E@Eppe;wF&tYvQZrA4A;bYl7iUT~ITrdK}A0xVLKvR$slPWG^ib%-|Q+VRJ zq%0_Sli^g&tSQ%;?FDB11&LBC+cK#IO1McXW(@6F!xFQl!lH2I`JzcPU0GY_<^p#N zISwb|-ikpqov)p5Ww6gJj2Sx9%fef+^H;dT3q+1XTAOr7_>uSU1y23fLRA~}R;>gv z?okP(u!$>`LBs`hc4Ckt|tWHHOAp}_j zJ0c~|Pg#bRoUv?iujG(J7pe-#*}9C46K=fmWn%E?vaDoBDno^@b4D`lTlOEveA+ou1<2(%o(1@ zbl`o4J>@uzR(&GNP0$0*Qz4M=z#79qd7poWKj*wi?tzrsP@yAFqYo4K2p=o>MBW#l zl9npUgR3F9LZ-{4fB*l}99~JcBgYcFW6N(9pO5X7HRE%JzVPZuuG5v5H1bK7v}`ZA zWS3+WQD^Ag>P(v4b%m?oA;Xa>r*{e&1z$59sJ)dcdk|kZL@dYX!7)u=mwaN=TdJA* zjkrYfGc=l}Hb!k?_%YaU`WGla(I|$u=yw+y=(inlbf5*Dc$-H1g5AjCGL1;i*UB(U z{YI*_)G*B93T>0>Ei%%rFtjyBOA>BE+IoVc zEaGgFzjDY|s|LG5wRcD&hIeUh1n-5Kz9SbUiRmqI64z3ELl^oGpfZpd#M_k4bP=mEclU+L>z`tH%kz%dmfbqJ~CHx(k) zV)y}jp5fHZ^sjj3DKfxgocldoorpmOTZ12L0nX#}FxKd;KT1eXMp#d6;!K4&7kx=~ zAVPmfLe>)kBqJ|FdL{jx()w`3dgYLVQy7e#LZ`1Bq=*Vyy^8v)6%mFd!VtqUR;cZ# eu|Z!E4oYEfoq8XTsn75Q?MP7XOMHcI(EAT8XC_bp literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicMessageService.class.uniqueId2 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicMessageService.class.uniqueId2 new file mode 100644 index 0000000000000000000000000000000000000000..64bc95a5fcd93abbe08ff2858fed8b9c28f7a538 GIT binary patch literal 4376 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 bS@;lcuv(?nI=Om;FGwOmt1t02zD57PoW$a| literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileChannelRepository.class.uniqueId5 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileChannelRepository.class.uniqueId5 new file mode 100644 index 0000000000000000000000000000000000000000..dc263faed8df825a15e09d9cf01c74f9eb1d7155 GIT binary patch literal 6506 zcmcIp349dQ8UN4bm}E1U7*trGB8Nyq!YUq>ET9kq1alzaFnBT9oxs3kXWgCUu&u2} zwTHbg?S0tN!?xIJh)|7f?PayCy$^fe_kGwy{C{s|c6Ugi^82+vVCT(y-}|orcf2<| z^3>r60W8<5;)tP2N40?()M{wjW$rPPj+xz&>>t`?r9BO`%j~S}tNHd@ zE?D_`#L=L`FfawDXjqkYN0NnH-p+c-5xY>Z-E1;r7t(IVvb|*9%DDyGbMyO?!?t53 z*YKxvrpNsz#hptR-ZXyX*g}+B>KfM zA7|@WVBj1q)G$?X$=a^(*bSz)lbou^NkeK9i?5t$aUdkZBPH;*8d!uj!m_%1V^`;< z{*8mw$=@F(*0ET_^r$91c6N7v&SM;QADyg}W{;foF)6TrR z*Bo-JRLhn)rlHfoYIJGP_n1!6>K{HP-2Ge*l~d^*3xZ}{-T#FdeqG_ zN5r^o2Cl?aEOnkM%gp~!jbH{Ban-(U@ zyDLc)j@vP8U)v%(U5dZkN4EQ$Me>@u)h>UK@qaSN6XRz1HWD2z){5{CoV zKu+RlikZm_6mvPcvS4Mzuw9Z81p}U>XRW2OP{$qyghD#7vpZYzSsX=Nqk}~?5mNYC zMQHZnIb!p3%b`n76%@+keYnBE^YH==aiWn4EsmDHz~nggiLOQL(s7H1v&wm+3TU6} zt#OOlOhxwGiraL&$iR#7k}z&nu=s_^bSTvw?khTuq|z~=8~WKVc#&-khjVeeftTUs z?1m1jmWE`2QK>#jjD{Jfb{ABF!PY2kIA>lZjF!5=j6A$*vVRyI?R`l%t3 zw?3unRrk=T&lKrNj!9F(%DhF2J;SGyrz{>Q*b%M1;>eJd-{i-0bB~)goh@eGmiJ&% zBkAdWP)k0Rn^8&vai`4|xcYw)hpaRMo|)d=YvuyUF`ME$b5SzkqWp-GfzME58~5DBVX zlnN)gHwGq!#ZkwXG@PO;u2Mvx)A8jA$MHUN`WV_0BJvJsY=jULdu@*m$<0ts3j-Sb~ z@aG!lm;0=p-Q(`Iq=oT5=ARVTm~wJvVZS4=Q-xAM=rdhsW-~nG&+l>F-NjtWkH*SF zXvIuqL4SuWRcLsisKWLac z!MYv=AyqerL)#iym&$LC{{JmKp&KHLzH=+R6j@d-4DxMK?=<00$26+YrP~^7@E19K z|JA^E@x3Pb`;T&gI-dK3?R51&W%IubddpSqfFSmjV`0uqacFCMr3VH~7;?aRzA;q?(27=pZ4RL!TvinK=&^@docGpY`zBhmG`rLw}jbl>EH} z2KAiB*|SNxfV&rRe+xOxr*B)(!>7p*$#86;6V@2S5xHHg&|iTI$Y&`zUBLY*a#)JJ+;t;Anh1*P7^UsR`*V1Nkuw(?@OeB+Johqd zM)4R&^ic`LTZ5pF;TC*>c*ZF628Cyp!gH74$-q#seKCZzsPj%5LaI+(t3-8e1o=u9 z5nvy0s7$=CP{|m+N`SwHyEu{rznu<}1aFfBAHz#q591Y*;IEO$yHiGQiSg$htbyff zL=Iq3&!wY$_nxVexRaI9FFmtZV&gF-kWxd;pAM2uFYok|r$%U) zh|2qqH^t<{;(MIt`u)&YbU)t5&p@nXcb6m4Z-lE$;STl;zthS{VvpA-e4i%9@B{pi l&slu`5odpaUvczD{26~!qrc-x{2Tuv1-mkyqB=1oo(BH-zyAOL literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileMessageRepository.class.uniqueId3 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileMessageRepository.class.uniqueId3 new file mode 100644 index 0000000000000000000000000000000000000000..8d1976e30dfa5e57b4ada446c6934f7cff58efae GIT binary patch literal 6506 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 literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileUserRepository.class.uniqueId0 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileUserRepository.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..d56df36d46ce5804dbbd3c93e0140251ea893156 GIT binary patch literal 6464 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 literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId4 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId4 new file mode 100644 index 0000000000000000000000000000000000000000..27259b16f454201580d58cdc24462d4a65b38d70 GIT binary patch literal 4482 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 P=Y!x6K=k@k8f*3^a_!%y diff --git a/discodeit/file-data-map/Channel/422775fc-de56-4a75-8f6b-48c5e4ad42d0.ser b/discodeit/file-data-map/Channel/422775fc-de56-4a75-8f6b-48c5e4ad42d0.ser new file mode 100644 index 0000000000000000000000000000000000000000..7c64b44e8260afc31a767fde1817d4c99a1c8975 GIT binary patch literal 534 zcmb7>u}i~16vkhpEtHCsE)F6H4i3T{&Q7)p8iEM5?y))Q)#P#}FQr|ILn}guc2Lm8 zNpPuyh?}dMgMWcKbh34JaqwbFt)n;Hy?gI{zwf>72gH33mWr-JeCct4#NocrT|q4F z7hQ{SBupU38p-XOLNFVm6Vo7JK(gpD6PdM&2x+5iR!nM}qC^c>lvWH#S6gJmXd{USWJA^uD>W($Z5S9&vNh3@;#H1rk8e!5Q=8h^+ zZIXesBEYa$tSXh;>5!9zoaBeI)$2U97hW}p=@74&cEGA0q<@pP0%wnT$KA8J)ahGG z1E|Vy2E10DMVNWNyB}O1%@1xH{YGbS+3dGY`mHN6(g{tG(A2}l#OJxwq#9^COxeuz zG0#g`j=l~l#~r<@vVE}e*t^L-XBUI7mt8$TNJJ`i59mKu70zI|F32eCKi1bp;EaDt MrLtYf8k;%!4FG1i)&Kwi literal 0 HcmV?d00001 diff --git a/discodeit/file-data-map/Message/a9f39f2a-fbbe-4254-8d68-16fb11960d94.ser b/discodeit/file-data-map/Message/a9f39f2a-fbbe-4254-8d68-16fb11960d94.ser new file mode 100644 index 0000000000000000000000000000000000000000..e842d3f042b8069ba3838b761c2b8302cfab638b GIT binary patch literal 418 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@d>A+qOG`5Hi#$_G7zBK>63Y_xOG`3y^g}~EU95c=IFmCH^YT)2JW~o8 z>KGV(7}%5Z^Gblml`sfFROck-rRxWm04+`jt1n7TEJ;mq1S)_U2Ug&d50+-igqg!x zT95)!2r`(tq5$XzK9Kc#AnWx&*6*3g{C!4lt3DG0lNSR|PHJLtNpNPmQ)WrA7Xx>0 zKAcxk(9AjU*A#Q-xzF^^&W=j(;wuK3$=aXoarDVrrwdN%rGM^)d6fcP^k!(;4n zr_OlOvg6IHDSB{AL5|b|JF@%9gfsoh_n8dp6PbMNsZe0exJj_L^2^7+-Z^$mj%l*JF_qJTvJ literal 0 HcmV?d00001 diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java b/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java index 360245c4..b4870e6a 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java @@ -1,13 +1,46 @@ package com.sprint.mission.discodeit; +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.service.ChannelService; +import com.sprint.mission.discodeit.service.MessageService; +import com.sprint.mission.discodeit.service.UserService; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication public class DiscodeitApplication { public static void main(String[] args) { - SpringApplication.run(DiscodeitApplication.class, args); + ConfigurableApplicationContext context = SpringApplication.run(DiscodeitApplication.class, args); + + // ⭐️ Spring Context에서 Bean 조회 + UserService userService = context.getBean(UserService.class); + ChannelService channelService = context.getBean(ChannelService.class); + MessageService messageService = context.getBean(MessageService.class); + + // 이후 기존 JavaApplication에서 하던 테스트 코드 그대로 사용 + User user = setupUser(userService); + Channel channel = setupChannel(channelService); + messageCreateTest(messageService, channel, user); + + } + + static User setupUser(UserService userService) { + User user = userService.create("woody", "woody@codeit.com", "woody1234"); + return user; + } + + static Channel setupChannel(ChannelService channelService) { + Channel channel = channelService.create(ChannelType.PUBLIC, "공지", "공지 채널입니다."); + return channel; } + static void messageCreateTest(MessageService messageService, Channel channel, User author) { + Message message = messageService.create("안녕하세요.", channel.getId(), author.getId()); + System.out.println("메시지 생성: " + message.getId()); + } } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java new file mode 100644 index 00000000..6cf407e3 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java @@ -0,0 +1,36 @@ +package com.sprint.mission.discodeit.entity; + +import lombok.Getter; + +import java.time.Instant; +import java.util.UUID; + +@Getter +public class BinaryContent { + + private final UUID id; + private final Instant createdAt; + + private final UUID ownerUserId; // 프로필 이미지용 + private final UUID messageId; // 메시지 첨부용 + + private final String filename; + private final byte[] data; + private final String contentType; + + public BinaryContent( + UUID ownerUserId, + UUID messageId, + String filename, + byte[] data, + String contentType + ) { + this.id = UUID.randomUUID(); + this.createdAt = Instant.now(); + this.ownerUserId = ownerUserId; + this.messageId = messageId; + this.filename = filename; + this.data = data; + this.contentType = contentType; + } +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java index 3a1058e4..731587b3 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java @@ -1,14 +1,17 @@ package com.sprint.mission.discodeit.entity; +import lombok.Getter; + import java.io.Serializable; import java.time.Instant; import java.util.UUID; +@Getter public class Channel implements Serializable { private static final long serialVersionUID = 1L; private UUID id; - private Long createdAt; - private Long updatedAt; + private Instant createdAt; + private Instant updatedAt; // private ChannelType type; private String name; @@ -16,36 +19,12 @@ public class Channel implements Serializable { public Channel(ChannelType type, String name, String description) { this.id = UUID.randomUUID(); - this.createdAt = Instant.now().getEpochSecond(); - // + this.createdAt = Instant.now(); this.type = type; this.name = name; this.description = description; } - public UUID getId() { - return id; - } - - public Long getCreatedAt() { - return createdAt; - } - - public Long getUpdatedAt() { - return updatedAt; - } - - public ChannelType getType() { - return type; - } - - public String getName() { - return name; - } - - public String getDescription() { - return description; - } public void update(String newName, String newDescription) { boolean anyValueUpdated = false; diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Message.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Message.java index e622318a..94dba18e 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Message.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Message.java @@ -1,15 +1,18 @@ package com.sprint.mission.discodeit.entity; +import lombok.Getter; + import java.io.Serializable; import java.time.Instant; import java.util.UUID; +@Getter public class Message implements Serializable { private static final long serialVersionUID = 1L; private UUID id; - private Long createdAt; - private Long updatedAt; + private Instant createdAt; + private Instant updatedAt; // private String content; // @@ -18,36 +21,13 @@ public class Message implements Serializable { public Message(String content, UUID channelId, UUID authorId) { this.id = UUID.randomUUID(); - this.createdAt = Instant.now().getEpochSecond(); + this.createdAt = Instant.now(); // this.content = content; this.channelId = channelId; this.authorId = authorId; } - public UUID getId() { - return id; - } - - public Long getCreatedAt() { - return createdAt; - } - - public Long getUpdatedAt() { - return updatedAt; - } - - public String getContent() { - return content; - } - - public UUID getChannelId() { - return channelId; - } - - public UUID getAuthorId() { - return authorId; - } public void update(String newContent) { boolean anyValueUpdated = false; @@ -57,7 +37,7 @@ public void update(String newContent) { } if (anyValueUpdated) { - this.updatedAt = Instant.now().getEpochSecond(); + this.updatedAt = Instant.now(); } } } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/ReadStatus.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/ReadStatus.java new file mode 100644 index 00000000..b9516934 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/ReadStatus.java @@ -0,0 +1,32 @@ +package com.sprint.mission.discodeit.entity; + +import lombok.Getter; + +import java.time.Instant; +import java.util.UUID; + +@Getter +public class ReadStatus { + + private final UUID id; + private final Instant createdAt; + private Instant updatedAt; + + private final UUID userId; + private final UUID channelId; + private Instant lastReadAt; + + public ReadStatus(UUID userId, UUID channelId, Instant lastReadAt) { + this.id = UUID.randomUUID(); + this.createdAt = Instant.now(); + this.userId = userId; + this.channelId = channelId; + this.lastReadAt = lastReadAt; + this.updatedAt = this.createdAt; + } + + public void updateLastReadAt(Instant lastReadAt) { + this.lastReadAt = lastReadAt; + this.updatedAt = Instant.now(); + } +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java index c4f0faaa..319f5ce7 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java @@ -1,15 +1,18 @@ package com.sprint.mission.discodeit.entity; +import lombok.Getter; + import java.io.Serializable; import java.time.Instant; import java.util.UUID; +@Getter public class User implements Serializable { private static final long serialVersionUID = 1L; private UUID id; - private Long createdAt; - private Long updatedAt; + private Instant createdAt; + private Instant updatedAt; // private String username; private String email; @@ -17,37 +20,13 @@ public class User implements Serializable { public User(String username, String email, String password) { this.id = UUID.randomUUID(); - this.createdAt = Instant.now().getEpochSecond(); + this.createdAt = Instant.now(); // this.username = username; this.email = email; this.password = password; } - public UUID getId() { - return id; - } - - public Long getCreatedAt() { - return createdAt; - } - - public Long getUpdatedAt() { - return updatedAt; - } - - public String getUsername() { - return username; - } - - public String getEmail() { - return email; - } - - public String getPassword() { - return password; - } - public void update(String newUsername, String newEmail, String newPassword) { boolean anyValueUpdated = false; if (newUsername != null && !newUsername.equals(this.username)) { @@ -64,7 +43,7 @@ public void update(String newUsername, String newEmail, String newPassword) { } if (anyValueUpdated) { - this.updatedAt = Instant.now().getEpochSecond(); + this.updatedAt = Instant.now(); } } } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java new file mode 100644 index 00000000..a373427a --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java @@ -0,0 +1,38 @@ +package com.sprint.mission.discodeit.entity; + +import lombok.Getter; + +import java.time.Duration; +import java.time.Instant; +import java.util.UUID; + +@Getter +public class UserStatus { + + private final UUID id; + private final Instant createdAt; + private Instant updatedAt; + + private final UUID userId; + private Instant lastActiveAt; + + public UserStatus(UUID userId, Instant lastActiveAt) { + this.id = UUID.randomUUID(); + this.createdAt = Instant.now(); + this.userId = userId; + this.lastActiveAt = lastActiveAt; + this.updatedAt = this.createdAt; + } + + public void updateLastActiveAt(Instant time) { + this.lastActiveAt = time; + this.updatedAt = Instant.now(); + } + + /** + * 마지막 접속이 5분 이내면 온라인 + */ + public boolean isOnline() { + return Duration.between(lastActiveAt, Instant.now()).toMinutes() < 5; + } +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java index 0431aa53..48b7de34 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java @@ -2,6 +2,7 @@ import com.sprint.mission.discodeit.entity.Channel; import com.sprint.mission.discodeit.repository.ChannelRepository; +import org.springframework.stereotype.Repository; import java.io.*; import java.nio.file.Files; @@ -11,6 +12,7 @@ import java.util.Optional; import java.util.UUID; +@Repository public class FileChannelRepository implements ChannelRepository { private final Path DIRECTORY; private final String EXTENSION = ".ser"; diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java index 73023764..bf71910f 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java @@ -2,6 +2,7 @@ import com.sprint.mission.discodeit.entity.Message; import com.sprint.mission.discodeit.repository.MessageRepository; +import org.springframework.stereotype.Repository; import java.io.*; import java.nio.file.Files; @@ -11,6 +12,7 @@ import java.util.Optional; import java.util.UUID; +@Repository public class FileMessageRepository implements MessageRepository { private final Path DIRECTORY; private final String EXTENSION = ".ser"; diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java index ec92b666..d03601a6 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java @@ -2,6 +2,7 @@ import com.sprint.mission.discodeit.entity.User; import com.sprint.mission.discodeit.repository.UserRepository; +import org.springframework.stereotype.Repository; import java.io.*; import java.nio.file.Files; @@ -11,6 +12,8 @@ import java.util.Optional; import java.util.UUID; + +@Repository public class FileUserRepository implements UserRepository { private final Path DIRECTORY; private final String EXTENSION = ".ser"; diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java index edb7231a..e83ad39d 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java @@ -4,18 +4,18 @@ import com.sprint.mission.discodeit.entity.ChannelType; import com.sprint.mission.discodeit.repository.ChannelRepository; import com.sprint.mission.discodeit.service.ChannelService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; import java.util.List; import java.util.NoSuchElementException; import java.util.UUID; +@Service +@RequiredArgsConstructor public class BasicChannelService implements ChannelService { private final ChannelRepository channelRepository; - public BasicChannelService(ChannelRepository channelRepository) { - this.channelRepository = channelRepository; - } - @Override public Channel create(ChannelType type, String name, String description) { Channel channel = new Channel(type, name, description); diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java index bb8b368a..ca66ed8c 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java @@ -5,24 +5,22 @@ import com.sprint.mission.discodeit.repository.MessageRepository; import com.sprint.mission.discodeit.repository.UserRepository; import com.sprint.mission.discodeit.service.MessageService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; import java.util.List; import java.util.NoSuchElementException; import java.util.Optional; import java.util.UUID; +@Service +@RequiredArgsConstructor public class BasicMessageService implements MessageService { private final MessageRepository messageRepository; // private final ChannelRepository channelRepository; private final UserRepository userRepository; - public BasicMessageService(MessageRepository messageRepository, ChannelRepository channelRepository, UserRepository userRepository) { - this.messageRepository = messageRepository; - this.channelRepository = channelRepository; - this.userRepository = userRepository; - } - @Override public Message create(String content, UUID channelId, UUID authorId) { if (!channelRepository.existsById(channelId)) { diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java index 51f24ab7..947c0f16 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java @@ -3,18 +3,18 @@ import com.sprint.mission.discodeit.entity.User; import com.sprint.mission.discodeit.repository.UserRepository; import com.sprint.mission.discodeit.service.UserService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; import java.util.List; import java.util.NoSuchElementException; import java.util.UUID; +@Service +@RequiredArgsConstructor public class BasicUserService implements UserService { private final UserRepository userRepository; - public BasicUserService(UserRepository userRepository) { - this.userRepository = userRepository; - } - @Override public User create(String username, String email, String password) { User user = new User(username, email, password); From 34834ab66791df3d9d4172d2bb493489f522e6c9 Mon Sep 17 00:00:00 2001 From: apple Date: Sun, 8 Feb 2026 22:49:32 +0900 Subject: [PATCH 12/12] =?UTF-8?q?UserService=20=EA=B3=A0=EB=8F=84=ED=99=94?= =?UTF-8?q?=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../8.8/executionHistory/executionHistory.bin | Bin 47114 -> 70449 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/8.8/fileHashes/fileHashes.bin | Bin 21447 -> 22147 bytes .../.gradle/8.8/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.8/fileHashes/resourceHashesCache.bin | Bin 19415 -> 19993 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes discodeit/.gradle/file-system.probe | Bin 8 -> 8 bytes .../discodeit/DiscodeitApplication.class | Bin 772 -> 3916 bytes .../mission/discodeit/dto/UserCreateDto.class | Bin 0 -> 1787 bytes .../discodeit/dto/UserProfileDto.class | Bin 0 -> 1795 bytes .../discodeit/dto/UserResponseDto.class | Bin 0 -> 2122 bytes .../mission/discodeit/dto/UserUpdateDto.class | Bin 0 -> 1970 bytes .../discodeit/entity/BinaryContent.class | Bin 0 -> 1664 bytes .../mission/discodeit/entity/Channel.class | Bin 2061 -> 2059 bytes .../mission/discodeit/entity/Message.class | Bin 1849 -> 1847 bytes .../mission/discodeit/entity/ReadStatus.class | Bin 0 -> 1568 bytes .../mission/discodeit/entity/User.class | Bin 1943 -> 1941 bytes .../mission/discodeit/entity/UserStatus.class | Bin 0 -> 1714 bytes .../file/FileChannelRepository.class | Bin 6592 -> 6592 bytes .../file/FileMessageRepository.class | Bin 6592 -> 6592 bytes .../repository/file/FileUserRepository.class | Bin 6550 -> 6550 bytes .../service/basic/BasicChannelService.class | Bin 4007 -> 4062 bytes .../service/basic/BasicMessageService.class | Bin 4459 -> 4506 bytes .../service/basic/BasicUserService.class | Bin 3842 -> 3897 bytes ...d1 => BasicChannelService.class.uniqueId7} | Bin 3924 -> 4007 bytes ...2 => BasicMessageService.class.uniqueId13} | Bin 4376 -> 4459 bytes ...eId6 => BasicUserService.class.uniqueId10} | Bin 3759 -> 3842 bytes .../stash-dir/Channel.class.uniqueId5 | Bin 0 -> 2061 bytes .../ChannelRepository.class.uniqueId4 | Bin 0 -> 712 bytes .../stash-dir/ChannelService.class.uniqueId16 | Bin 0 -> 810 bytes .../DiscodeitApplication.class.uniqueId12 | Bin 0 -> 772 bytes ...=> FileChannelRepository.class.uniqueId18} | Bin 6506 -> 6592 bytes ...=> FileMessageRepository.class.uniqueId15} | Bin 6506 -> 6592 bytes ...Id0 => FileUserRepository.class.uniqueId3} | Bin 6464 -> 6550 bytes .../JCFChannelRepository.class.uniqueId11 | Bin 0 -> 2171 bytes .../JCFMessageRepository.class.uniqueId19 | Bin 0 -> 2171 bytes .../JCFUserRepository.class.uniqueId9 | Bin 0 -> 2135 bytes ...ueId4 => JavaApplication.class.uniqueId17} | Bin .../stash-dir/Message.class.uniqueId8 | Bin 0 -> 1849 bytes .../MessageRepository.class.uniqueId0 | Bin 0 -> 712 bytes .../stash-dir/MessageService.class.uniqueId6 | Bin 0 -> 744 bytes .../stash-dir/User.class.uniqueId1 | Bin 0 -> 1943 bytes .../stash-dir/UserRepository.class.uniqueId2 | Bin 0 -> 691 bytes .../stash-dir/UserService.class.uniqueId14 | Bin 0 -> 794 bytes .../compileJava/previous-compilation-data.bin | Bin 26258 -> 27096 bytes .../083d5d8b-0667-407c-bf5d-acd5a5e14070.ser | Bin 0 -> 505 bytes .../a0aa6aae-7325-4e88-bef4-a48c1b4640ba.ser | Bin 0 -> 389 bytes .../19ac7f8c-c079-435e-a6f0-1d07bc5c5722.ser | Bin 0 -> 359 bytes .../mission/discodeit/dto/UserCreateDto.java | 7 + .../mission/discodeit/dto/UserProfileDto.java | 7 + .../discodeit/dto/UserResponseDto.java | 11 ++ .../mission/discodeit/dto/UserUpdateDto.java | 11 ++ .../discodeit/entity/BinaryContent.java | 1 + .../mission/discodeit/entity/Channel.java | 2 +- .../mission/discodeit/entity/UserStatus.java | 2 +- .../User/BinaryContentRepository.java | 15 ++ .../repository/User/UserStatusRepository.java | 15 ++ .../file/FileChannelRepository.java | 1 + .../file/FileMessageRepository.java | 1 + .../repository/file/FileUserRepository.java | 1 + .../service/basic/BasicUserService.java | 144 +++++++++++++++--- 61 files changed, 199 insertions(+), 19 deletions(-) create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/dto/UserCreateDto.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/dto/UserProfileDto.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/dto/UserResponseDto.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/dto/UserUpdateDto.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/BinaryContent.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/ReadStatus.class create mode 100644 discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/UserStatus.class rename discodeit/build/tmp/compileJava/compileTransaction/stash-dir/{BasicChannelService.class.uniqueId1 => BasicChannelService.class.uniqueId7} (73%) rename discodeit/build/tmp/compileJava/compileTransaction/stash-dir/{BasicMessageService.class.uniqueId2 => BasicMessageService.class.uniqueId13} (69%) rename discodeit/build/tmp/compileJava/compileTransaction/stash-dir/{BasicUserService.class.uniqueId6 => BasicUserService.class.uniqueId10} (72%) create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId5 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/ChannelRepository.class.uniqueId4 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/ChannelService.class.uniqueId16 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/DiscodeitApplication.class.uniqueId12 rename discodeit/build/tmp/compileJava/compileTransaction/stash-dir/{FileChannelRepository.class.uniqueId5 => FileChannelRepository.class.uniqueId18} (80%) rename discodeit/build/tmp/compileJava/compileTransaction/stash-dir/{FileMessageRepository.class.uniqueId3 => FileMessageRepository.class.uniqueId15} (80%) rename discodeit/build/tmp/compileJava/compileTransaction/stash-dir/{FileUserRepository.class.uniqueId0 => FileUserRepository.class.uniqueId3} (80%) create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JCFChannelRepository.class.uniqueId11 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JCFMessageRepository.class.uniqueId19 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JCFUserRepository.class.uniqueId9 rename discodeit/build/tmp/compileJava/compileTransaction/stash-dir/{JavaApplication.class.uniqueId4 => JavaApplication.class.uniqueId17} (100%) create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/Message.class.uniqueId8 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/MessageRepository.class.uniqueId0 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/MessageService.class.uniqueId6 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/User.class.uniqueId1 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/UserRepository.class.uniqueId2 create mode 100644 discodeit/build/tmp/compileJava/compileTransaction/stash-dir/UserService.class.uniqueId14 create mode 100644 discodeit/file-data-map/Channel/083d5d8b-0667-407c-bf5d-acd5a5e14070.ser create mode 100644 discodeit/file-data-map/Message/a0aa6aae-7325-4e88-bef4-a48c1b4640ba.ser create mode 100644 discodeit/file-data-map/User/19ac7f8c-c079-435e-a6f0-1d07bc5c5722.ser create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserCreateDto.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserProfileDto.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserResponseDto.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserUpdateDto.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/User/BinaryContentRepository.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/repository/User/UserStatusRepository.java diff --git a/discodeit/.gradle/8.8/executionHistory/executionHistory.bin b/discodeit/.gradle/8.8/executionHistory/executionHistory.bin index e64a726957d1085dbacb30733de98b8cc32f7ef5..c36bbf2552fbecb6937f08c6867fbf341a5f4f7d 100644 GIT binary patch delta 1981 zcmZXV3p7-D9LML5nI*3-8Y4|3M)Js`glNwxWP9i_jr3sEj+rSFGh-fVC4`hxp+A+v zn3^aOV^BgUMI?_^o6~!XQ<^-Ajo9p+YgFo$afa*4C8Pa^dQb6VR&fpUSW8k z6Ndv==XDZT^_5qjte^*2%!u94qWx0{)Ur)L6VpQO#$4xyC5;19pB!Mvi7eV@k-HDdO4t3RwbA0gEnTEf?|ZcF}j!)nGpYH?7Ak zV{tEw@9YGL=R+mRM7^JI@SGZAH5sJ}cstl3->JM>=VI{C=@92%KHK$h=)-0p$u`md znFi!PLcVrFV+lifT;X>rc6GU8?Lmq@lOG!~r}~`?yeu@CIjQm^K6NbLQ0A1eu)~q* z{YFcrnzmo=z1MHNH8B=(Qfw+du}0WO-NJ*-r3=D6d0Y{TD^hJ}+?p0}#f+DK-)!q; zuAk$1WVJ8F<~mbQU`maFJxF~I)}Jv5d_v3BRU6q@A%89wLHd@$EWzHpfGLhjtFm7* z6bH$Gsl;L8tpKDZg~p;YeMEFom{3&^Z?gp-Pcy<7UeoHv*2X#@y(0xRzi}X05(N)7 z$8n?;<4xY#mBOAHk^vZ?*?(2lGMS>7^1-9CtUie-aql>0IN0@2rKt471Sg;6vkZc2vBoDMnY4zOcbYEuXH-p`-9xCS-e89qsO(I=cf97(I z35Aj4shc#wZ}bSzTeLKKcXLFjh*uMHdfyGNB`-}~O4DPm-*mi3#vDLiI+Qxq`-~8} zP>6whPfT<8a*-BceBIL{p`O$;dPUEscI~+d#ek z7K<@ACt`VJy+~u|v~odLb)l4RZk*Iv>e1>Q#n9|C-_6~0P&4jhZ!;DadHfXBouKU7c#Sm0|&QVo3Ot&Qwxf(|(9i-$KfG@@BHbe0Ia_nqo zqolvEzP&J9?-7cebVOQeP3TRlZRPHDzS+2}`qc$J;2?L@1ZX3pFmx8sFA_kkoQOY( z*2|LH;WN>vHo3dz04mdfhtfb_v7t?n;MKn1_L%*)w_@Aed-hs)qQ`PPQstlNl7TmA z{poAT`SD&`oJK)Fi7gQ~w`BHOv44u9d+TQQTi2%@Xw_#xQbG<`wAh#W_P>RL3mApT z%x>u2G4oX4!t+Nf^h1!)k-%Pe;|KG*Yh3s* z6uTamA)&L0hIJi^%9Nt!!lo-0iJC}g?0D6NwO+cqe4iGo_%N1=%jJcN<{9 delta 34 ocmdnEjHT-X(*zM-1|Se+VDNBcV35w(sAwg@l)Q3tti;;+0GehAPyhe` diff --git a/discodeit/.gradle/8.8/executionHistory/executionHistory.lock b/discodeit/.gradle/8.8/executionHistory/executionHistory.lock index 779129ea5a1f3d63187daf8eee407dd58058a7d7..522957d1a737cf3a15438a2d62d23645f09f743b 100644 GIT binary patch literal 17 UcmZQxucUOkI05Y%yGXMYp diff --git a/discodeit/.gradle/8.8/fileHashes/fileHashes.bin b/discodeit/.gradle/8.8/fileHashes/fileHashes.bin index 5dc105577fb59da9d7c8904067001fc192c5efc9..9192afef62eb2779a885fc91b606f2d207ed519e 100644 GIT binary patch delta 2029 zcmZXV2~d+q6vq?DrBDe2m>3R8k%Z4EC0=+Uc#IT+hJ;HL9Yr0GK@cwvA);utphy=4 z1SwQRMr8~_5K*8?CF0QtqE;EPwuQ6obe~SO(JO-Y@>`L=P9s)x0u~?@54>=)Z}5(>5~e=c~Xbb z4$_VWi>_ND7paG+!lt08Nb#gK-b8~-aAZsj)vJ=q-u8b>f$z7`GA1M@SuHck$ zB^k*$3BDcY!vTX2AAi{Gep@aphhq-z+|?R#m77_Qhz7U_&A1j6xSP!!Uf2JOn-iR{ z&o|ld+a^P#xv15YrFyzhZ4YE`+MYXpM)*wm!mUrT^b@W!j@&<&RMDn^50W(sMxSQx z5Vo&w<$!tfRDb2|$s&3H6zdd74=IQpT$wp~#hx+MTLfBgLg+fX0);KnC$ONr=+_pr zOpa8I3tKyv=A#^Qppp(BW)M($6)SvVf6+vMl>9BDrppK z+^y_Ra!iXgS+P8fmOq(bb?Fn+H}P4TwCuLt_PUtFwUt?jaDqyr5>xPQeE?19D%l8D zY~XP-I7eR%sUKW6-(#Wa7kcL4a=5q$6u`yv9U@+fTz=os=&>lYoYRUHj}wcZ*mG_f zSnqgP(05(kbUnrtEe3#R8yxZY7XV#KOwIvkasogoIoS)INO?ddHOF-)@DB>R3(iv& zyZhch+G3aDAq|K_(N4j#p|OnMpmQ|O@0&5zbvuLYi{jSYQSWCV;s60qn9lk{=dG7l zn-zy_9TrvGUH-{vHX^n{C2=$vAk2G>?ZGE;k^3WlP0Tu6vv%1#K8!=0h>DDBA^{q2 z0bX}C81^RiR{=yao+94fjb#xMnb+Igcudo4>V>f15Vl0W9GZQ(wb##^(z@F>`iFKb zd4q^%M8MP5-SUFPzS54dc?06$>t`pnK4?P(-Z=OMOwWS`8ByC!&@XdzfkmP&G3K`6c4VBPB{{U%nAvhs-Q%r8&5qXN##^dyO7C%62S(&*S z$E-%KDM*a+8oqVDsL>juriv05pThj;)c9q&2XO*k5RHhqr%&8FAEUCVDX+@ejs@B) zq6FDw67eF0Wa=aCGtOlsYzxi1lO8$0b$0r91ToZe6cIq5a9U>fc-^l0=wq0**vYEa z8YjNo9fs4jgaU&z^5Xg{X9|TjTg(}cvY)com5+OQWV7R&vTR@C=C3qgQPrnA960a zG{_f4oivW3qTca@w;^sU4>;%$kCfu|n(BXUyy1k?x?L}#-tinH01ETQ*Mx%HyV+vb z`leE~qeWq=|K2i8i=clpCcL0^lRQZbe3R<8tv)wDuq)=X4Gc~+QX!dyF)0a|qr07! zUD#M&IC8~G7GH(g5rmto1pS3Ej_4A+L$XmX;qCGt@cTb%eG8xJ%T delta 1088 zcmZo(%XoY_;|3E6M(fF@5{8rOB;qH3l}MPJE9o)$tmKW!d!-B}vr2nRu9aRf*;Ynk zbFPdc`xolge&F?9x^QDfZt0L(DxtGy>@>bs!^?%YuE* zoAYwev~^uBwv*Sg$R+GSlOOs;urRr$yH2+Cmy!_D7rFgW!GA_U>AMFU z7vW9Afl57T@XX-E5sg;2>7u%uC%Tc@Id4108kvdad?xJamE z_~gs}dLZ*lCbI^B8HJP0A&k7qnGiw^J(}0rc5RY>3VtUkJ-OjUV3|yBVZ25d~S*fHER7V6v2fHPvj%!78vy1l{mgF#3 z26BbB-h}G#0;&WD&GgCHfi4Qur@m#a`>QF}TxhoWW87m?sH!rExy&q+&j+fpa9EaB zO#T@N_Fwg6?I5Z8tS+|2Hyr#6J{uad-n)Ez2}m1IRUZnc=VA~S%+xj`htx&*4D9jFrI0m1CaCxg^LVOl%+bC8}L ukWmLQjOhiYVIItv1%9OH_nWkS4BX`sy8&w0Mu?8INs}iAt50qVb_4*#|1lZ> diff --git a/discodeit/.gradle/8.8/fileHashes/fileHashes.lock b/discodeit/.gradle/8.8/fileHashes/fileHashes.lock index 1cd0a5d391fb522c8eb2aa24fdb6985752a8cfe4..e03c1a273a181038fe1768a533c3e049059b0de1 100644 GIT binary patch literal 17 VcmZR6l9g`z;MLpYE_}_jJ@;E-re$ZrwX>Ki^o}f_&+|oDD5bEezFJ}b>y4O7n10mG{2*b!giH6| znYTixK+%BakpEgivFnubSD#agT$2}Nycko3lg#_8{5nBFoYk2TD(Yd8p(GW3cfx9S zt&95_Hh!)vXF(`|sn}-Lt>V*h=k1%gHUY^Kx}daz7D}II2Fcu>>7$%+aFT~%wt+XM tihmDWR=M6@()cHOl?IRae-#E*3`0tj&tGs(H$AseDM}>s5_U|L3FdD$24XD^BWxr diff --git a/discodeit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discodeit/.gradle/buildOutputCleanup/buildOutputCleanup.lock index ee2594d973ecdd3273a22587957dda24a50bc280..36706b78e751cf246e2fbd0e6be7e65b1b0c9cc5 100644 GIT binary patch literal 17 UcmZS9nUpu1Uvq0M0|X=j04Kx)mH+?% literal 17 UcmZS9nUpu1Uvq0M0|Z0?04Kczj{pDw diff --git a/discodeit/.gradle/file-system.probe b/discodeit/.gradle/file-system.probe index 671aeadb3aa6f12c74f599525e3c86b81e84890e..b70d598abd732d9d507881f77ec77b7a932e5e4a 100644 GIT binary patch literal 8 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 literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/dto/UserProfileDto.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/dto/UserProfileDto.class new file mode 100644 index 0000000000000000000000000000000000000000..cb5edc8ad871c93a69f1dc064d218c488127db36 GIT binary patch literal 1795 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 literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class index c0e70968413246608812eca112b7876c6bbcf02a..0a6175f17029d0b18f6f184e6b42c085924b400b 100644 GIT binary patch literal 2059 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 literal 1849 zcmb7FTXWk)7(MGtl&DJL=2Fs6;=ij*2Y>TW+WP z0$%t5@GD>jmktj+_MyLtVK}>zQ%B>MW+wXf@}2!I=j{5`e}Df2U<==w$RKMVXCaRX zfx=_=iR-l8pylizK9*i2FmcNd{OGnowpePIn8cI;)4~~80yEmZANg(P;GlX(!0fs~ zGwj5Zxniky+MzOq8O$0eSU8J0fwC8NoZfNQ4VISX%LN#LxG82KIPRD)jR1}q^Pgii$)hv|%NRuue#g}1TH za#}LFdmMU4b?JoxgR$gY6BqH0flC%HSNZo4n{zZaM zo2s#nh47l*=FcZo8*iHWEJ; zM5Xk|Kt*6d_t_7fy6pOH+yBWuY?GrxPfr`NtH{)v5W51?J7G*lLp3W;?WsQ@usIqb zsW8oOdR}S>iVJOB?YLjD!oC=&FWIG{~ zw8RvqXi1u;nqmg>=}ClHH+ZJIounWj9+8N8`UILF6r2^B0;xFyO~3FA_H`iU@Xe4~Ytp)l%rNbCW<3}pW04@p65 PBQNNqG|}KUgKz%_Qq5uK diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/ReadStatus.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/ReadStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..851aaf10cb349ea32b69b6e2f8b9ca5a5494f103 GIT binary patch literal 1568 zcmb7D>rN9v6#k}HTDG(lC=^7wD7MRG@rD=BgkUsH>Lnoj-*zW3*qtT2Q;aX+vuI+Y z@rMuKLmAKPmRo7k_-D_YvuD2VJD2(M_t$R#&#{$74DmD)29iiI6prmv+iKbJ(0bQ6 z=1s+r+7eQz7Yy-A^&pEOWYWkQ7>2A(6ePS&U;M zjgo;$Ofigxq)NEls>wjvlB$SH?-RqsnWD=-Ls8QPW^jWc)AYHmxU)@n#v-0;xi<~m z(&|&~fcrH^*EDZnL5DKUBU?(|ilVm-+|i)fmK`Wv#yf}tZw~T8tlZRZ@Xm&HZZJMgfYw}bCf`n~L>Ctd$@`PBdw>-Du zeY9S4$$i}$Vm9dN&c#%;yMNKRjCR90bTiKez>uR~m&IlGytd!uuY_(-{$j1x^uA!8 zCKIDakwQ@~C!LCVCCJ9~xI&-C9$K1p7^mry9Rj1*Q>8qUyf0)EWKHu2nE4aw4svA1 zIw+gV9n6|59n6`l9W0vWca%F=`W9j>(|3WefHAs1P7iE?SW2|glf*Jb`pU#HjTMa@ zF<=#IN?gaiuG|_~ou1R;79*jT6pau9FiZ8_ zgkF2iUWzW9v*$u47BVGSm*GC8M-8!vPfJTuxw)@&h(Xty3WLKTq7fx@5g&B_J|xTV zh-$wMRPF^b1_EvL1zPF_$_)g1+_$vZUZDIypeKES=6Zn&1A(6QEp4$EXmlXZvv53{ F{{ZWQ4X^+J literal 0 HcmV?d00001 diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/User.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/entity/User.class index 3aacaf498fa6087ed39b4359e0bbb791e441467d..72349b3a4e884a7137063de1bf5d1863ee249089 100644 GIT binary patch literal 1941 zcma)6+j1L45Iv)dWl1YvWLt^tIEjn{mTY+m1VeC0Vw?*Ka^i|3KjdvKO*xZDyJmM4 zS9s(v;47dC0mTE4Jn$iW1x0aYR(2Gjlp@t?rh9r$pVQr|zyAIG4**|aFM}B3DI_c; zF(xqe+=xg=@c>+vakduOn4_$ExTT?-Vw<7 zj@$Iwk&$05)!q!)N@D_(DNI?IMqXgG;kE7H*jH|7w^a}*&$XK>Xn0MjLR-3_3SZgv zK>7kP)g-+^ybNYBmqNk9Ih+@mHt9mumUh(*LdPZlxa*w=%$;)SKQwd}EG*)JK)T^e zCzQ=?-kFK={4e&Rg-f_BFy0|2*J(?Ed=zR*wjWZ-kwIOy@ScuL%C@6gTJ{wS@0+{F zP7s`Uelvqrlu{^LSi|}orH^n}dihPqX$6{nUzVsbTcxKOb;E*f*msVb5&IOb3e1{9 zD9_%PzH(aXTj#JvvQwl@^FaE#)TU$Nfk1A@i>h_tv^p}$$t>Ln#j8872TPm1RC>;`+B{=9 zdpe{2!^B}@&?$LtUz5-5dmXoNMQjV;bZQvv7s@1!iO)O z*>mX4%JDHP2ivS1TeEUlxsLO05})$kXSBZKn&7%z{uQG98&X~5xXg4hUta5Csl47r zv0Uk5Bap!Fq!0@y*2ApD3)Af5y@;_}~X*4aLM}Vx8`Fx{E!x zCQWyR?h4&2J-3!Y_gvz8WFnCjttxI*Z6e40C0duMs7OW2)U<*Uu3&?tuJYx+P3tbT zeT52k>3zbEXtmcOf@f;$xJ4A9N%KymwvKJ?;`~0wm)K!_?(jT~#6MUNg+lhU47cdL z&1ajBU^a{Lb*F4v8Zk*hxgWWSnlWaaIYYyW0(vy=F-D)>=PF3~{1Bk|L7<6|K-Hl@ sl|i7%kw6dd^$M8%ejEH_iW zfM0;GfEipmJn+Z^-@+#_4C@@piQ_RdXhz!SZ0&XSWi9E?e}4NNz{mJ1fe^wmL^MP( zA&`1uyfpNdVIS$chcC>ACopl>vMukPKsb}FCoqY43<(WW&;+Jcc+az1dabtgKp^27 zcGGG5o4HK3az3CO$24YQNNJeGoIs}GwDoSswQNssTiveZ*m~3IHk_tudAezPmiJ1p zbxl_wWHnjd=y?e&U@?ZYhPQA*U{pSDH#bQ$|o7=kSN*a|K#I`_k!||D@%SlD4I(Z3!_2CRb zcSAY<)03?WL^h}pftiYBn~!_#L(_fc7cp0H8mz%!B`hj%M!aK-E#)fzS8Z%EwPSk6 zPIJ$2$%MzAIBp7Li@MNgH_pgBRrwj6eoSpJc7Z8Eq>O!97Y14!CYHoY0ZK;w_`QHi zlHwCcw{4!B9W%+@AfC&!_!+}~rKTNJARzWhMAb7I-|QHjU@D2K({mfg;PVP=0W(K1&mYeME+CD| z{N%53wTz2+z_&U7Y;58ocg!L`C+3$cSyf1_WL;r=&UG@(0Pq#~?NE_;1dUHws7@<^ z(cCXc{=`KHvWf}iyriW5E^djLEz_3eJoL zKOPItkAe$h!MkI@#ZmChvEaQ^S^Pyp{p)W4-{4^d1r#lmY?Lu3 zF#XcqbDh2$Ja@LbFJ(^)jNMj&(su-kE2}#djAOz=#l{KP0+Z?SM615Dz1`jrs6=ky zg?{GLR#rQQ4>Tt*i75-yHfB&0SnGwp6YoYU(2lR-ScQS(skj$vrFbb*rbK1_feTMVSZ(SOF8fR-VRgcRc)^B2$a^@EP<(x3gq{R-<8o*x7+7V ztrPa#{*D_dF(wd%g?25bIQ*AkZ}Hd*$(zpte8S82ttk_8)UdU{m}1* zubc-mkZhausL|%t^@I5_?)HA$S#9H{6T@=RKCHX)But{7ysu2{rVeI)&CCbRbCe3E zGpL!DL#t-ym21JwSL$;nQ=fy#bsU1HZ!rEDy&ugp=X$a6Cq&~NtO2TAW(QboTp3`g zadm)tqwzZy2e|NC3iCO?=V0+WixMB$3CxjTo=@x)2^O%7Mcibxo&n<)zMw}6^EgOu zEF-0WFKJH{xD9TAp|9|DuB*+}Y1V;{>c>kEE8FRO*MvZKD+RquZkvFM9NYY zbPU67{4KUv#SbB0frLnVHIn5nL z%P1_|72N)oTC%b_^bB~J;MHGg6ozo@A)IoKbC+ifON*<(cP!(FK#QY5)nkFyj|93f h3N(2v(8iIeEsX+A9}9HvNJaHgpqXQV?x$6K@Eg+_GWmo(UTEi; z`)PV13v^kehsyyC4z+Z|KF6GC-isq~#woAzcTV`=JP#^?@gp4iYP+D$K#h^k6E+yy zsh1TVDDr53y|>C(mQqr;!xPIq>t>RtRo|>!DPAkata7V|W13uYBagYWU$r08wg+_GWmo(UTEi; z`)PV13v^kehsyyC4z+Z|KF6GC-isq~#woAzcTV`=JP#^?@gp4iYP+D$K#h^k6E+yy zsh1TVDDr53y|>C(mQqr;!xPIq>t>RtRo|>!DPAkata7V|W13uYBagYWU$r08w)^^Q9Nuu;%Vmi+-C* zg)<%qQYFe08EPujl{9Gb$XJ|-pS1Xr-YVVEKE{g1?Gd7{u>n`SX|Sj3FrP@eV?%A9X?J~$2G~JtS37n#f$zO>HBAf(jKpNmH0J%d++-H*X|@l delta 229 zcmWNL%Su9F6otP(P%5y2qQ?V@SWsH2pm|Lrki1kHl%sUu<=9LILOJ#k;s>9iLF6m+ zC_PAPve)|dX0z6|uq}M2f+lIx!N1HY2c&RFljMRkF3D-$Ngt&XvUu`yGAzmMYN1b4 zykd_c`;-V#;h3t9*P=Q%lo?1z(v|34eocc7w?E-?ocrse;4XuI#ubelL6w_DIlI!=9RVwdt$xlU+oAP21*O?;pW7 BBoP1r diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicChannelService.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicChannelService.class index a17b2caffa15a43d845e4efe942beefc13cef88a..cad723662354fb2f5c53918f3da5a54d65095e26 100644 GIT binary patch delta 1470 zcmb7ET~k|C6kX@uo7{MFfIuh&fl#C=NiGnnpfnV$)vB%7DplI3Z4GUxd?knhtY4{G ztJS{HzWD?E1CHw?SBQ=;KAfC=?%8|owb$M!Uv}K- z2>tr!=1%}daKnZn;NG;|CI86htlRY=k80(I9Z} zrroYS6;}hbXq4E4CKWe^{1J&3+^wdJbg&KWHlh+8*sH!WGW5Ggq6_PldeEy@%$P{2&&*h`9|vsQCozCQ^_zLz|A5304ytzRsO-bArg=zUPh4%= z;oyWOH!ATU4yzkh*FFbF@UV?XwAWFA&`fqYo0`k!FQraS&g3o>1fx1mHZBN zi?x9o1K;q@z!Us+xPy(BXu=q+fl3^n#0j2=fRlKN*eKC_8sla62u{&586@!xo`r=8 zy4INV1)acaFy=JQczjNA*Lj*X2X_Nu1MVi8fi<*lLG040B`VO05ZXwnwM?n099nAL z;na)_o+G|a>JvQZWSl`S*#J)@3`Zy1K&PlG*I&NrEaS?Gmk0YiBMiL2Z*iRUkgk)B zmeD0rX_t5GZ{BIE#p>x@!~Xx2wt>0;`&mmjwTtt~B&sBKcgk_Sa+n9_JcV7HFDo2D z*i*RVNvx|q$90}d;6)tvxGs{bmN?-_oHXzW8gHX71>u~ zphC0{HAo?feo{S9C48bnw4|{;rrC0+i2kz!K1>o&kKZVnXf9529S}yWv6S7-lZr<$7IWvZ}=0VXCC+u4;CDxd08s zH~Ig7&VnPUUr1$aJS4XGC4Mt7jT!Db<1F_%t~L^!=PF_ump$usT5r+kDz4E(|69I~ J>-Y#Qe*rJG%y<9* delta 1424 zcma)*&2tn*7{-4+GdsJ?&Mun|l8t6}gAvW{BnC_n$YMk#lmdbw7!6S&e1$|@F-AoE zSP)RLJh=AFg9pp19F;K?mu{Z_SA`ag}Za6GBZD{uzP9?U$}A7 zia_6pP(`A4xhWYTU*w4H|LY5 zpm$kA$&K6-r`zXVHtB2Dgyh}t(?e1JZgnSfhM?D{j|X(Cy;U|h`)uJsJ!)@q1{GcU zlSEg_;~}=i+3vH0A-!Plb$9ww+_3)39w`m5%Lsf_v7u-GYI$Sxb2F9ca&g>d75#CtU%jutPnMhy6?uIpnb!$FUA0i`kR&p*xRUD8wreuM@ALMCCGw>CvF=2!3 zZBi3KZ{H&8hn&(k#5RQwSkRHhvxu0dHT;TLm-Y>E3+L%FVOLU)Mkhp`voJ}>_*UXXu%ycj`U zmm-ag!5Z16e`OCj9ZqlGt@`#_XAOU|7=sAQh_oyv3Iq)n2P^diQ9Z)L(a7R}W1+=a zX@E5rn`)2BI3`0e#YiM|PNW)#i*>10`Yk@A^)>?&!FOz3rVNWbawn?fF$>dicGz)s zp_}C$ZxP!EMDk#R@x>LP#YpJ!@TAH&+(5=NZ$uQC_A6soLvNc5eW`(d^`h$+QEa$~ zrVt%Lk_Who^#6eJ{{h-JDLNcZ%hzI>Gcp^-8JTBgbV}tf$(UoFH=^iGiQbl+_qZw< Mo11NX;G;nHf@JCrI}!wRs=P8 zMe$O@!5iv>zd%`7YRg*U15ZBl=31`htNsI*i{(C(7}_@<&g^|=@7ep?-`;!vYP!~3 z_v^jQp8*WuTMraCG^iX-xEKb-AI@;`bc;4KpRz1-u~_U92V4PP72NP>&^fBW8G6Vq zLI%IM%UYRN{LNaceDG@sa6EvZFq9*%5JwFj6z7$L?bWE`sK+h_SAW_{=LZ>fMurzs zE2-pS%9=|~Fk;0 zA=5H*1aG!a7@ps~7j(Ra*EPH$yHXG#{SJFm{H8aux5YntqxW4M@8Ob$_c=bm)g)p;skWqgLI(!wP<&zz#f5&pI1I9jd7-4G1Gf z&wlK|VKm_dvUij~;3Qt88^OUTyhK2yHiZ;{mD)6E4*G^;2D8+AlisRO8p1eDTD1eG z3M8lKOw(bQ!+g2S36e5KjYJpQKnG3hCc1%}=>G++5~yMW^-=<$4L(E=A}PUzN}pE1 z)gVnkn4Q$g=pu8`u##Ira@s*x30;@THt+`^<^j+gN4yDupH4O`HYr<9Vrh+p?WfAPsY=gxsh}aE4WVHrCBIJ z>!n%fqbV35q6fFo9IZf$mZ8ZmJHQ&Y^IeZDy_F=LBqXxfps|j^m=RlpVZ_(KjKmtk zGVNC8{aaWFR#FA+U6DNt+S?*a3(6lNr6`Y9oM>^<*-hsxnPnqi27J2QMA9XaJ`@Nj zDSo*?#ug&(4_Ijc+P4gV->y?eqHV84`k#R!+XJ1T!IV3(Oiu+Xc!i|Qc#h<&bRty4 ldAeV;pKswED)2*mj8Dtj71E^rGkihbI%!|h|KJfaqWFVsJ{7d&R%=3wb%OAx4wP3{kOJ} zU;keH0l>rf%7zBrg2CZ}$q<;yoy}!W=4Ov&_e{;?kCqtBp~7sTG|ZsK6Hj~KhR1@< z;RR+2#cUL=B-D>LIX!5nnYPoi97D#(x071 zGeb;V|3k>0SV)Vb$ z8>}<&flXuikYgUF1Nc~6;7R|IJoZt}bE48={*?j)@St>NSfSTeN?E16z~FPT|J@G6~a zn52I_-H?9+5qQu5KgnVpns9(llg@oSi-SO!4#KK1QF?39igsWHT|bgHn5iIH^JbJcL-nQmCb}n6 z>C6i5A22A?YBVZ%P{VhWSXb>d!6Z8hA2!gxmGs$$A)4I|Y*a1vI3S#sBpe(;j(|#Q z3P)8(ZJWnJXBY)X|7HzrP<`FuXqHmf$hT|wy+uTp9WF;cer7GC0A+<`c z8#l1^Cv;1o4)1;{0D>1ln%GY%aP`jB8n_5%2nbU(U1df)S&W_l#mNcx&`v_PWw8pL zV2TJQzo|T%R9@~xRr8*p8ycyD(c?K)&2)}dsg8kcZH84w*YZM(&^g7btIobZ$)>&mM@bK zO-TI@N;d@srEHUH%HJESLwnyE+Jh=PC=)$(#(w}A7WgFq diff --git a/discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class b/discodeit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class index cdfcf972341cd141db1cfee44a8edbeccfb17b53..7f1908fe819186797cb17df931e5d51d98b4c862 100644 GIT binary patch delta 1486 zcmb7ETT@$A6#n+Px8_z?uI&z-6IwAPubK(@g^?KPIlk)E%FFIyZ>_vio?CJ! zJ+D$L)yfrbMWAD9sj@s*xsX5PdTy09%@^er>$lLd4G$Fy7ahES>a|LnA<|S3O{J&q z)K%Obz?zLVTyk&@ZWu4g&$eZHUr|S|I+%ycfY)u*@rH#rRW~lnKeqiO-j<)+gT}i8 zN%?zQO#W$y#ryIfJ71qy-Tj_}u}1){|0#AEbE8+n+*QSOL<$1zQ8ir`!Eu~`fhTy} zt}_;l0%o`bp2Sm4Jtt^YW=v_wZs0Br*-gZN>*)Cb;+C8cQGp!@qX%8IN>W!NbxTqV zPow?}@fE2lxKm_&gH5tg?v!9#k!@g?Xel?~-|X~pokmm>ca|9%p5<8z&oz-gVr2oI z=Wdgor0lw{yI{u6!Cc(9jsd^9<{i!LU_Ov!H3Mwg9_%8vs%X4{x>Zq*HK>BfgpzLjfsR>2<)xC*#6_*8g!72oMR$W>NpF8ZS~=>YQ<4h3TPv$ z#7s+xw;or6YM^EK5x)Qh#EC(LQKKj- zOPm!h{R>o-+V&iOoa0K*(S+#Ne&o)OlF5a7OX1?#<``wxM*78^L2Y&c# z{c8Y+aovLf(}g8r!x2c#RWDWt=BxGDfm7$_W~Lef&Y@bp))*Bq{TtVAIxgA;d?g&e z-9sD+U6>R&=-;UBRzEta zeYR2vT6j?6AskgPt5=O%!$!sb$jP&fjLCiVr*%pFVyDz~tFGql*;{|u(?V^yzqViS zFppPU)Fl?McrWXIU>hiu9SJiJ`zjaN}ts~wZ9>@m*d4~BW4H{cmxUjN_oy0I8aEwm}+8}w_ zF~&9?;rgSTJBT>fbkBC;XwX~CW*Tf^O=rClf3*%jc* zFe}16#|i__aIK7IHIn*HrkbJ9;y*%1?2O%C&RDlm3f#2+0jAQQJ#A5$$my z^7tMDAER>vgOjDNFtm;lU=^d^M7u`}=qqOiS1y!2z;Aso{|kc@zb|yY86s}#E=0Pk zL8-{MoI%3V9}N}h`&S{bK7ypCFSgKcopg8-e#=QD18@+CA7lvB{QpR~|02=C8HzCQ p5@tDS#+NzP_+%+?j?b%D#>FVQ%;*Yp-od-f@EE=4;C+0E%-@k2#l`>t diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicChannelService.class.uniqueId1 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicChannelService.class.uniqueId7 similarity index 73% rename from discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicChannelService.class.uniqueId1 rename to discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicChannelService.class.uniqueId7 index d55fa414f62418ffea92ad55191d28adb1a29a73..a17b2caffa15a43d845e4efe942beefc13cef88a 100644 GIT binary patch delta 424 zcmXX?J1+!b6g{6^c4u~m^@vwk;*so93?Wg7f=Xg3NVcFF_S-f4m~YH{*8Ba|ex*jI zlV~MWDz%u1kOYd3**if$InTK6=nLzwSz>%rj2lESLDC z>k4U0N4Nn)GA;bP6?nem=5xMX<{QE11rcJdf*G&HKuShl(a23pmeaiw)4js%*~sXmMh>s4cB!A#ODg;orp3xn$3yfKGhVwiFx zNMclFYI7{5o@%F;5}2Vk8eoL=Si}->7&*c!8~tg|=UPZ(>6L delta 334 zcmXYsy-UMT6vfZe*fy^(wgoLpLrR6(M#P}2xHt)Fy9w$Po3u67rna$u*YB_S=_Jl> zg19+|gOjuVDX!ub9PYWldpMWNeMo;A{Nv~46~Gj(p7>*AC_e4`K`Ut5jd?ey`c5kr zg2%CjS{UmBb@TNe0;zWrzI z2$bMZV2@)T2VrysojsH{{GA=k#i*s6F=XW%&xXRdU@!;``4ugwF(`;bMM91Wr>7qR zNqH--)fBlpl1Ry%w!kv7qj}mec{vOqk2FmAt=(y3&|ty9IC&HDzPHSBQi;tJbY~O(6Bh1CT-oZj7>W<;Fk4rT>HBLRg&d`_6YBIXSE4e`V|U|L<$SBp<(6pK@XGTsKnT zLNF7i;p}`c6-83{DwI(wsMKZB^3pg7qgFHV7lK8Z%z3E_l0d4ZIPlH~NiS>!69RWy zN|ma_kIw|^lDwD}`dG5K!qqI-Y(}`Q|Kxs&n|j3>7Ps{`YuLGKagY019@sqO(bvCL zMvOiY?5>Q~+kVgY=KZMUotDsZ!>oxwyt* z?KnDD#bt~^s`|4tBaUiOXy%U@Z`^D-&VEj4RanlSGV`a+{1g?Ywc|F$xbC{O))*Je zw{3*M0opVSXGjfhL(w(dXKFpeizX`U;IheYY~n5Mu${*|<@uI+Y1Bqt^Tu>rM!jW~ H4;0q{Y!Gb^ delta 355 zcmXYtJ1>KA6vm%FrG5YYeft)zONyqgqDB#CU5YA>OU*uk z*l1WxzJhPSWEXLW<$0c*-+9h(K719QeEoiS0uaN^oxIh2#!xDi&*ifd>EY@8Olm6U zsK|*cUY_JG%Kw;J1cqn1RkwO+3 z10{h#kVZ7WlTVg^$*Dpb85_>2tis}wo|P%C>0K3_&9J})4Q}XYK@(c3V6VD7u%iQ= z=t2*?h{BIJ0+i563&DWN+adbYM@5+8j-B-?#H-4fFK4bVI)O_ zsz!X=#29}-L9jY8i%Ircs;%&+40#~S@ F?FV5fN6i2L diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicUserService.class.uniqueId6 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicUserService.class.uniqueId10 similarity index 72% rename from discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicUserService.class.uniqueId6 rename to discodeit/build/tmp/compileJava/compileTransaction/stash-dir/BasicUserService.class.uniqueId10 index 52fe2d7c35f9b486f9fce7e32cf7f42da70feea6..cdfcf972341cd141db1cfee44a8edbeccfb17b53 100644 GIT binary patch delta 405 zcmXYtJ5K^Z6ottdnX$#3nw4Sm1fdnqg)1Dhy3Ry_ zXWgz&lqkxmcwy_{s1n4AX3aFprkyt|yT(h*NSboV_emT%qYd>43LkcLWRVGBk6QMb}bD$%QjGB%pj&b6}sg4Dl$p`I?G~_m&CRg%~PI_(#qH^08l^=9N3&DeK zXy}m%f3~9!I{M|kzo~^0LIiyX%PBoYVzQx^1LG=-V*nEv!KD1s9|HygNFa(?mCwmm zAV=bIAh<>%(hT;ldcf2l+mJ(Ec_#=8$}OcZ+EG;6fs5Kd?JGJ|opW5M232&4YusY+ E7sD@LU;qFB delta 329 zcmXYsJ5K^p5QWcG6!vl#)&yUGL`gs}Dq5=zl`$GRqm^0SBC-f8_D`V^| ztZejG5PyKRg;B@EV$S*IXgU6J>=>R30stL&U2BzF2&*WH!u1*{l>2sdOoqv1hnmlW?J~kVVG8Hr;4r!RBAI zqmV|13wsj#IB?=nVHQX9uDys8x|QROGl2-TUH$YS4RJv~($YL|zzYoqHQm`R9~642 z?Y`FhFc3f={8UrRVwhf4S&wiQ#Q;Vzf*2+BJADE=CK19EVwk2+JujlP=9y0gu)sen q2-Y5~V3oZSIo1y3QD6`9UgWW`1^b^GOuKw@j8kq%rWVd|iNRmT_(bmj diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId5 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/Channel.class.uniqueId5 new file mode 100644 index 0000000000000000000000000000000000000000..c0e70968413246608812eca112b7876c6bbcf02a GIT binary patch literal 2061 zcmb7_T~ixX9LArM7Z$<-DUe!QX|bQjW zn9jcKKWcl{LCv;2m(G~-dIFbmMZ^0#KETzZlvRbQp1UugJvW;@d+U3Fxy*W)@bPDr z@P|4+!p8y=R>wAdyYY}Ag=w5N%;?A>ClK=w+qS^<>KV$jO^NbW(6NMT+{86o++;SW zmvU6|S?PUc^@)z_(rU6{cdd@o_E~z_oE056RII&rBZxJDTliGNZ5?-T_Y@()b|l39 zv1c~Bvcdz-0)C3wT@CjH=2cr9iQ$80)3nR`t}m+Y$7y4{hzR|tu9fvJiY^sX*z z8z-vrPY68CoVg|gA%*$>cO_eAy(*+mV5aK0_GYiOXLq)P7-y@VWj5<3<7Uj^V$45q znDNqC!YMM}4ckBP8c)m)o8vQUfjFUCBWpUx$_XIHhvx*5z-H&DF+`6N*>`~zvVB%q z0{y0w;9ttR2>d;5)iv=e$6+n zA2!T(Sn5R0>vb&qu_J-e!`tAR<#NBcEI9 z!}wk8w94mY#sd0|(fcIkZ~-YS;5@GKeoFK05x?ewz3~{I^Nn8Qxu<_QlTk&~OvV+( z7o1N;X#jo#Pc07u)}Zq#12s5GVLbN-rhelj0vW}aTD+vZNmCkx-UQb1C0B;Ui^Jk8 zBgNH`;^krS;z;oZHb;0)4~x?y#annXLYyBK=SPaa8Ywo0#l}eS*QkY9ybiG_M@#v? zkjk^@`Ior)D-x22e5_R9YJsapxJp2bSZU!GBnRnPmbgS!qjE@azQX-)5Sp6=T9FcLf%FLk#JVVBbv1E9xHvcRwjaPnNwsy3Vni}6o-%H|KVZ}gt zX&plt%`7skKPwYoOd2u6VYNB6IPyyKPN#82ofbrE=xJb~YYc%Rb-t~-M);AX0XqN6 zJYC86IW-DXb9Jp5O4aXPn#y?!*O$oETNLCA6?3x@l8jBF&Y zm8NY}mj3@ZU1N@cVU6wy$kI7vks}S%j_Lg062#&G45@ za~;+eNxVio3jI4zdlR&%4TGGe$7oZOVNmkX2rVN^T~qQ&DxbkcW3DB(GT?(jx6@kp z-GZ3g)g?AJA#Dc%gIc4xMBJ0clEgw^4wYwPO={XJfYY@aJ|{jWj{Nis#7Y#Yw2F{SVhJ|CuJR1ZX{rKSl&TUW1KR|tL48q85ZIx$n?mfgc5Ph2_b(#j+rcfv!2X1K&tg1@AgjRwePUb@dg#)LxvvsG~yU}_L{4GvY z9QXnJD8#H=R3Ci7l4o}3?Y!B2Gr#}*`~~0yj|b>rEkbvQ9@Yi6FVq($b7eC5Ho4HL z7g&ErhWx3(+W24*p)YWl+Cr8qN5;#7%95;+ODa>l)a2#Mf2-%KRZgk$3=c5CW`yAo zw{TlvVqJDckexYI=&#m&mWj1q&I4=K$mFuFG6KmszPZ{gS7kZ<)QHS|$eSL-ZOo}P zUVrm)X3ZI8l~YNs8znd#;Hf}&#!nE~ipl6VRgq}-A)FN$#Wq#>LOBZi>tNTPQz>v1 z|F;~WRH2BUwKr~i#e#9=GA7?`fw@bswLiDZcPfbIwc~?>xvgBPUs1U3ep?To2K^X& zUl~t@UQkIv2V<W38XQZqp0ySVPAto*?3J3SS2z3>4cf-bwa? zeQ)vu;(HBmvkfpfWrywX>HtRA<=qDE;4YJdPgaD@21g%z ZxX1DP{P$R4b{*{3_5mKU4`m+#e*tk^%@_ax literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileChannelRepository.class.uniqueId5 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileChannelRepository.class.uniqueId18 similarity index 80% rename from discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileChannelRepository.class.uniqueId5 rename to discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileChannelRepository.class.uniqueId18 index dc263faed8df825a15e09d9cf01c74f9eb1d7155..447849628a29d7f81d707977228dee02e306b1e6 100644 GIT binary patch delta 601 zcmW-e$xjqP6vltWEJ$a7VH+5hC?GB%Od_I21cMRW1`w`o351d-axD-Fc_ixW9JmHZY(fi^h8SrDSH- z_N^Ix+VZT4X+31yj&J&wV|$9OwBzPdUf#9r+y&R1(esWwmGXS;YR6y5>r_VP9nbO| zccEVqKj=8V=euTpRQng5tXCQ3nZa{jl=3ph5nd@aPnvUPYTC4ODa)R7rgSh^vDo-p z5m7y!b|vDi!8_iU@*&1YJ{8I;!%BS#D&kF5-wX`C$9Tx2cyav-mP2j9c-)BoDSG|} z)A5FgQi_gXsInteszSkH{6T9iVXDPn$5s;b(ZCQ*93sgujf~L}T&tQ?n}V|HmF^D8 zL{-l=TIm$lMT#w=>mn^^(oI&lW(PJsg~pnzs;`$4cCkSou3-;t>=n^IcGJ(GoTmiG z1ziT16+X{?E_0x;RNJYN!;~{3*$&gp3CTDt;ThUF8MG&|kuyX&8(c}u)twV&N(Wid zPf)>miP44n`lM<(D&{dU(`;l^3Qn_K27O$3nz3NC;jSLxy8L!Rs)QIfxG7j<_oN9W vqj@Y=2}>*sM&;&-;8WSngjf-Kl{dmZ^OYa}*-w76#=0mBWY(%gg-QMcmuiT6 delta 487 zcmXYuOHWf#6otRjQYtr>+wy43)lvf}!UZ&fHEM&2DabPdsR@Q)w9q>t&_OFY_9vJ# zaLm{^Fr7It4j4IdcIACy9F*#m zRcS37tgz~5&7_-kJ#Eb%-BkG0>Aaf@6!XsDJsa%|Ai-bl3KK2X@ zzL?Cj5Ij8J^`f`d85o;z$L}P>{qwN@%j7k4LFN=@Pd4l3l9TCt-p%_t&@Y3I3?!y! zteB3LJ*p|Eh@hA%I7KCK!d$_og9x2eagAeoqijOObgF!%rH&F#N~fM08bsg78BU0< zk$%B6O=N_-IAm!qWGWu0_*p!(a)dTn5T};&v~WT0i(KX$*9Aufb0nA+eveDsr@i2W z9Azgd{huSsfNV^PeULha^i(+G8>W~W`c?RD=%%n+@`5qZ-^P+05ylJYh^?x-r0kZm zm*ezF;9iM$Ral<{?$-~iW>tqCwW||e-pDU`c*~+-6fa9CHrNuj!!BR{v2Xm~H-AK7 LNOxbMJlKB$OD$=W diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileMessageRepository.class.uniqueId3 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileMessageRepository.class.uniqueId15 similarity index 80% rename from discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileMessageRepository.class.uniqueId3 rename to discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileMessageRepository.class.uniqueId15 index 8d1976e30dfa5e57b4ada446c6934f7cff58efae..a60fa2819f36dcdf3324320ecf4f386e0242d814 100644 GIT binary patch delta 601 zcmW-e$xjqP6vltWEJ$a7VH+5hC?GB%Od_I21cMRW1`w`o351d-axD-Fc_ixW9JmHZY(fi^h8SrDSH- z_N^Ix+VZT4X+31yj&J&wV|$9OwBzPdUf#9r+y&R1(esWwmGXS;YR6y5>r_VP9nbO| zccEVqKj=8V=euTpRQng5tXCQ3nZa{jl=3ph5nd@aPnvUPYTC4ODa)R7rgSh^vDo-p z5m7y!b|vDi!8_iU@*&1YJ{8I;!%BS#D&kF5-wX`C$9Tx2cyav-mP2j9c-)BoDSG|} z)A5FgQi_gXsInteszSkH{6T9iVXDPn$5s;b(ZCQ*93sgujf~L}T&tQ?n}V|HmF^D8 zL{-l=TIm$lMT#w=>mn^^(oI&lW(PJsg~pnzs;`$4cCkSou3-;t>=n^IcGJ(GoTmiG z1ziT16+X{?E_0x;RNJYN!;~{3*$&gp3CTDt;ThUF8MG&|kuyX&8(c}u)twV&N(Wid zPf)>miP44n`lM<(D&{dU(`;l^3Qn_K27O$3nz3NC;jSLxy8L!Rs)QIfxG7j<_oN9W vqj@Y=2}>*sM&;&-;8WSngjf-Kl{dmZ^OYa}*-w76#=0mBWY(%gg-QMcmuiT6 delta 487 zcmXYuOHWf#6otRjQYtr>+wy43)lvf}!UZ&fHEM&2DabPdsR@Q)w9q>t&_OFY_9vJ# zaLm{^Fr7It4j4IdcIACy9F*#m zRcS37tgz~5&7_-kJ#Eb%-BkG0>Aaf@6!XsDJsa%|Ai-bl3KK2X@ zzL?Cj5Ij8J^`f`d85o;z$L}P>{qwN@%j7k4LFN=@Pd4l3l9TCt-p%_t&@Y3I3?!y! zteB3LJ*p|Eh@hA%I7KCK!d$_og9x2eagAeoqijOObgF!%rH&F#N~fM08bsg78BU0< zk$%B6O=N_-IAm!qWGWu0_*p!(a)dTn5T};&v~WT0i(KX$*9Aufb0nA+eveDsr@i2W z9Azgd{huSsfNV^PeULha^i(+G8>W~W`c?RD=%%n+@`5qZ-^P+05ylJYh^?x-r0kZm zm*ezF;9iM$Ral<{?$-~iW>tqCwW||e-pDU`c*~+-6fa9CHrNuj!!BR{v2Xm~H-AK7 LNOxbMJlKB$OD$=W diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileUserRepository.class.uniqueId0 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileUserRepository.class.uniqueId3 similarity index 80% rename from discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileUserRepository.class.uniqueId0 rename to discodeit/build/tmp/compileJava/compileTransaction/stash-dir/FileUserRepository.class.uniqueId3 index d56df36d46ce5804dbbd3c93e0140251ea893156..94b4ff7fd446b5f688f017d5521ae85f822f03cd 100644 GIT binary patch delta 610 zcmXX^TTc@~6#h=>MK`5g)V35sQyYZ}?ItQ-QZb@JK?|5ld_W)E(xGlGyUor5;nAO9 zHt{!@_+*;+;DhmjC*OS%MFkZvDBi^jdN3w4^L^i$Z|0mcnS1-L?^o`x-?Ec`5yw5b4NQ^l4qI>SkFRDOSX|lTD3aImHf34 z{T;+Z%&V9u1P4u1*e9#HltKoG2)o_0;h38Vhx`F*Anf=r1MUs=W+DPFw(<>8v?GRY z#LL`xk5JnjV_ z!6R<6d5&`Ka&ueGiv|7^9z4NQMn4G87#DfAq5(^+U*j#aPxylG|JWLSVjX|jp@5&5 IJmf|EFZH02iU0rr delta 498 zcmXYu$xqWk9K}D=(pG;d^e1!`)BqMO0tT?C7)Y?7gyNQ%sEJ0aZDLHc+EzV#_d+J| zukfOciFzO&hzH}vgGYDV_kBa~)tF4?y*KYozHc%Y`fv0(x8|=;14G7p$+=tK=58() zE9FWlcXC^yaw{xe@=bn)%zFcjG=53`v^{CA|S->>c-ZYa?~I z@|##im^4vFNH9u_G2(2e*-kGxW|rGj<7{_3i%H7qpq16ir&!BMY4NiRa*m Kzl1Mh(ZuW1E>h7<1b6Hz%rM+%-x15|5JZx zXWH7dGmby|M|Jw_-N{`bWQJevZug%3e4l+@c0d33&qn|c@Fs^0vKIO{`Z2&z*cLm& zc7(fWFRgFOnr0Z7RIbuf4B6uNs)b_=!=X`2E608+f~^J7%)vr-5P5J5LmbC(g5gok zYuG{4SFW}jDhQP4+I1Dwyt-7{_GQxxl=l2xd%Lz_Kda1DwuI|S=hfa1hQ7Mcg5g9p z5hSs44#OC+aFSybrx;2-g`}&M-nC;oL;t4K^L2)i;&=+XvNAtg&f^TuS~$n?70xpZ zb*R$*n=J~*y<)U16{GUOnV6k6GW4%GF5(iQ$O(qAE~qXGbGU-57Ortz#|?5kacilm zDXPL@$ax!!Eyoe-j$|kv&JC0HWm&l4n;b=qQ<`^#(~<$h*^ailb|~6h^D=&3Mf{c=`wSn z_djvm!+nN)&2zO-Ztz_0GMwrbfOjSVWsXUcfB|1Nyd7zQ>iT}q`biaPmkJ$RR-3NS zEuX@^n5ri#)5+8@EU#)$oz6NfPnD_sE7U8d{FN&gTa9(;zm5_-QuS)WSrxuA<9M=9 zZz)ROOmCUgb`I-1qa27GQhs0T4cq7Q_>rs`tXkCa47ZQCvalfamRElve9@3v`n2z3 z8_KQE?3&j8(pO=zhoMim`d;-jWE5E!_UDOVC9a>|fXO2{Z4zo3AEzDa*XfStFy(x7 zT2B5#>w;*{Cl9*(j*f-8bSOTDnyiw^ve)u!a!#3(<6O6M_>SpLI)n0bRWQ0Us2R-( zPw$6xhh*>w1N2ST2R)~0W(HaM0tyo!z$X5M_4We>|3vQh(0YcR$H@Z3>jNjw5Gpj{ z(HhL+F^w4J@PycgH&50XdJj+hfn4b?6iRKJ&SI_f8%<_N4luVE84zqFgq@DZ5zPE~ zN*IP`WYy1TU=*ICN@Sz(n9LJ}HZElF3B!Nma-v{12RcBEs|V=|SWM^(WD-SYi6&p* zF0qZu6pajI)a;{;F@`oK%;Ot|{X!Q~F&T|x5;0#A;}w=;=EKETHe$3!kl8B-b w`Fthib3R6y;2-dr;Wbub?rhBEG56;T){^{1;T|K%%@myP!Ff0MYUtP6|8T|{Pyhe` literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JCFMessageRepository.class.uniqueId19 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JCFMessageRepository.class.uniqueId19 new file mode 100644 index 0000000000000000000000000000000000000000..511d2931a518386f0fd03ad06dc0fbd9f81beee5 GIT binary patch literal 2171 zcmb7_TT|Oc6vzK-0}A$%7((tz+w?*VZlc^TH6`H^8WJ1Q5TMQUWw94nMwUF%nhD=2 z5A96S#O+L{&-qZ9oRt(LgYgV6l6H0W_dk0syB|OO^B;hp@mmfVWG(b@^kaabuq}3k z?Fe_%URvLlHO(+Esa&O}7_!CjRSU-$hC`#4R*wBd1Y1?n%)vr-5P5J5LmbC(g5gok zYuG{4SFW}jDhQP4+I1Dwyt-7{_GQxxl=l2xd%Lz_Kb@Vg${-M%^2Oc{hQ7Mcg5g9Z z5hSs44#OC+aFSybrx;2-g`}&M-nC;oL;t4K3w4H(;&=+Xva&E&&f^TuS~$mX9v2vf zI#g-@%@&2@elc2>ic$ICOw3Lj8TuuTukbaY$O(qAE~qXGbGVFeEqurEJ$@j^6StO{ znxZNkhMc#t*m4}P?ns8>;oLB3UzUX%zQR$&IHh?0Iy5}${dp>0Rz5lcstSp)%Am(^^+>pE)_bstTtVt zTRw$-F;!1grjw~*SYDN$I-PY|o+?xM&r+|L@>i~0Y&F)U|1wJONX4rOXI1#hjN{2Z zy`?C9GreU}+c~W7jB+4$NcoRqZ`eMc$B$&qU^SwaXSjOAm4&L*TVDOS@I^yv>C?WC zZ78=svuj%WOJ9Y>9)>>M>U-7CkWpk^*q$QHCZK-Wv}Je-YBI*YZ^pEQ{vIl$avWI(Wy5Oz8qM=CWIUl1;@DKRR@DeLAcP{4gnEO)(Yf1j1aE}q>N(#>R;Jh1rHS}xkGyB*Y-~a#s literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JCFUserRepository.class.uniqueId9 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/JCFUserRepository.class.uniqueId9 new file mode 100644 index 0000000000000000000000000000000000000000..ad6ba7d043149365e4e469a4a011bceee2d5781c GIT binary patch literal 2135 zcmb7_TT|Oc6vzK-0}A$%7>AH+FX@FC(?sbdX;KqtfY1;Oq!3J-x5Zvy8Cmj3Yo>gs zJ~T5)Q@1mnKKDa)dR9`9j2%z%U|G95`}?0gm)(E=`}1!A5AahC8DuRCaSUUGp>QaU zgzX4--`?0gly%K8GOJvr=NPi3>6(Qz4CA3uTPw$YEP{hI(aOO>b`*JV3u7E-agO0Z z-D}!G%U7&%=M}#6L7^eE5`Yg=hIzF-RDaU8{oE%Tw+GuHt zr*If@-rjoKam218DH?C*hUt2ew>PviO;cJd>aEIYyg6gs(n)a$HpjdUM%glw| zf6H+X_Zjka&(%V?!KyrFxX>>E&rJd<9J3|?Bfe~UN74dS^xc8QlPb~EwK=+__FbXd zKE-@BRZLW%v#DWNTh)OgsS2&kRjBG0sXt8BD_5?!o4e9~7NxdW_3FZ@3169UJUOHf z6eVtcutsVleS6Kw2I7chYo)=Yw71jmZc6-i*n;KvSyNb(`oL>E6~1UnEq&VPnLXt; z7LH99ziFYcuERj5yZWTi88V8j3#YTfuo;)iV8HCVdu-BY83!La)R%KzO<>CQJyALN z3oQzw-Jb7t_Br)_Lpl_hx0=+*WXo&&b-Ap}@i5tQ%-%BnN2g4lt^qo-=~pzTH~r7k z{gA=;7@>E%8tD0uW)_g8H=s~{4OadO*3Yjo`U<%hq4fei&yod*Hv~?cF)Y%EM{BTz zM>Jws#t+0cycM#}(EoV(C2}*rqcGFKWEML!ztLodcn5t%0n9bC)cAB_Kjj}ry6InWVdT6;=ij*2Y>TW+WP z0$%t5@GD>jmktj+_MyLtVK}>zQ%B>MW+wXf@}2!I=j{5`e}Df2U<==w$RKMVXCaRX zfx=_=iR-l8pylizK9*i2FmcNd{OGnowpePIn8cI;)4~~80yEmZANg(P;GlX(!0fs~ zGwj5Zxniky+MzOq8O$0eSU8J0fwC8NoZfNQ4VISX%LN#LxG82KIPRD)jR1}q^Pgii$)hv|%NRuue#g}1TH za#}LFdmMU4b?JoxgR$gY6BqH0flC%HSNZo4n{zZaM zo2s#nh47l*=FcZo8*iHWEJ; zM5Xk|Kt*6d_t_7fy6pOH+yBWuY?GrxPfr`NtH{)v5W51?J7G*lLp3W;?WsQ@usIqb zsW8oOdR}S>iVJOB?YLjD!oC=&FWIG{~ zw8RvqXi1u;nqmg>=}ClHH+ZJIounWj9+8N8`UILF6r2^B0;xFyO~3FA_H`iU@Xe4~Ytp)l%rNbCW<3}pW04@p65 PBQNNqG|}KUgKz%_Qq5uK literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/MessageRepository.class.uniqueId0 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/MessageRepository.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..617e92c21e126b11014451311b025a3a452ad886 GIT binary patch literal 712 zcmb7CO-}+b5Pe;R75qX_{09av_H0lSj4>gBU?g}jUg~belJ1tYg~(s?;1BRe8D}Aa zhG^u_!+Y~)=FN28KVIJeoZ~P=z;GIwgu9_tsppAuPMMU)%0(uY%5y7+#wl;?gtw)0 zqAzdfOo(-c(m;#_*COrn&f`Evo?+dIv1E9twf-zEQ?LBIZ2fp8H8pNa|7_wLVMQXn zw2mQ6W)>MXo>UrNPMR^pQLQz#IPyyKUaxsYofbrA=xJb~>kNS+b)l>JsqiC91N8ot zdA5@83u+W*<{DZvlxyF;w3PD{ZY+_jwWQ$&aZ3^vRm((*{BD{z4 SBAcW{Rj~hqB5*LxuYLl+!^mU+ literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/MessageService.class.uniqueId6 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/MessageService.class.uniqueId6 new file mode 100644 index 0000000000000000000000000000000000000000..95cd735b15918928bd15a1f022d166fb900a51e5 GIT binary patch literal 744 zcmb7C+fD*85S?<_W$}jK^$+01eee-4AsQ1Bh?)()*Y3EKEM3xeG5(qlet;ikoLwMD zHZkF$Y0va@=FI7Q|9pM{z%`t^P-1W?lBsWIS}N;Lr7<#5ekhGdLX_4wsOM6kKSX1A zguw#3P+`!R@HzKmt|I^Ob%Me&aD+x~kpXWH*0+JBEv8 zKUPAzRDXzeoPYamd22D-7WbwL zL$ai9mb4eg44UoEpDqW|SkmbQGE&^8ntbUM2v=KmeM9-2bQb0&KNq?vn!ascb%pPD zD-)d%V{(>3t5B))!k```sTTMkM8%ejEH_iW zfM0;GfEipmJn+Z^-@+#_4C@@piQ_RdXhz!SZ0&XSWi9E?e}4NNz{mJ1fe^wmL^MP( zA&`1uyfpNdVIS$chcC>ACopl>vMukPKsb}FCoqY43<(WW&;+Jcc+az1dabtgKp^27 zcGGG5o4HK3az3CO$24YQNNJeGoIs}GwDoSswQNssTiveZ*m~3IHk_tudAezPmiJ1p zbxl_wWHnjd=y?e&U@?ZYhPQA*U{pSDH#bQ$|o7=kSN*a|K#I`_k!||D@%SlD4I(Z3!_2CRb zcSAY<)03?WL^h}pftiYBn~!_#L(_fc7cp0H8mz%!B`hj%M!aK-E#)fzS8Z%EwPSk6 zPIJ$2$%MzAIBp7Li@MNgH_pgBRrwj6eoSpJc7Z8Eq>O!97Y14!CYHoY0ZK;w_`QHi zlHwCcw{4!B9W%+@AfC&!_!+}~rKTNJARzWhMAb7I-|QHjU@D2K({mfg;PVP=0W(K1&mYeME+CD| z{N%53wTz2+z_&U7Y;58ocg!L`C+3$cSyf1_WL;r=&UG@(0Pq#~?NE_;1dUHws7@<^ z(cCXc{=`KHvWf}iyriW5E^djLEz_3eJoL zKOPItkAe$h!MkI@#ZmChvEaQ^S^Pyp)!Ifn93Oa#{=8SwVwP)431=fp%Z^lPm@>&nC{Kd)IoU0+Hq@1%b=@x8EOB)znb zTBhWTVe?5P@%6MBGn~{~GiRw+n)iCm8|twj+G9^c3SDOi6se0{HAsX{E&1-Om3gtg z;|6sJGiO&?GgN9njkJ{W6mG1L|EynA@Tcv3a z)#YoSW!oz-Fl^A*0rGVGJPL%v4AJtD{f8n-2)?K-ifq#hutT9;?2&qo%Y^q)S!9!x Os45PYC<2GG{G(5NWWYrL literal 0 HcmV?d00001 diff --git a/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/UserService.class.uniqueId14 b/discodeit/build/tmp/compileJava/compileTransaction/stash-dir/UserService.class.uniqueId14 new file mode 100644 index 0000000000000000000000000000000000000000..7b217e56bcd8542a65c63d831207512f6c94362c GIT binary patch literal 794 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 E-}AMt+5i9m literal 0 HcmV?d00001 diff --git a/discodeit/file-data-map/Message/a0aa6aae-7325-4e88-bef4-a48c1b4640ba.ser b/discodeit/file-data-map/Message/a0aa6aae-7325-4e88-bef4-a48c1b4640ba.ser new file mode 100644 index 0000000000000000000000000000000000000000..25fff1ee54ecda48af2ae20cbef915bc5688406d GIT binary patch literal 389 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@d>A+qOG`5Hi#$_G7zBK>63Y_xOG`3y^g}~EU95c=IFmCH^YT)2JW~o8 z>KGV(7}%5Z^Gblml`sfFROck-rRxWm04+`jt1n7TEJ;mq1S$}QC@9IyP1X0zD=taQ zD*>ut%7hukSz3?+Q42DgxuO8*4L*P?9)3W2utSNdxOL@VTg50SWoLV$Bwq=*JlE)?<28N1)a$Y7-U}ZKv fOf=D6I_l#fgkWk66tsQYqJ6)(s#W5jREY*bTIE=_+VlM_L2o_3Z zK$wKRUi-k`XDxSbXi{+wmk@Z&z={%+A1eM~;FD;sWbu$$U!alGSx#q>Oz%%_-dCE3 zuXTXT4jVxp8m~Y3_S4%-=9xod#Ax@gov-c<<_m*72Fqhi9;bdD)NL3*(1Cg)xuXc< p7Lx10oHGAgW}m-TXC}u-&E@gc-N$JEl%Q7FuWxK_S%PY@`~pM?c3uDg literal 0 HcmV?d00001 diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserCreateDto.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserCreateDto.java new file mode 100644 index 00000000..90741441 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserCreateDto.java @@ -0,0 +1,7 @@ +package com.sprint.mission.discodeit.dto; + +public record UserCreateDto( + String username, + String email, + String password +) {} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserProfileDto.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserProfileDto.java new file mode 100644 index 00000000..3bbcc876 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserProfileDto.java @@ -0,0 +1,7 @@ +package com.sprint.mission.discodeit.dto; + +public record UserProfileDto( + String fileName, + byte[] bytes, + String contentType +) {} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserResponseDto.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserResponseDto.java new file mode 100644 index 00000000..e60a4261 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserResponseDto.java @@ -0,0 +1,11 @@ +package com.sprint.mission.discodeit.dto; + +import java.util.UUID; + +public record UserResponseDto( + UUID id, + String username, + String email, + boolean online, + UUID profileImageId +) {} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserUpdateDto.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserUpdateDto.java new file mode 100644 index 00000000..abae81b2 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserUpdateDto.java @@ -0,0 +1,11 @@ +package com.sprint.mission.discodeit.dto; + +import java.util.UUID; + +public record UserUpdateDto( + UUID userId, + String username, + String email, + String password +) {} + diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java index 6cf407e3..8ea792da 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java @@ -33,4 +33,5 @@ public BinaryContent( this.data = data; this.contentType = contentType; } + } \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java index 731587b3..157a76c0 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java @@ -38,7 +38,7 @@ public void update(String newName, String newDescription) { } if (anyValueUpdated) { - this.updatedAt = Instant.now().getEpochSecond(); + this.updatedAt = Instant.now(); } } } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java index a373427a..f609931c 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java @@ -16,7 +16,7 @@ public class UserStatus { private final UUID userId; private Instant lastActiveAt; - public UserStatus(UUID userId, Instant lastActiveAt) { + public UserStatus(UUID userId) { this.id = UUID.randomUUID(); this.createdAt = Instant.now(); this.userId = userId; diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/User/BinaryContentRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/User/BinaryContentRepository.java new file mode 100644 index 00000000..ce70458a --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/User/BinaryContentRepository.java @@ -0,0 +1,15 @@ +package com.sprint.mission.discodeit.repository.User; + +import com.sprint.mission.discodeit.entity.BinaryContent; + +import java.util.Optional; +import java.util.UUID; + +public interface BinaryContentRepository { + + BinaryContent save(BinaryContent content); + + Optional findById(UUID id); + + void deleteByOwnerId(UUID ownerId); +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/User/UserStatusRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/User/UserStatusRepository.java new file mode 100644 index 00000000..2acb5f9f --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/User/UserStatusRepository.java @@ -0,0 +1,15 @@ +package com.sprint.mission.discodeit.repository.User; + +import com.sprint.mission.discodeit.entity.UserStatus; + +import java.util.Optional; +import java.util.UUID; + +public interface UserStatusRepository { + + UserStatus save(UserStatus userStatus); + + Optional findByUserId(UUID userId); + + void deleteByUserId(UUID userId); +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java index 48b7de34..20fac7cf 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java @@ -29,6 +29,7 @@ public FileChannelRepository() { } private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java index bf71910f..a85d7a3a 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java @@ -29,6 +29,7 @@ public FileMessageRepository() { } private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java index d03601a6..05e9e975 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java @@ -30,6 +30,7 @@ public FileUserRepository() { } private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java index 947c0f16..817ff754 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java @@ -1,6 +1,13 @@ package com.sprint.mission.discodeit.service.basic; +import com.sprint.mission.discodeit.dto.UserProfileDto; +import com.sprint.mission.discodeit.dto.UserResponseDto; +import com.sprint.mission.discodeit.dto.UserUpdateDto; +import com.sprint.mission.discodeit.entity.BinaryContent; import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.entity.UserStatus; +import com.sprint.mission.discodeit.repository.User.BinaryContentRepository; +import com.sprint.mission.discodeit.repository.User.UserStatusRepository; import com.sprint.mission.discodeit.repository.UserRepository; import com.sprint.mission.discodeit.service.UserService; import lombok.RequiredArgsConstructor; @@ -14,37 +21,140 @@ @RequiredArgsConstructor public class BasicUserService implements UserService { private final UserRepository userRepository; + private final BinaryContentRepository binaryContentRepository; + private final UserStatusRepository userStatusRepository; + /* ====================== + CREATE + ====================== */ @Override - public User create(String username, String email, String password) { - User user = new User(username, email, password); - return userRepository.save(user); - } + public UserResponse create( + UserCreateRequest userRequest, + ProfileImageRequest imageRequest + ) { + if (userRepository.existsByUsername(userRequest.username())) { + throw new IllegalArgumentException("Username already exists"); + } + if (userRepository.existsByEmail(userRequest.email())) { + throw new IllegalArgumentException("Email already exists"); + } + + User user = new User( + userRequest.username(), + userRequest.email(), + userRequest.password() + ); + userRepository.save(user); + + UserStatus status = new UserStatus(user.getId()); + userStatusRepository.save(status); + +// UUID profileImageId = null; +// if (imageRequest != null) { +// +// } +// +// return new UserResponse( +// user.getId(), +// user.getUsername(), +// user.getEmail(), +// status.isOnline(), +// profileImageId +// ); +// } + /* ====================== + FIND + ====================== */ @Override - public User find(UUID userId) { - return userRepository.findById(userId) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + public UserResponseDto find(UUID userId) { + User user = userRepository.findById(userId) + .orElseThrow(() -> new NoSuchElementException("User not found")); + + UserStatus status = userStatusRepository.findByUserId(userId) + .orElseThrow(); + + return new UserResponse( + user.getId(), + user.getUsername(), + user.getEmail(), + status.isOnline(), + user.getProfileImageId() + ); } @Override - public List findAll() { - return userRepository.findAll(); + public List findAll() { + return userRepository.findAll().stream() + .map(user -> { + UserStatus status = userStatusRepository + .findByUserId(user.getId()) + .orElseThrow(); + + return new UserResponse( + user.getId(), + user.getUsername(), + user.getEmail(), + status.isOnline(), + user.getProfileImageId() + ); + }) + .toList(); } + /* ====================== + UPDATE + ====================== */ @Override - public User update(UUID userId, String newUsername, String newEmail, String newPassword) { - User user = userRepository.findById(userId) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); - user.update(newUsername, newEmail, newPassword); - return userRepository.save(user); + public UserResponseDto update( + UserUpdateDto request, + UserProfileDto imageRequest + ) { + User user = userRepository.findById(request.userId()) + .orElseThrow(() -> new NoSuchElementException("User not found")); + + user.update( + request.username(), + request.email(), + request.password() + ); + userRepository.save(user); + + if (imageRequest != null) { + binaryContentRepository.deleteByOwnerId(user.getId()); + + BinaryContent newImage = new BinaryContent( + imageRequest.fileName(), + imageRequest.bytes(), + imageRequest.contentType(), + user.getId() + ); + binaryContentRepository.save(newImage); + } + + UserStatus status = userStatusRepository + .findByUserId(user.getId()) + .orElseThrow(); + + return new UserResponse( + user.getId(), + user.getUsername(), + user.getEmail(), + status.isOnline(), + user.getProfileImageId() + ); } + /* ====================== + DELETE + ====================== */ @Override public void delete(UUID userId) { - if (!userRepository.existsById(userId)) { - throw new NoSuchElementException("User with id " + userId + " not found"); - } + userStatusRepository.deleteByUserId(userId); + binaryContentRepository.deleteByOwnerId(userId); userRepository.deleteById(userId); } + + + }