Index: imaps-backend/.gitignore
===================================================================
--- imaps-backend/.gitignore	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/.gitignore	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
Index: imaps-backend/.idea/.gitignore
===================================================================
--- imaps-backend/.idea/.gitignore	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,8 +1,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
Index: imaps-backend/.idea/compiler.xml
===================================================================
--- imaps-backend/.idea/compiler.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,18 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CompilerConfiguration">
-    <annotationProcessing>
-      <profile name="Maven default annotation processors profile" enabled="true">
-        <sourceOutputDir name="target/generated-sources/annotations" />
-        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
-        <outputRelativeToContentRoot value="true" />
-        <module name="backendRender" />
-      </profile>
-    </annotationProcessing>
-  </component>
-  <component name="JavacSettings">
-    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
-      <module name="backendRender" options="-parameters" />
-    </option>
-  </component>
-</project>
Index: imaps-backend/.idea/encodings.xml
===================================================================
--- imaps-backend/.idea/encodings.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,6 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding">
-    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
-  </component>
-</project>
Index: imaps-backend/.idea/imaps-backend.iml
===================================================================
--- imaps-backend/.idea/imaps-backend.iml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,9 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="true">
-    <exclude-output />
-    <content url="file://$MODULE_DIR$" />
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>
Index: imaps-backend/.idea/jarRepositories.xml
===================================================================
--- imaps-backend/.idea/jarRepositories.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,20 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="RemoteRepositoriesConfiguration">
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://repo.maven.apache.org/maven2" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Maven Central repository" />
-      <option name="url" value="https://repo1.maven.org/maven2" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="jboss.community" />
-      <option name="name" value="JBoss Community repository" />
-      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
-    </remote-repository>
-  </component>
-</project>
Index: imaps-backend/.idea/misc.xml
===================================================================
--- imaps-backend/.idea/misc.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,11 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="MavenProjectsManager">
-    <option name="originalFiles">
-      <list>
-        <option value="$PROJECT_DIR$/pom.xml" />
-      </list>
-    </option>
-  </component>
-</project>
Index: imaps-backend/.idea/modules.xml
===================================================================
--- imaps-backend/.idea/modules.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,8 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/imaps-backend.iml" filepath="$PROJECT_DIR$/.idea/imaps-backend.iml" />
-    </modules>
-  </component>
-</project>
Index: imaps-backend/.idea/vcs.xml
===================================================================
--- imaps-backend/.idea/vcs.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,6 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
-  </component>
-</project>
Index: imaps-backend/backendRender/.env
===================================================================
--- imaps-backend/backendRender/.env	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,12 +1,0 @@
-BACKEND_IP=192.168.104.7
-BACKEND_PORT=8080
-DB_PASS=Zim1M@jk41004
-DB_IP=192.168.104.7
-DB_PORT=5432
-DB_USER=stevetosak
-GITHUB_CLIENT_ID=Iv23liqzhX5wMYNDHtnz
-GITHUB_CLIENT_SECRET=6528f334f1731c8154c5fe872d222e188307b111
-GOOGLE_CLIENT_ID=1024418489231-ml40ukvqcg9ad1h5ejor5dm6ipt6p8fo.apps.googleusercontent.com
-GOOGLE_CLIENT_SECRET=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
-MAIL_NAME=stefantoska84@gmail.com
-MAIL_PASS=kqnj iyae ojrt beai
Index: imaps-backend/backendRender/.gitignore
===================================================================
--- imaps-backend/backendRender/.gitignore	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/.gitignore	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
Index: imaps-backend/backendRender/.idea/.gitignore
===================================================================
--- imaps-backend/backendRender/.idea/.gitignore	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,8 +1,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
Index: imaps-backend/backendRender/.idea/backendRender.iml
===================================================================
--- imaps-backend/backendRender/.idea/backendRender.iml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,16 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module version="4">
-  <component name="FacetManager">
-    <facet type="jpa" name="JPA">
-      <configuration>
-        <setting name="validation-enabled" value="true" />
-        <setting name="provider-name" value="Hibernate" />
-        <datasource-mapping>
-          <factory-entry name="backendRender" value="815c3bb1-c7b5-434d-9439-b67467b7aa8c" />
-          <factory-entry name="entityManagerFactory" value="58bf9d8f-dba8-4541-a125-e51c53efec08" />
-        </datasource-mapping>
-        <naming-strategy-map />
-      </configuration>
-    </facet>
-  </component>
-</module>
Index: imaps-backend/backendRender/.idea/compiler.xml
===================================================================
--- imaps-backend/backendRender/.idea/compiler.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,19 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CompilerConfiguration">
-    <annotationProcessing>
-      <profile default="true" name="Default" enabled="true" />
-      <profile name="Maven default annotation processors profile" enabled="true">
-        <sourceOutputDir name="target/generated-sources/annotations" />
-        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
-        <outputRelativeToContentRoot value="true" />
-        <module name="backendRender" />
-      </profile>
-    </annotationProcessing>
-  </component>
-  <component name="JavacSettings">
-    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
-      <module name="backendRender" options="-parameters" />
-    </option>
-  </component>
-</project>
Index: imaps-backend/backendRender/.idea/dataSources.xml
===================================================================
--- imaps-backend/backendRender/.idea/dataSources.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,17 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
-    <data-source source="LOCAL" name="imaps_prod@localhost" uuid="b958dd95-d4db-4509-b3bb-eb46f8cd3f13">
-      <driver-ref>postgresql</driver-ref>
-      <synchronize>true</synchronize>
-      <jdbc-driver>org.postgresql.Driver</jdbc-driver>
-      <jdbc-url>jdbc:postgresql://localhost:5432/imaps_prod</jdbc-url>
-      <jdbc-additional-properties>
-        <property name="com.intellij.clouds.kubernetes.db.host.port" />
-        <property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
-        <property name="com.intellij.clouds.kubernetes.db.container.port" />
-      </jdbc-additional-properties>
-      <working-dir>$ProjectFileDir$</working-dir>
-    </data-source>
-  </component>
-</project>
Index: imaps-backend/backendRender/.idea/diff-generator.xml
===================================================================
--- imaps-backend/backendRender/.idea/diff-generator.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="DiffGenerationConfig">
-    <option name="sourceModelValue" value="backendRender:backendRender" />
-    <option name="targetDbValue" value="6a336d53-5df6-47b6-8bbb-074a8196585f" />
-  </component>
-</project>
Index: imaps-backend/backendRender/.idea/encodings.xml
===================================================================
--- imaps-backend/backendRender/.idea/encodings.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,6 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding">
-    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
-  </component>
-</project>
Index: imaps-backend/backendRender/.idea/jarRepositories.xml
===================================================================
--- imaps-backend/backendRender/.idea/jarRepositories.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,20 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="RemoteRepositoriesConfiguration">
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://repo.maven.apache.org/maven2" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Maven Central repository" />
-      <option name="url" value="https://repo1.maven.org/maven2" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="jboss.community" />
-      <option name="name" value="JBoss Community repository" />
-      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
-    </remote-repository>
-  </component>
-</project>
Index: imaps-backend/backendRender/.idea/misc.xml
===================================================================
--- imaps-backend/backendRender/.idea/misc.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,12 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="MavenProjectsManager">
-    <option name="originalFiles">
-      <list>
-        <option value="$PROJECT_DIR$/pom.xml" />
-      </list>
-    </option>
-  </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK" />
-</project>
Index: imaps-backend/backendRender/.idea/modules.xml
===================================================================
--- imaps-backend/backendRender/.idea/modules.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,8 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/backendRender.iml" filepath="$PROJECT_DIR$/.idea/backendRender.iml" />
-    </modules>
-  </component>
-</project>
Index: imaps-backend/backendRender/.idea/uiDesigner.xml
===================================================================
--- imaps-backend/backendRender/.idea/uiDesigner.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,124 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Palette2">
-    <group name="Swing">
-      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
-      </item>
-      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
-        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
-        <initial-values>
-          <property name="text" value="Button" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="RadioButton" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="CheckBox" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="Label" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
-          <preferred-size width="-1" height="20" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
-      </item>
-    </group>
-  </component>
-</project>
Index: imaps-backend/backendRender/.idea/vcs.xml
===================================================================
--- imaps-backend/backendRender/.idea/vcs.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,6 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
-  </component>
-</project>
Index: imaps-backend/backendRender/Dockerfile
===================================================================
--- imaps-backend/backendRender/Dockerfile	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,4 +1,0 @@
-FROM openjdk:17-jdk-alpine
-ARG JAR_FILE=target/*.jar
-COPY ${JAR_FILE} app.jar
-ENTRYPOINT ["java","-jar","/app.jar"]
Index: imaps-backend/backendRender/HELP.md
===================================================================
--- imaps-backend/backendRender/HELP.md	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,28 +1,0 @@
-# Getting Started
-
-### Reference Documentation
-For further reference, please consider the following sections:
-
-* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
-* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/3.3.3/maven-plugin)
-* [Create an OCI image](https://docs.spring.io/spring-boot/3.3.3/maven-plugin/build-image.html)
-* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/3.3.3/reference/htmlsingle/index.html#using.devtools)
-* [Spring Web](https://docs.spring.io/spring-boot/docs/3.3.3/reference/htmlsingle/index.html#web)
-* [Spring Session](https://docs.spring.io/spring-session/reference/)
-* [Thymeleaf](https://docs.spring.io/spring-boot/docs/3.3.3/reference/htmlsingle/index.html#web.servlet.spring-mvc.template-engines)
-
-### 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/)
-* [Handling Form Submission](https://spring.io/guides/gs/handling-form-submission/)
-
-### Maven Parent overrides
-
-Due to Maven's design, elements are inherited from the parent POM to the project POM.
-While most of the inheritance is fine, it also inherits unwanted elements like `<license>` and `<developers>` from the parent.
-To prevent this, the project POM contains empty overrides for these elements.
-If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides.
-
Index: imaps-backend/backendRender/pom.xml
===================================================================
--- imaps-backend/backendRender/pom.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/pom.xml	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -10,9 +10,9 @@
 	</parent>
 	<groupId>internettehnologii.imaps</groupId>
-	<artifactId>imaps-backend</artifactId>
+	<artifactId>backendRender</artifactId>
 	<version>0.0.1-SNAPSHOT</version>
-	<packaging>jar</packaging>
-	<name>imaps-backend</name>
-	<description>Backend api for rendering indoor maps</description>
+	<packaging>war</packaging>
+	<name>backendRender</name>
+	<description>Backend api for rendering an indoor map</description>
 	<url/>
 	<licenses>
@@ -121,14 +121,4 @@
 		</dependency>
 		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-mail</artifactId>
-			<version>3.4.0</version>
-		</dependency>
-
-		<dependency>
 			<groupId>com.googlecode.json-simple</groupId>
 			<artifactId>json-simple</artifactId>
@@ -156,8 +146,7 @@
 			<scope>test</scope>
 		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-actuator</artifactId>
-		</dependency>
+
+
+
 
 	</dependencies>
Index: imaps-backend/backendRender/run.sh
===================================================================
--- imaps-backend/backendRender/run.sh	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,25 +1,0 @@
-#!/bin/bash
-IMAGE_NAME="imaps-backend"
-TAG="latest"
-
-
-docker rm -f imaps-backendC
-
-if docker images "$IMAGE_NAME" | grep -q "$TAG"; then
-    echo "Image $IMAGE_NAME:$TAG found, deleting..."
-    docker rmi "$IMAGE_NAME:$TAG"
-else
-    echo "Image $IMAGE_NAME:$TAG not found."
-fi
-
-
-docker build -t imaps-backend .
-
-
-docker run \
---name imaps-backendC \
---privileged  \
---env-file .env \
--p 8080:8080 \
--d \
-imaps-backend
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/BackendRenderApplication.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/BackendRenderApplication.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/BackendRenderApplication.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,9 +3,4 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.annotation.Bean;
-import org.springframework.mail.javamail.JavaMailSender;
-import org.springframework.mail.javamail.JavaMailSenderImpl;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.crypto.password.PasswordEncoder;
 
 @SpringBootApplication
@@ -16,8 +11,3 @@
 	}
 
-	@Bean
-	public PasswordEncoder passwordEncoder(){
-		return new BCryptPasswordEncoder(12);
-	}
-
 }
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/Edge.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/Edge.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/Edge.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -4,10 +4,8 @@
 import lombok.Getter;
 import lombok.Setter;
-import lombok.ToString;
 
 import java.util.Map;
 
 @Setter @Getter
-@ToString
 public class Edge{
   private MapNode node;
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/MapNode.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/MapNode.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/MapNode.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -14,13 +14,9 @@
     private Coordinates<Double,Double> coordinates;
     private List<String> connectionNames = new ArrayList<>();
-    private String className;
-    private int floorNumber;
 
-    public MapNode(String name, String description, Coordinates<Double, Double> coordinates,String className,int floorNumber) {
+    public MapNode(String name, String description, Coordinates<Double, Double> coordinates) {
         this.name = name;
         this.description = description;
         this.coordinates = coordinates;
-        this.className = className;
-        this.floorNumber = floorNumber;
     }
 
@@ -31,4 +27,10 @@
     }
 
+    public MapNode(String name, String description, Coordinates<Double, Double> coordinates, String connectedRoom) {
+        this.name = name;
+        this.description = description;
+        this.coordinates = coordinates;
+        this.connectedRoom = connectedRoom;
+    }
 
     public MapNode() {
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/MapNodeParser.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/MapNodeParser.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/MapNodeParser.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -2,4 +2,5 @@
 
 
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -9,50 +10,72 @@
 
 public class MapNodeParser {
-
-
-    public List<MapNode> parseAndCreate(String mapJson) throws Exception {
+    public List<MapNode> parseAndCreateNodes(String mapJson) throws Exception {
         final List<MapNode> mapNodes = new ArrayList<>();
 
-        if (mapJson == null || mapJson.isEmpty() || mapJson.equals("[]")) {
-            throw new MapParseException("Cannot parse empty map");
-        }
+        System.out.println("======= MAP JSON ====== " + mapJson);
+
+//        if(mapJson == null || mapJson.isEmpty() || mapJson.equals("[]")) {
+//            throw new MapParseException("Cannot parse empty map");
+//        }
 
         ObjectMapper objectMapper = new ObjectMapper();
-        List<Shape> shapes = objectMapper.readValue(mapJson, objectMapper.getTypeFactory().constructCollectionType(List.class, Shape.class));
+            String[] shapes = objectMapper.readValue(mapJson, String[].class);
 
-        shapes.forEach(shape -> {
-            try {
-                String type = shape.getClassName();
-                if (Objects.equals(type, "Wall") || Objects.equals(type, "Room")) return;
-                MapNode mapNode = createMapNode(shape);
-                @SuppressWarnings("unchecked")
-                List<String> connectedPins = (List<String>) shape.getAttrs().get("connected_pins");
-                if (connectedPins != null) {
-                    for (String pin : connectedPins) {
-                        System.out.println("Connected node (markup) : " + pin + " to: " + shape.getAttrs().get("obj_name"));
-                        mapNode.addConnectionName(pin);
+            Arrays.stream(shapes).forEach(shape -> {
+                try {
+                    JsonNode parsedNode = objectMapper.readTree(shape);
+                    String type = parsedNode.get("className").asText();
+
+                    // Wall i room ne se bitni za navigacija
+                    if(Objects.equals(type,"Wall") || Objects.equals(type,"Room")) return;
+
+                    JsonNode attrs = parsedNode.get("attrs");
+                    MapNode mapNode = createMapNode(attrs);
+
+                    if(attrs.has("connected_pins")){
+                        JsonNode connectedPins = attrs.get("connected_pins");
+                        if (connectedPins.isArray()) {
+                            for (JsonNode pin : connectedPins) {
+                                System.out.println("Connected node (markup) : " + pin.asText() + " to: " + attrs.get("obj_name"));
+                                mapNode.addConnectionName(pin.asText());
+                            }
+                        }
                     }
+
+                    mapNodes.add(mapNode);
+
+                } catch (JsonProcessingException e) {
+                    throw new RuntimeException(e);
                 }
-                mapNodes.add(mapNode);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        });
-        mapNodes.forEach(node -> System.out.println("Added node: ----> " + node.toString()));
-        return mapNodes;
+            });
+
+           mapNodes.forEach(node -> System.out.println("Added node: ----> " + node.toString()));
+
+           return mapNodes;
+
     }
 
 
-    private static MapNode createMapNode(Shape shape) {
-        String name = (String) shape.getAttrs().get("obj_name");
-        String description = (String) shape.getAttrs().get("description");
-        String connectedRoom = (String) shape.getAttrs().get("connected_room");
-        double x = Double.parseDouble(Objects.requireNonNull(shape.getAttrs().get("x")).toString());
-        double y = Double.parseDouble(Objects.requireNonNull(shape.getAttrs().get("y")).toString());
-        Coordinates<Double, Double> coordinates = new Coordinates<>(x, y);
-        int floorNumber = (int) shape.getAttrs().get("floor_num");
+    private static String findAttr(String key,JsonNode attrs){
+        if(attrs.has(key)){
+            return attrs.get(key).asText();
+        } else {
+            System.out.println("No attribute found for key:" + key);
+            return null;
+        }
 
-        MapNode mapNode = new MapNode(name, description, coordinates, shape.getClassName(), floorNumber);
-        if (connectedRoom != null) {
+    }
+
+
+    private static MapNode createMapNode(JsonNode attrs) {
+        String name = findAttr("obj_name",attrs);
+        String description = findAttr("description",attrs);
+        String connectedRoom = findAttr("connected_room",attrs);
+        double x = Double.parseDouble(Objects.requireNonNull(findAttr("x", attrs)));
+        double y = Double.parseDouble(Objects.requireNonNull(findAttr("y", attrs)));
+        Coordinates<Double,Double> coordinates = new Coordinates<>(x,y);
+
+        MapNode mapNode = new MapNode(name, description, coordinates);
+        if(connectedRoom != null){
             mapNode.setConnectedRoom(connectedRoom);
         }
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/RouteGraph.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/RouteGraph.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/RouteGraph.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -7,24 +7,16 @@
     private final Map<String, MapNode> nameToNodeMap = new HashMap<>();
 
+    public RouteGraph(List<MapNode> nodes) {
 
-    public void loadNodeNames(List<MapNode> nodes){
+
         for (MapNode node : nodes) {
             nameToNodeMap.put(node.getName(), node);
         }
 
-        for(Map.Entry<String,MapNode> entries : nameToNodeMap.entrySet()) {
-            System.out.println(entries.getKey() + " " + entries.getValue());
-        }
-    }
-
-    public void loadEdges(){
-        for (MapNode mapNode : nameToNodeMap.values()) {
+        for (MapNode mapNode : nodes) {
             for (String connectionName : mapNode.getConnectionNames()) {
-                System.out.println("CONN: " + mapNode.getName() + " " + connectionName);
                 MapNode connectedNode = nameToNodeMap.get(connectionName);
                 if (connectedNode != null) {
                     addEdge(mapNode, connectedNode);
-                }else {
-                    System.out.println("CANT ADD EDGE ========== " + "FROM: " + mapNode.getName() + " TO: " + connectionName);
                 }
             }
@@ -36,5 +28,4 @@
         double x1 = a.getCoordinates().x;
         double y1 = a.getCoordinates().y;
-
         double x2 = b.getCoordinates().x;
         double y2 = b.getCoordinates().y;
@@ -51,6 +42,4 @@
         if (sourceNode == null || targetNode == null) {
             System.out.println(this.toString());
-            System.out.println("SOURCE NODE FROM MAP " + sourceNode);
-            System.out.println("TARGET NODE FROM MAP " + targetNode);
             throw new IllegalArgumentException("Source or target node not found. SOURCE: " + source + " TARGET: " + target);
         }
@@ -106,8 +95,7 @@
         }
 
-        Collections.reverse(path);// deka se staveni vo obraten redosled, pa reverse ni dava pateka od pocetok do kraj.
+        Collections.reverse(path); // deka se staveni vo obraten redosled, pa reverse ni dava pateka od pocetok do kraj.
 
         if (!path.isEmpty() && path.get(0).equals(sourceNode)) {
-            System.out.println("FOUND PATH: " + path);
             return path;
         } else {
@@ -141,6 +129,10 @@
         }
         return null;
-        //throw new IllegalArgumentException("Cant find room connected to entrance: " + roomName);
     }
+
+    public String getNodeNameByName(String name){
+        return nameToNodeMap.get(name).getName();
+    }
+
 
 
@@ -153,6 +145,4 @@
             MapNode node = entry.getKey();
             Set<Edge> connectedNodes = entry.getValue();
-
-            System.out.println("CONN NODES PRINT: " + connectedNodes);
 
             sb.append(node.getName()).append(" -> ");
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/Shape.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/Shape.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,14 +1,0 @@
-package internettehnologii.imaps.backendRender.graph;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-import java.util.Map;
-
-@Getter @Setter
-@ToString
-public class Shape {
-    private Map<String,Object> attrs;
-    private String className;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/exceptions/InvalidMapDataException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/exceptions/InvalidMapDataException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.graph.exceptions;
-
-public class InvalidMapDataException extends RuntimeException {
-    public InvalidMapDataException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/MapConfig.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/MapConfig.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/MapConfig.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,46 @@
+//package internettehnologii.imaps.backendRender.web.config;
+//
+//import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
+//import internettehnologii.imaps.backendRender.web.repo.MapRepository;
+//import internettehnologii.imaps.backendRender.web.security.json.DataJson;
+//import org.springframework.boot.CommandLineRunner;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//import java.util.List;
+//
+//@Configuration
+//public class MapConfig {
+//    String jsonTest1 = "{\n" +
+//            "  \"id\": 1,\n" +
+//            "  \"name\": \"Sample Map\",\n" +
+//            "  \"mapData\": {\n" +
+//            "    \"type\": \"2D\",\n" +
+//            "    \"features\": [\n" +
+//            "      {\"name\": \"River\", \"location\": {\"x\": 10, \"y\": 20}},\n" +
+//            "      {\"name\": \"Mountain\", \"location\": {\"x\": 30, \"y\": 40}}\n" +
+//            "    ]\n" +
+//            "  },\n" +
+//            "  \"graphData\": {\n" +
+//            "    \"nodes\": [\n" +
+//            "      {\"id\": \"A\", \"label\": \"Start\"},\n" +
+//            "      {\"id\": \"B\", \"label\": \"Finish\"}\n" +
+//            "    ],\n" +
+//            "    \"edges\": [\n" +
+//            "      {\"source\": \"A\", \"target\": \"B\", \"weight\": 5}\n" +
+//            "    ]\n" +
+//            "  },\n" +
+//            "  \"isPublic\": true,\n" +
+//            "  \"url\": \"http://example.com/map\"\n" +
+//            "}\n";
+//    @Bean
+//    CommandLineRunner mapCmdLineRunner(MapRepository repository){
+//        return args -> {
+//            IndoorMap martin = new IndoorMap("MARTINCE",new DataJson(jsonTest1),true, "url");
+//            IndoorMap stefan = new IndoorMap("STEFCE", new DataJson(jsonTest1), true, "url");
+//            repository.saveAll(
+//                    List.of(martin, stefan)
+//            );
+//        };
+//    };
+//}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/OAuthConfig.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/OAuthConfig.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,29 +1,0 @@
-package internettehnologii.imaps.backendRender.web.config;
-
-import lombok.Getter;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-@Getter
-@Component
-public class OAuthConfig {
-    @Value("${github.client.id}")
-    private String GITHUB_CLIENT_ID;
-    @Value("${github.client.secret}")
-    private String GITHUB_CLIENT_SECRET;
-    @Value("${github.redirect.uri}")
-    private String GITHUB_REDIRECT_URI;
-    @Value("${google.redirect.uri}")
-    private String GOOGLE_REDIRECT_URI;
-    @Value("${google.client.id}")
-    private String GOOGLE_CLIENT_ID;
-    @Value("${google.client.secret}")
-    private String GOOGLE_CLIENT_SECRET;
-
-    private final String GITHUB_TOKEN_URL = "https://github.com/login/oauth/access_token";
-    private final String GITHUB_USER_URL = "https://api.github.com/user";
-
-    private final String GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
-    private final String GOOGLE_USER_URL = "https://www.googleapis.com/oauth2/v3/userinfo";
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/RoleConfig.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/RoleConfig.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,22 +1,0 @@
-package internettehnologii.imaps.backendRender.web.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.access.hierarchicalroles.RoleHierarchy;
-import org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl;
-import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler;
-
-@Configuration
-public class RoleConfig {
-    @Bean
-    public RoleHierarchy roleHierarchy() {
-        return RoleHierarchyImpl.fromHierarchy("ROLE_ADMIN > ROLE USER");
-    }
-    @Bean
-    public DefaultWebSecurityExpressionHandler customWebSecurityExpressionHandler() {
-        DefaultWebSecurityExpressionHandler expressionHandler = new DefaultWebSecurityExpressionHandler();
-        expressionHandler.setRoleHierarchy(roleHierarchy());
-        return expressionHandler;
-    }
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/UserConfig.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/UserConfig.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/UserConfig.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,27 @@
+//package internettehnologii.imaps.backendRender.web.config;
+//
+//import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
+//import internettehnologii.imaps.backendRender.web.repo.UserRepository;
+//import org.springframework.boot.CommandLineRunner;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+//
+//import java.util.List;
+//
+//@Configuration
+//public class UserConfig {
+//
+//    BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder(12);
+//    @Bean
+//    CommandLineRunner commandLineRunner(UserRepository repository){
+//        return args -> {
+//            IMapsUser martin = new IMapsUser("martin", "martindjakov03@gmail.com", bCryptPasswordEncoder.encode("dzako"));
+//            IMapsUser stefan = new IMapsUser( "stefan", "stefantoskovski03@gmail.com", bCryptPasswordEncoder.encode("toska"));
+//            repository.saveAll(
+//                    List.of(martin, stefan)
+//            );
+//        };
+//
+//    };
+//}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/AdminController.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/AdminController.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,105 +1,0 @@
-package internettehnologii.imaps.backendRender.web.controllers;
-
-import internettehnologii.imaps.backendRender.web.entities.MAP_STATUS;
-import internettehnologii.imaps.backendRender.web.service.interfaces.MapService;
-import internettehnologii.imaps.backendRender.web.service.interfaces.PublishRequestService;
-import internettehnologii.imaps.backendRender.web.service.interfaces.ReportService;
-import internettehnologii.imaps.backendRender.web.util.DTO.MapDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.PublishMapDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.ReportDTO;
-import internettehnologii.imaps.backendRender.web.util.Util;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Controller
-@RequestMapping("/api/admin")
-public class AdminController {
-    private final MapService mapService;
-    private final PublishRequestService publishRequestService;
-    private final ReportService reportService;
-
-    public AdminController(MapService mapService, PublishRequestService publishRequestService, ReportService reportService) {
-        this.mapService = mapService;
-        this.publishRequestService = publishRequestService;
-        this.reportService = reportService;
-    }
-
-    @GetMapping
-    public ResponseEntity<List<MapDTO>> getPendingMapRequests() {
-        try {
-            List<MapDTO> maps = Util.convertToMapDTO(mapService.findByStatus(MAP_STATUS.PENDING));
-            return ResponseEntity.ok(maps);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().build();
-        }
-    }
-
-    @GetMapping("/load-pr")
-    public ResponseEntity<List<PublishMapDTO>> getPublishedMapRequests() {
-        try {
-            List<PublishMapDTO> pmdto = publishRequestService.getAllPublishRequests()
-                    .stream()
-                    .map(pr -> new PublishMapDTO(
-                            pr.getId(),
-                            pr.getName(),
-                            pr.getLastName(),
-                            pr.getMap().getName(),
-                            pr.getMapType(),
-                            pr.getGMapsUrl()
-                            ))
-                    .toList();
-            return ResponseEntity.ok(pmdto);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().build();
-        }
-    }
-
-    @PostMapping("/pr/approve")
-    public ResponseEntity<Map<String,Object>> approvePR(@RequestParam("id") Integer id) {
-        try{
-            publishRequestService.approvePublishRequest(id);
-        } catch (Exception e){
-            e.printStackTrace();
-        }
-        return ResponseEntity.ok(new HashMap<>());
-    }
-    @PostMapping("/pr/deny")
-    public ResponseEntity<Map<String,Object>> denyPR(@RequestParam("id") Integer id,@RequestParam String reason) {
-        try{
-            publishRequestService.denyPublishRequest(id,reason);
-        } catch (Exception e){
-            e.printStackTrace();
-        }
-        return ResponseEntity.ok(new HashMap<>());
-    }
-    @GetMapping("/load-reports")
-    public ResponseEntity<List<ReportDTO>> getReports() {
-        try {
-            List<ReportDTO> reportDTOS = reportService.getReports()
-                    .stream()
-                    .map(report ->
-                new ReportDTO(
-                        report.getUser().getUsername(),
-                        report.getMap().getName(),
-                        report.getSubject(),
-                        report.getContent(),
-                        report.getCreatedAt().toString()
-                        )
-            ).toList();
-            return ResponseEntity.ok(reportDTOS);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().build();
-        }
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/AuthController.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/AuthController.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/AuthController.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -2,30 +2,24 @@
 
 import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.service.impl.JWTService;
-import internettehnologii.imaps.backendRender.web.service.impl.MapUserDetailsService;
-import internettehnologii.imaps.backendRender.web.service.impl.UserServiceImpl;
-import internettehnologii.imaps.backendRender.web.service.interfaces.MapService;
-import internettehnologii.imaps.backendRender.web.util.DTO.UserAuthSuccessDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.UserLoginDTO;
+import internettehnologii.imaps.backendRender.web.service.JWTService;
+import internettehnologii.imaps.backendRender.web.service.MapUserDetailsService;
+import internettehnologii.imaps.backendRender.web.service.UserService;
 import jakarta.servlet.http.HttpServletRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
-import org.springframework.http.ResponseEntity;
 import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.web.bind.annotation.*;
 
-import javax.management.relation.RoleNotFoundException;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @RequestMapping("/api/auth")
 @RestController
-//@CrossOrigin(origins = "http://localhost:5173")
+@CrossOrigin(origins = "http://localhost:5173/")
 public class AuthController {
 
     @Autowired
-    private UserServiceImpl userService;
+    private UserService userService;
     @Autowired
     private JWTService jwtService;
@@ -35,30 +29,27 @@
 
     @PostMapping("/register")
-    public IMapsUser register(@RequestBody IMapsUser user) throws RoleNotFoundException {
+    public IMapsUser register(@RequestBody IMapsUser user) {
         return userService.register(user);
     }
 
     @PostMapping("/login")
-    public Map<String, Object> login(@RequestBody UserLoginDTO user) {
+    public Map<String, Object> login(@RequestBody IMapsUser user, HttpServletRequest request) {
         System.out.println(user);
         Map<String, Object> response = new HashMap<>();
-
-        try{
-            UserAuthSuccessDTO userAuthSuccessDTO = userService.login(user);
-            response.put("token", userAuthSuccessDTO.getToken());
-            response.put("username", userAuthSuccessDTO.getUsername());
-            response.put("roles", userAuthSuccessDTO.getRoles());
-        } catch (Exception e){
-            System.out.println(e.getMessage());
-            response.put("error", e.getMessage());
-        }
-
+        String token = userService.verify(user);
+        response.put("token", token);
+        response.put("username", user.getUsername());
         return response;
     }
 
 
+    //ZA TESTIRANJE
+    @GetMapping("/list")
+    public List<IMapsUser> showUsers() {
+        return userService.getUsers();
+    }
+
     @GetMapping("/verify")
-    public ResponseEntity<Map<String,Object>> authenticateUser(@RequestParam String token) {
-        System.out.println("VERIFY");
+    public Map<String,Object> authenticateUser(@RequestParam String token) {
         Map<String, Object> response = new HashMap<>();
         try{
@@ -66,27 +57,15 @@
             UserDetails userDetails = context.getBean(MapUserDetailsService.class).loadUserByUsername(username);
             boolean auth = jwtService.validateToken(token, userDetails);
-
-            if(!auth){
-                response.put("error", "Token could not be validated");
-                return ResponseEntity.status(403).body(response);
+            if(auth){
+                response.put("username", username);
             }
 
-            response.put("username", username);
-            System.out.println("Authenticated user: " + username);
+            System.out.println(auth + " auth");
         } catch (Exception e){
-            response.put("auth",false);
             System.out.println("ERROR: NOT AUTHENTICATED: " + e.getMessage());
         }
 
-        return ResponseEntity.ok(response);
+        return response;
 
     }
-
-    @GetMapping("/test_auth")
-    public ResponseEntity<Map<String,Object>> testAuth(){
-        Map<String, Object> response = new HashMap<>();
-        response.put("auth",true);
-        return ResponseEntity.ok(response);
-    }
-
 }
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/InvalidStateException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/InvalidStateException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.controllers;
-
-public class InvalidStateException extends RuntimeException {
-  public InvalidStateException(String message) {
-    super(message);
-  }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapController.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapController.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapController.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,83 @@
+package internettehnologii.imaps.backendRender.web.controllers;
+
+import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
+import internettehnologii.imaps.backendRender.web.service.MapService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+@RestController
+@RequestMapping(path = "/api")
+public class MapController {
+    private final MapService mapService;
+
+    @Autowired
+    public MapController(MapService mapService){
+        this.mapService = mapService;
+    }
+
+    @GetMapping("/protected/maps")
+    public List<IndoorMap> getMaps(){
+        return mapService.getMaps();
+    }
+
+    @PutMapping("/protected/maps/save")
+    public ResponseEntity<Map<String,Object>> saveMap(@RequestBody String mapData, @RequestParam String mapName) {
+        HashMap<String,Object> response = new HashMap<>();
+        try {
+            mapService.saveMap(mapName, mapData);
+            response.put("status","ok");
+            Optional<IndoorMap> map = mapService.getMapByName(mapName);
+            if(map.isPresent()){
+                response.put("map",map.get());
+            } else {
+                response.put("map","rip");
+            }
+
+            return ResponseEntity.ok(response);
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+            e.printStackTrace();
+            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
+                    .body(response);
+        }
+    }
+
+    @GetMapping("/protected/maps/load")
+    public ResponseEntity<Map<String,Object>> loadMap(@RequestParam String mapName) {
+        HashMap<String,Object> response = new HashMap<>();
+        Optional<IndoorMap> map = mapService.getMapByName(mapName);
+        if (map.isPresent()) {
+            response.put("status","ok");
+            response.put("map",map.get());
+            return ResponseEntity.ok(response);
+        } else {
+            response.put("status","error: map " + mapName + " not found");
+        }
+        return ResponseEntity.ok(response);
+    }
+
+//    @PostMapping
+//    public void registerNewMap(@RequestBody IndoorMap map){
+//        mapService.addNewMap(map);
+//    }
+//
+//    @DeleteMapping(path = "{mapId}")
+//    public void deleteMap(@PathVariable("mapId") Long mapId){
+//        mapService.deleteMap(mapId);
+//    }
+//
+//    @PutMapping(path = "{mapId}")
+//    public void updateMap(
+//            @PathVariable("mapId") Long mapId,
+//            @RequestParam(required = false) String name){
+//
+//        //mapService.updateMap(name);
+//    }
+}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapDrawController.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapDrawController.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,242 +1,0 @@
-package internettehnologii.imaps.backendRender.web.controllers;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import internettehnologii.imaps.backendRender.web.entities.Floor;
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.entities.PublishRequest;
-import internettehnologii.imaps.backendRender.web.service.interfaces.*;
-import internettehnologii.imaps.backendRender.web.util.DTO.*;
-import internettehnologii.imaps.backendRender.web.util.Util;
-import internettehnologii.imaps.backendRender.web.util.json.JsonMapData;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@RestController
-@RequestMapping(path = "/api/protected")
-public class MapDrawController {
-    private final MapService mapService;
-    private final FloorService floorService;
-    private final RoomTypeService roomTypeService;
-    private final UserService userService;
-    private final PublishRequestService publishRequestService;
-
-
-    @Autowired
-    public MapDrawController(MapService mapService, FloorService floorService, RoomTypeService roomTypeService, UserService userService, PublishRequestService publishRequestService) {
-        this.mapService = mapService;
-        this.floorService = floorService;
-        this.roomTypeService = roomTypeService;
-        this.userService = userService;
-        this.publishRequestService = publishRequestService;
-    }
-
-    @GetMapping("/my-maps")
-    public ResponseEntity<List<MapDTO>> getMapsForUser(@RequestParam String username) {
-        try {
-            List<IndoorMap> maps = mapService.getAllMapsForUser(username);
-            List<MapDTO> mapDTOS = Util.convertToMapDTO(maps);
-            return ResponseEntity.ok().body(mapDTOS);
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
-        }
-    }
-
-    @PostMapping("/publish/add")
-    public ResponseEntity<MapDTO> sendPublishRequest(@RequestBody PublishMapDTO formData, @RequestParam String username) {
-
-        System.out.println("FORM DATA: -------------------------------------------- " + formData);
-        try {
-            IMapsUser user = userService.getUser(username);
-
-            MapDTO updatedMap = publishRequestService.addPublishRequest(formData, user);
-
-            return ResponseEntity.ok(updatedMap);
-
-        } catch (Exception e) {
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
-        }
-    }
-
-    @GetMapping("/publish/get")
-    public ResponseEntity<PublishMapDTO> getPublishRequestForMap(@RequestParam String mapName) {
-        PublishRequest pr = publishRequestService.getPublishRequestByMapName(mapName);
-        PublishMapDTO dto = new PublishMapDTO(pr.getId(), pr.getName(), pr.getLastName(), pr.getMap().getName(), pr.getMapType(), pr.getGMapsUrl());
-        return ResponseEntity.ok(dto);
-    }
-
-    @GetMapping("/favourites")
-    public ResponseEntity<List<MapDTO>> getFavouriteMapsForUser(@RequestParam String username) {
-
-        try {
-            IMapsUser user = userService.getUser(username);
-            List<MapDTO> mapDTOS = Util.convertToMapDTO(user.getFavoriteMaps());
-            return ResponseEntity.ok().body(mapDTOS);
-
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
-        }
-    }
-
-    @PutMapping("/my-maps/save")
-    public ResponseEntity<FloorDTO> updateMapData
-            (@RequestBody SaveMapDTO saveMapDTO, @RequestParam String username) {
-
-
-        try {
-            IndoorMap map = mapService.getMapForUser(username, saveMapDTO.getMapName());
-            Floor f = floorService.getFloorByNum(saveMapDTO.getFloorNum(), map);
-
-
-            ObjectMapper objectMapper = new ObjectMapper();
-            String roomTypesJson = objectMapper.writeValueAsString(saveMapDTO.getRoomTypes());
-            JsonMapData jsonMapData = new JsonMapData(saveMapDTO.getShapes().toString(), roomTypesJson);
-
-            System.out.println("ROOM TYPES JSON : " + roomTypesJson);
-            f.setMapData(jsonMapData);
-            floorService.updateFloor(f);
-
-            map.setModifiedAt(LocalDateTime.now());
-
-            System.out.println("UPDATED FLOOR " + f.getFloorNumber());
-
-            FloorDTO floorDTO = new FloorDTO(f.getFloorNumber(), saveMapDTO.getMapName(), f.getMapData().getShapeData());
-
-            return ResponseEntity.ok(floorDTO);
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            e.printStackTrace();
-            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
-        }
-    }
-
-    @PutMapping("/my-maps/create")
-    public ResponseEntity<MapDTO> createMap(@RequestBody CreateMapDTO mapData, @RequestParam String username) {
-        try {
-            mapService.createMap(mapData.getName(), username);
-            IndoorMap map = mapService.getMapForUser(username, mapData.getName());
-            MapDTO mapDTO = new MapDTO(map.getName(),
-                    map.getMapType(),
-                    map.getCreatedAt(),
-                    map.getModifiedAt(),
-                    map.getStatus().name(),
-                    map.getFavouriteCount(),
-                    map.getGmapsUrl());
-            return ResponseEntity.ok(mapDTO);
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
-        }
-
-    }
-
-    @GetMapping("/my-maps/load")
-    public ResponseEntity<List<FloorDTO>> loadPersonalMap(@RequestParam String mapName, @RequestParam String username) {
-        try {
-            IndoorMap map = mapService.getMapForUser(username, mapName);
-            List<Floor> floors = map.getFloors();
-            return ResponseEntity.ok().body(Util.convertToFloorDTO(floors));
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
-        }
-    }
-
-    @PostMapping("/room-types/add")
-    public ResponseEntity<Map<String, Object>> addRoomType(@RequestParam String roomTypeName,
-                                                           @RequestParam String username,
-                                                           @RequestParam String mapName) {
-        try {
-            IndoorMap map = mapService.getMapForUser(username, mapName);
-            roomTypeService.addRoomType(roomTypeName, map);
-            return ResponseEntity.ok(new HashMap<>());
-
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
-        }
-    }
-
-    @GetMapping("/room-types")
-    public ResponseEntity<List<RoomTypeDTO>> getRoomTypesForMap(@RequestParam String mapName, @RequestParam String username) {
-
-        IndoorMap map = mapService.getMapForUser(username, mapName);
-
-        List<RoomTypeDTO> roomTypeDTOS = map.getRoomTypes().stream().map(r -> new RoomTypeDTO(r.getName())).toList();
-        return ResponseEntity.ok(roomTypeDTOS);
-    }
-
-    @DeleteMapping("/floors/delete")
-    public ResponseEntity<Map<String, Object>> deleteFloor(@RequestParam String mapName,
-                                                           @RequestParam int floorNum) {
-        try {
-            floorService.deleteFloor(floorNum, mapName);
-            return ResponseEntity.ok(new HashMap<>());
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
-        }
-    }
-
-    @PutMapping("/floors/add")
-    public ResponseEntity<Map<String, Object>> addFloor(@RequestBody FloorDTO floorDTO) {
-        Map<String, Object> response = new HashMap<>();
-        try {
-            floorService.addFloor(floorDTO.getNum(), floorDTO.getMapName());
-            return ResponseEntity.ok(response);
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(response);
-        }
-    }
-
-
-    @DeleteMapping("/my-maps/delete")
-    public ResponseEntity<Map<String, Object>> deleteMap(
-            @RequestParam String mapName,
-            @RequestParam String username) {
-        Map<String, Object> response = new HashMap<>();
-        try {
-            IndoorMap map = mapService.getMapForUser(username, mapName);
-            mapService.deleteMap(map);
-            response.put("deleted", true);
-            response.put("mapName", mapName);
-            return ResponseEntity.ok(response);
-        } catch (Exception e) {
-            System.out.println("Error during map deletion: " + e.getMessage());
-            e.printStackTrace();
-            response.put("error", "Map not found or does not belong to the user.");
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(response);
-        }
-    }
-
-
-    @PostMapping("/my-maps/edit")
-    public ResponseEntity<MapDTO> updateMapInfo(@RequestBody EditMapDTO editMapDTO) {
-
-
-
-        try {
-
-            MapDTO mapDTO = mapService.updateMapInfo(editMapDTO);
-
-
-            return new ResponseEntity<>(mapDTO, HttpStatus.OK);
-
-        } catch (Exception e) {
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
-        }
-
-    }
-
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapRenderApi.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapRenderApi.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapRenderApi.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,82 @@
+package internettehnologii.imaps.backendRender.web.controllers;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import internettehnologii.imaps.backendRender.graph.MapNode;
+import internettehnologii.imaps.backendRender.graph.MapNodeParser;
+import internettehnologii.imaps.backendRender.graph.RouteGraph;
+import internettehnologii.imaps.backendRender.graph.exceptions.MapParseException;
+import internettehnologii.imaps.backendRender.graph.exceptions.NodeNotFoundException;
+import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
+import internettehnologii.imaps.backendRender.web.service.MapService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import java.util.*;
+
+@RestController
+@RequestMapping("/api")
+@CrossOrigin(origins = "http://localhost:5173/", allowedHeaders = {"Authorization"})
+public class MapRenderApi {
+
+    private String jsonData;
+    private RouteGraph graph;
+
+    private final MapService mapService;
+
+    @Autowired
+    public MapRenderApi(MapService mapService) {
+        this.mapService = mapService;
+    }
+
+    @PostMapping("/protected/render")
+    public ResponseEntity<Map<String, Object>> render(@RequestBody String requestBody) throws Exception {
+        Map<String, Object> response = new HashMap<>();
+        response.put("status", "ok");
+        jsonData = requestBody;
+        try {
+            MapNodeParser parser = new MapNodeParser();
+            List<MapNode> nodes = parser.parseAndCreateNodes(requestBody);
+            graph = new RouteGraph(nodes);
+            System.out.println("=======================\n" + graph);
+        } catch (MapParseException e) {
+            response.put("status", "error: " + e.getMessage());
+        }
+
+        return ResponseEntity.ok(response);
+    }
+
+
+    @GetMapping("/public/navigate")
+    public ResponseEntity<List<MapNode>> navigate(@RequestParam String from, @RequestParam String to) {
+
+        String startNode = from;
+        String endNode = to;
+
+        String roomConnectedToEntranceFrom = graph.findNodeConnectedToEntrance(from);
+        String roomConnectedToEntranceTo = graph.findNodeConnectedToEntrance(to);
+        if (roomConnectedToEntranceFrom != null) {
+            startNode = roomConnectedToEntranceFrom;
+        }
+        if (roomConnectedToEntranceTo != null) {
+            endNode = roomConnectedToEntranceTo;
+        }
+
+        List<MapNode> path = graph.findRoute(startNode, endNode);
+        return ResponseEntity.ok(path);
+    }
+
+    @GetMapping("/public/mapData")
+    public ResponseEntity<String> getMapData() {
+        //tuka povik do baza
+        System.out.println(jsonData);
+        if (jsonData != null && !jsonData.isEmpty()) {
+            return ResponseEntity.ok(jsonData);
+        } else {
+            return ResponseEntity.notFound().build();
+        }
+    }
+
+}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapViewController.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapViewController.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,158 +1,0 @@
-package internettehnologii.imaps.backendRender.web.controllers;
-
-import internettehnologii.imaps.backendRender.graph.MapNode;
-import internettehnologii.imaps.backendRender.graph.RouteGraph;
-import internettehnologii.imaps.backendRender.web.entities.Floor;
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.entities.Report;
-import internettehnologii.imaps.backendRender.web.exceptions.EmptyMapException;
-import internettehnologii.imaps.backendRender.web.service.interfaces.*;
-import internettehnologii.imaps.backendRender.web.util.DTO.FloorDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.MapDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.ReportDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.RoomTypeDTO;
-import internettehnologii.imaps.backendRender.web.util.Util;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.*;
-
-@RestController
-@RequestMapping("/api")
-//@CrossOrigin(origins = "http://localhost:5173/", allowedHeaders = {"Authorization"})
-public class MapViewController {
-
-    private RouteGraph graph;
-
-    private final MapService mapService;
-    private final FloorService floorService;
-    private final GraphService graphService;
-    private final UserService userService;
-    private final ReportService reportService;
-
-    @Autowired
-    public MapViewController(MapService mapService, FloorService floorService, GraphService graphService, UserService userService, ReportService reportService) {
-        this.mapService = mapService;
-        this.floorService = floorService;
-        this.graphService = graphService;
-        this.userService = userService;
-        this.reportService = reportService;
-    }
-
-
-    @GetMapping("/public/maps")
-    public ResponseEntity<List<MapDTO>> loadPublicMaps() {
-        try {
-            List<IndoorMap> maps = mapService.getPublicMaps();
-            List<MapDTO> mapDTOS = Util.convertToMapDTO(maps);
-            return ResponseEntity.ok(mapDTOS);
-        } catch (Exception e) {
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
-        }
-    }
-
-    @GetMapping("/public/room-types")
-    public ResponseEntity<List<RoomTypeDTO>> loadRoomTypesPublic(@RequestParam String mapName) {
-        IndoorMap map = mapService.getPublicMapByName(mapName);
-
-        List<RoomTypeDTO> roomTypeDTOS = map.getRoomTypes().stream().map(r -> new RoomTypeDTO(r.getName())).toList();
-        return ResponseEntity.ok(roomTypeDTOS);
-    }
-
-
-    @GetMapping("/public/navigate")
-    public ResponseEntity<List<MapNode>> navigate(@RequestParam String from, @RequestParam String to) {
-
-        String startNode = from;
-        String endNode = to;
-
-        String roomConnectedToEntranceFrom = graph.findNodeConnectedToEntrance(from);
-        String roomConnectedToEntranceTo = graph.findNodeConnectedToEntrance(to);
-
-        if (roomConnectedToEntranceFrom != null) {
-            startNode = roomConnectedToEntranceFrom;
-        }
-        if (roomConnectedToEntranceTo != null) {
-            endNode = roomConnectedToEntranceTo;
-        }
-
-        List<MapNode> path = graph.findRoute(startNode, endNode);
-        return ResponseEntity.ok(path);
-    }
-
-
-    @GetMapping("/public/load-map")
-    public ResponseEntity<List<FloorDTO>> getMapData(@RequestParam String mapName) {
-        try {
-            IndoorMap map = mapService.getPublicMapByName(mapName);
-            List<Floor> floors  = floorService.getAllFloorsForMap(mapName);
-            this.graph = graphService.construct(floors);
-            return ResponseEntity.ok(Util.convertToFloorDTO(map.getFloors())); // tuka re
-        } catch (EmptyMapException e) {
-            e.printStackTrace();
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
-        }
-    }
-
-    @GetMapping("/protected/load-map")
-    public ResponseEntity<List<FloorDTO>> getMapDataProtected(@RequestParam String mapName, @RequestParam String username) {
-        try {
-            IndoorMap map = mapService.getMapForUser(username, mapName);// namesto ova samo proverka dali postoet dadena mapa za user, za da ne morat za dzabe mapa promenliva da se cuvat
-            List<Floor> floors  = floorService.getAllFloorsForMap(mapName);
-            this.graph = graphService.construct(floors);
-
-            return ResponseEntity.ok(Util.convertToFloorDTO(map.getFloors())); // tuka return site floors trebit
-        } catch (Exception e) {
-            e.printStackTrace();
-            System.out.println(e.getMessage());
-            return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
-        }
-    }
-
-    @PostMapping("/protected/favourites/add")
-    public ResponseEntity<Map<String,Object>> addFavourites(@RequestParam String username, @RequestParam String mapName) {
-        try{
-            IndoorMap map = mapService.getMapByName(mapName);
-            IMapsUser user = userService.getUser(username);
-            userService.addFavoriteMap(user, map);
-            return ResponseEntity.ok(new HashMap<>());
-        } catch (Exception e){
-            e.printStackTrace();
-            return ResponseEntity.status(404).body(new HashMap<>());
-        }
-    }
-    @DeleteMapping("/protected/favourites/delete")
-    public ResponseEntity<Map<String,Object>> removeFavourites(@RequestParam String username, @RequestParam String mapName) {
-        try{
-            IndoorMap map = mapService.getMapByName(mapName);
-            IMapsUser user = userService.getUser(username);
-            userService.removeFavoriteMap(user, map);
-            return ResponseEntity.ok(new HashMap<>());
-        } catch (Exception e){
-            e.printStackTrace();
-            return ResponseEntity.status(404).body(new HashMap<>());
-        }
-    }
-    @PostMapping("/protected/reports/create")
-    public ResponseEntity<Map<String, Object>> createReport(
-            @RequestBody ReportDTO reportBody) {
-        try {
-            IMapsUser user = userService.getUser(reportBody.getUsername());
-            IndoorMap map = mapService.getMapByName(reportBody.getMapName());
-            Report report = new Report(user, map, reportBody.getSubject(), reportBody.getContent());
-            reportService.saveReport(report);
-
-            Map<String, Object> response = new HashMap<>();
-            return ResponseEntity.ok(response);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.status(404).body(new HashMap<>());
-        }
-    }
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/OAuthController.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/OAuthController.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,141 +1,0 @@
-package internettehnologii.imaps.backendRender.web.controllers;
-
-import internettehnologii.imaps.backendRender.web.config.OAuthConfig;
-import internettehnologii.imaps.backendRender.web.service.interfaces.OAuthService;
-import internettehnologii.imaps.backendRender.web.service.interfaces.StateStore;
-import internettehnologii.imaps.backendRender.web.util.DTO.UserAuthSuccessDTO;
-import internettehnologii.imaps.backendRender.web.util.OAuthProviders;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.http.*;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.client.RestTemplate;
-
-import java.net.URI;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
-import java.util.*;
-
-@Controller
-@RequestMapping("/api/oauth")
-public class OAuthController {
-
-    private final StateStore stateStore;
-
-    private final OAuthService githubOAuthService;
-    private final OAuthService googleOAuthService;
-    private final OAuthConfig oAuthConfig;
-
-    private final RestTemplate restTemplate = new RestTemplate();
-
-    public OAuthController(StateStore stateStore,
-                           @Qualifier("githubOAuth") OAuthService githubOAuthService,
-                           @Qualifier("googleOAuth") OAuthService googleOAuthService,
-                           OAuthConfig oAuthConfig) {
-
-        this.stateStore = stateStore;
-        this.githubOAuthService = githubOAuthService;
-        this.googleOAuthService = googleOAuthService;
-        this.oAuthConfig = oAuthConfig;
-    }
-
-
-    @GetMapping("/state")
-    public ResponseEntity<String> getState() {
-        String uuid = UUID.randomUUID().toString();
-        stateStore.storeState(uuid);
-        return ResponseEntity.ok(uuid);
-    }
-
-
-    @GetMapping("/callback/github")
-    public ResponseEntity<UserAuthSuccessDTO> callbackGithub(@RequestParam("code") String code,
-                                                             @RequestParam("state") String state) {
-
-        if(!stateStore.isValidState(state))
-            throw new InvalidStateException("State is not valid: " + state);
-
-
-        String accessToken = exchangeCodeForAccessToken(code,OAuthProviders.GITHUB.name());
-        String userInfo = fetchUserInfo(accessToken,OAuthProviders.GITHUB.name());
-        System.out.println("User info: " + userInfo);
-        UserAuthSuccessDTO userAuthSuccessDTO = githubOAuthService.login(userInfo,accessToken);
-
-
-        String encodedUsrname = URLEncoder.encode(userAuthSuccessDTO.getUsername(), StandardCharsets.UTF_8);
-        String encodedToken = URLEncoder.encode(userAuthSuccessDTO.getToken(), StandardCharsets.UTF_8);
-
-        HttpHeaders headers = new HttpHeaders();
-        headers.setLocation(URI.create("https://imaps.mk/auth-callback?token=" + encodedToken + "&username=" + encodedUsrname));
-        headers.add("Set-Cookie", "Authorization=Bearer " + userAuthSuccessDTO + "; HttpOnly; Path=/; SameSite=Strict");
-
-        return new ResponseEntity<>(userAuthSuccessDTO,headers, HttpStatus.FOUND);
-    }
-    @GetMapping("/callback/google")
-    public ResponseEntity<UserAuthSuccessDTO> callbackGoogle(@RequestParam("code") String code,
-                                                             @RequestParam("state") String state){
-
-        if(!stateStore.isValidState(state))
-            throw new InvalidStateException("State is not valid: " + state);
-
-        String accessToken = exchangeCodeForAccessToken(code,OAuthProviders.GOOGLE.name());
-        String userInfo = fetchUserInfo(accessToken,OAuthProviders.GOOGLE.name());
-        UserAuthSuccessDTO userAuthSuccessDTO = googleOAuthService.login(userInfo,accessToken);
-
-        String encodedUsrname = URLEncoder.encode(userAuthSuccessDTO.getUsername(), StandardCharsets.UTF_8);
-        String encodedToken = URLEncoder.encode(userAuthSuccessDTO.getToken(), StandardCharsets.UTF_8);
-
-        HttpHeaders headers = new HttpHeaders();
-        headers.setLocation(URI.create("https://imaps.mk/auth-callback?token=" + encodedToken + "&username=" + encodedUsrname));
-        headers.add("Set-Cookie", "Authorization=Bearer " + userAuthSuccessDTO + "; HttpOnly; Path=/; SameSite=Strict");
-        return new ResponseEntity<>(userAuthSuccessDTO,headers, HttpStatus.FOUND);
-    }
-
-    Map<String,String> getBodyByProvider(String provider,String code) {
-        Map<String, String> body = new HashMap<>();
-        if(provider.equals(OAuthProviders.GOOGLE.name())){
-            body.put("client_id", oAuthConfig.getGOOGLE_CLIENT_ID());
-            body.put("client_secret", oAuthConfig.getGOOGLE_CLIENT_SECRET());
-            body.put("code", code);
-            body.put("redirect_uri", oAuthConfig.getGOOGLE_REDIRECT_URI());
-            body.put("grant_type", "authorization_code");
-        } else {
-            body.put("client_id", oAuthConfig.getGITHUB_CLIENT_ID());
-            body.put("client_secret", oAuthConfig.getGITHUB_CLIENT_SECRET());
-            body.put("code", code);
-            body.put("redirect_uri", oAuthConfig.getGITHUB_REDIRECT_URI());
-            body.put("scope","user");
-        }
-
-        return body;
-    }
-
-    private String exchangeCodeForAccessToken(String code,String provider) {
-        HttpHeaders headers = new HttpHeaders();
-        headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
-
-        String url = Objects.equals(provider, OAuthProviders.GOOGLE.name()) ? oAuthConfig.getGOOGLE_TOKEN_URL() : oAuthConfig.getGITHUB_TOKEN_URL();
-
-        Map<String, String> body = getBodyByProvider(provider,code);
-        HttpEntity<Map<String,String>> request = new HttpEntity<>(body,headers);
-
-        ResponseEntity<Map> response = restTemplate.postForEntity(url, request, Map.class);
-        Map<String,Object> respBody = response.getBody();
-
-        return (String) respBody.get("access_token");
-    }
-
-    private String fetchUserInfo(String accessToken,String provider){
-        String url = Objects.equals(provider, OAuthProviders.GOOGLE.name()) ? oAuthConfig.getGOOGLE_USER_URL() : oAuthConfig.getGITHUB_USER_URL();
-
-        HttpHeaders headers = new HttpHeaders();
-        headers.setBearerAuth(accessToken);
-        HttpEntity<Void> request = new HttpEntity<>(headers);
-        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
-
-        return response.getBody();
-    }
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/UserController.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/UserController.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/UserController.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,40 @@
+package internettehnologii.imaps.backendRender.web.controllers;
+
+import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
+import internettehnologii.imaps.backendRender.web.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+//test klasa
+@RestController
+@RequestMapping(path = "api/v1/user")
+public class UserController {
+    private final UserService userService;
+
+    @Autowired
+    public UserController(UserService userService){
+        this.userService = userService;
+    }
+
+    @GetMapping
+    public List<IMapsUser> getUsers(){
+        return userService.getUsers();
+    }
+
+
+    @DeleteMapping(path = "{userId}")
+    public void deleteUser(@PathVariable("userId") Long userId){
+        userService.deleteUser(userId);
+    }
+
+    @PutMapping(path = "{userId}")
+    public void updateUser(
+            @PathVariable("userId") Long userId,
+            @RequestParam(required = false) String name,
+            @RequestParam(required = false) String email){
+        userService.updateUser(userId, name, email);
+    }
+}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/Floor.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/Floor.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,38 +1,0 @@
-package internettehnologii.imaps.backendRender.web.entities;
-
-import internettehnologii.imaps.backendRender.web.util.json.JsonMapData;
-import jakarta.persistence.*;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-import org.hibernate.annotations.JdbcTypeCode;
-import org.hibernate.type.SqlTypes;
-
-import java.time.LocalDateTime;
-
-@Entity
-@Table(name = "floors")
-@Getter @Setter
-@IdClass(FloorId.class)
-@ToString
-public class Floor {
-
-    @JdbcTypeCode(SqlTypes.JSON)
-    @Column(name = "map_data")
-    private JsonMapData mapData;
-
-    @Id
-    @Column(name = "num")
-    private int floorNumber;
-
-    @Id
-    @ManyToOne
-    @JoinColumn(name = "map_id",referencedColumnName = "id", nullable = false)
-    private IndoorMap indoorMap;
-
-    @PreUpdate
-    public void preUpdate() {
-        indoorMap.setModifiedAt(LocalDateTime.now());
-    }
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/FloorId.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/FloorId.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,27 +1,0 @@
-package internettehnologii.imaps.backendRender.web.entities;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-import java.util.Objects;
-
-@Getter
-@Setter
-public class FloorId implements Serializable {
-    private int indoorMap;
-    private int floorNumber;
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        FloorId floorId = (FloorId) o;
-        return indoorMap == floorId.indoorMap && floorNumber == floorId.floorNumber;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(indoorMap, floorNumber);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/IMapsUser.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/IMapsUser.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/IMapsUser.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,52 +1,30 @@
 package internettehnologii.imaps.backendRender.web.entities;
-import internettehnologii.imaps.backendRender.web.entities.RBA.Role;
 import jakarta.persistence.*;
 import lombok.Getter;
 import lombok.Setter;
 
-import java.time.LocalDateTime;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Set;
-
+@Getter
 @Entity
 @Table(name = "users")
-@Getter @Setter
 public class IMapsUser {
     @Id
-    @SequenceGenerator(name = "users_id_seq", sequenceName = "users_id_seq", allocationSize = 1)
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "users_id_seq")
+    @SequenceGenerator(
+            name = "users_id_seq",
+            sequenceName = "users_id_seq",
+            allocationSize = 1
+    )
+    @GeneratedValue(
+            strategy = GenerationType.SEQUENCE,
+            generator = "users_id_seq"
+    )
     private int id;
+    @Setter
+    @Column(name = "name")
     private String username;
+    @Setter
     private String email;
+    @Getter @Setter
     private String password;
 
-    @Column(name = "created_at")
-    private LocalDateTime createdAt;
-
-    @Column(name = "last_login_at")
-    private LocalDateTime lastLoginAt;
-
-    @Column(name = "profile_image_url")
-    private String profileImageUrl;
-    @Column(name = "oauth_provider")
-    private String OAuthProvider;
-    @Column(name = "oauth_id")
-    private String oAuthId;
-    @Column(name = "access_token")
-    private String accessToken;
-    @Column(name = "refresh_token")
-    private String refreshToken;
-
-    @ManyToMany
-    @JoinTable(
-            name = "favourites",
-            joinColumns = @JoinColumn(name = "user_id"),
-            inverseJoinColumns = @JoinColumn(name = "map_id")
-    )
-    private Set<IndoorMap> favoriteMaps;
-
-    @ManyToMany(mappedBy = "users",cascade = CascadeType.PERSIST)
-    private Set<Role> roles = new HashSet<>();
 
     public IMapsUser() {}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/IndoorMap.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/IndoorMap.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/IndoorMap.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,85 +1,129 @@
 package internettehnologii.imaps.backendRender.web.entities;
-import internettehnologii.imaps.backendRender.web.util.DTO.MapDTO;
+import internettehnologii.imaps.backendRender.web.security.json.DataJson;
 import jakarta.persistence.*;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import org.hibernate.annotations.JdbcTypeCode;
+import org.hibernate.type.SqlTypes;
 
 @Entity
-@Getter @Setter
 @Table(name = "maps")
 public class IndoorMap {
     @Id
-    @SequenceGenerator(name = "maps_id_seq", sequenceName = "maps_id_seq", allocationSize = 1)
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "maps_id_seq")
+    @SequenceGenerator(
+            name = "map_id_seq",
+            sequenceName = "map_id_seq",
+            allocationSize = 1
+    )
+    @GeneratedValue(
+            strategy = GenerationType.SEQUENCE,
+            generator = "map_id_seq"
+    )
     private Integer id;
+    private String name;
 
-    private String name = "";
+    @JdbcTypeCode(SqlTypes.JSON)
+    private DataJson mapData; //json
 
-    @Column(name = "gmaps_url")
-    private String gmapsUrl = "";
+    @JdbcTypeCode(SqlTypes.JSON)
+    private DataJson graphData; //json
 
-    @Enumerated(EnumType.STRING)
-    private MAP_STATUS status;
-
-    @Column(name = "published_at")
-    private LocalDateTime publishedAt;
-
-    @Column(name = "created_at")
-    private LocalDateTime createdAt;
-
-    @Column(name = "modified_at")
-    private LocalDateTime modifiedAt;
-
-    @Column(name = "map_type")
-    private String mapType;
-
-    @Column(name = "image_url")
-    private String imageUrl;
-    @Column(name = "is_published")
-    private Boolean isPublished;
+    private boolean isPublic;
+    private String url;
 
 
-    @ManyToOne
-    @JoinColumn(name = "usr_id",referencedColumnName = "id", nullable = false)
-    private IMapsUser user;
-
-    @OneToMany(mappedBy = "indoorMap")
-    private List<RoomType> roomTypes = new ArrayList<>();
-    @OneToMany(mappedBy = "indoorMap")
-    private List<Floor> floors = new ArrayList<>();
-    @ManyToMany(mappedBy = "favoriteMaps")
-    private Set<IMapsUser> favoritedBy = new HashSet<>();
-
-    @PrePersist
-    protected void onCreate(){
-        this.createdAt = LocalDateTime.now();
-        this.status = MAP_STATUS.PRIVATE;
+    public IndoorMap(String name, DataJson mapData, boolean isPublic, String url) {
+        this.name = name;
+        this.mapData = mapData;
+        this.isPublic = isPublic;
+        this.url = url;
     }
 
-    public int getFavouriteCount(){
-        return this.favoritedBy.size();
+    public IndoorMap() {
+
     }
 
-    @PreUpdate
-    protected void onUpdate(){
-        this.modifiedAt = LocalDateTime.now();
+    public IndoorMap(Integer id, String name, DataJson mapData, boolean isPublic, String url) {
+        this.id = id;
+        this.name = name;
+        this.mapData = mapData;
+        this.isPublic = isPublic;
+        this.url = url;
     }
 
-
-    public MapDTO toMapDTO(){
-        return  new MapDTO(getName(),
-                getMapType(),
-                getCreatedAt(),
-                getModifiedAt(),
-                getStatus().name(),
-                getFavouriteCount(),
-                getGmapsUrl());
+    public IndoorMap(Integer id, String name, DataJson mapData, DataJson graphData, boolean isPublic, String url) {
+        this.id = id;
+        this.name = name;
+        this.mapData = mapData;
+        this.graphData = graphData;
+        this.isPublic = isPublic;
+        this.url = url;
     }
 
+    public IndoorMap(String name, DataJson mapData, DataJson graphData, boolean isPublic, String url) {
+        this.name = name;
+        this.mapData = mapData;
+        this.graphData = graphData;
+        this.isPublic = isPublic;
+        this.url = url;
+    }
+
+    public IndoorMap(String name, DataJson dataJson) {
+        this.name = name;
+        this.mapData = dataJson;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public DataJson getMapData() {
+        return mapData;
+    }
+
+    public DataJson getGraphData() {
+        return graphData;
+    }
+
+    public boolean isPublic() {
+        return isPublic;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setMapData(DataJson mapData) {
+        this.mapData = mapData;
+    }
+
+    public void setGraphData(DataJson graphData) {
+        this.graphData = graphData;
+    }
+
+    public void setPublic(boolean aPublic) {
+        isPublic = aPublic;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    @Override
+    public String toString() {
+        return "Map{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", mapData='" + mapData + '\'' +
+                ", graphData='" + graphData + '\'' +
+                ", isPublic=" + isPublic +
+                ", url='" + url + '\'' +
+                '}';
+    }
 }
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/MAP_STATUS.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/MAP_STATUS.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.entities;
-
-public enum MAP_STATUS {
-    PUBLIC,
-    PRIVATE,
-    PENDING,
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/PublishRequest.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/PublishRequest.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,67 +1,0 @@
-package internettehnologii.imaps.backendRender.web.entities;
-
-import jakarta.persistence.*;
-import lombok.Getter;
-import lombok.Setter;
-
-@Entity
-@Table(name = "publish_form")
-@Getter @Setter
-public class PublishRequest {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Integer id;
-    private String name;
-    @Column(name = "last_name")
-    private String lastName;
-    @Column(name = "gmaps_url")
-    private String gMapsUrl;
-    @Column(name = "map_type")
-    private String mapType;
-    private boolean resolved;
-
-    @ManyToOne
-    @JoinColumn(name = "user_id",referencedColumnName = "id")
-    private IMapsUser user;
-
-    @ManyToOne
-    @JoinColumn(name = "map_id",referencedColumnName = "id")
-    private IndoorMap map;
-
-    public PublishRequest(String name, String lastName, String googleMapsUrl, String mapType) {
-        this.name = name;
-        this.lastName = lastName;
-        this.gMapsUrl = googleMapsUrl;
-        this.mapType = mapType;
-
-    }
-    public PublishRequest() {
-        this.id = -1;
-        this.name = "";
-        this.lastName = "";
-        this.gMapsUrl = "";
-        this.mapType = "";
-        this.resolved = false;
-        this.map = new IndoorMap();
-    }
-
-    public PublishRequest(int id, String name, String lastName, String googleMapsUrl, String mapType) {
-        this.id = id;
-        this.name = name;
-        this.lastName = lastName;
-        this.gMapsUrl = googleMapsUrl;
-        this.mapType = mapType;
-    }
-
-    @Override
-    public String toString() {
-        return "PublishRequest{" +
-                "id=" + id +
-                ", name='" + name + '\'' +
-                ", lastName='" + lastName + '\'' +
-                ", gMapsUrl='" + gMapsUrl + '\'' +
-                ", mapType='" + mapType + '\'' +
-                ", resolved=" + resolved +
-                '}';
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/RBA/Permission.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/RBA/Permission.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,26 +1,0 @@
-package internettehnologii.imaps.backendRender.web.entities.RBA;
-
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import jakarta.persistence.*;
-
-import java.util.HashSet;
-import java.util.Set;
-
-@Entity
-@Table(name = "permissions")
-public class Permission {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private int id;
-
-    @Column(nullable = false,unique = true)
-    private String name;
-
-    @ManyToMany
-    @JoinTable(
-            name = "roles_permissions",
-            joinColumns = @JoinColumn(name = "permission_id"),
-            inverseJoinColumns = @JoinColumn(name = "role_id")
-    )
-    private Set<Role> roles = new HashSet<>();
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/RBA/Role.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/RBA/Role.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package internettehnologii.imaps.backendRender.web.entities.RBA;
-
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import jakarta.persistence.*;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-import java.util.HashSet;
-import java.util.Set;
-
-@Entity
-@Table(name = "roles")
-@Getter @Setter
-public class Role {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private int id;
-
-    @Column(nullable = false,unique = true)
-    private String name;
-
-    @ManyToMany
-    @JoinTable(
-            name = "users_roles",
-            joinColumns = @JoinColumn(name = "role_id"),
-            inverseJoinColumns = @JoinColumn(name = "user_id")
-    )
-    private Set<IMapsUser> users = new HashSet<>();
-
-    @ManyToMany(mappedBy = "roles")
-    private Set<Permission> permissions = new HashSet<>();
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/Report.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/Report.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,46 +1,0 @@
-package internettehnologii.imaps.backendRender.web.entities;
-
-import jakarta.persistence.*;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.time.LocalDateTime;
-
-@Entity
-@Table(name = "reports")
-@Getter
-@Setter
-public class Report {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private int id;
-
-    @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "user_id", nullable = false)
-    private IMapsUser user;
-
-    @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "map_id", nullable = false)
-    private IndoorMap map;
-
-    @Column(nullable = false)
-    private String subject;
-
-    @Column(nullable = false, columnDefinition = "TEXT")
-    private String content;
-
-    @Column(name = "created_at", nullable = false)
-    private LocalDateTime createdAt;
-
-    public Report() {
-        this.createdAt = LocalDateTime.now();
-    }
-
-    public Report(IMapsUser user, IndoorMap map, String subject, String content) {
-        this.user = user;
-        this.map = map;
-        this.subject = subject;
-        this.content = content;
-        this.createdAt = LocalDateTime.now();
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/RoomType.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/RoomType.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,29 +1,0 @@
-package internettehnologii.imaps.backendRender.web.entities;
-
-import jakarta.persistence.*;
-import lombok.Getter;
-import lombok.Setter;
-
-@Entity
-@Table(name = "room_types")
-@Getter
-@Setter
-public class RoomType {
-    @Id
-    @SequenceGenerator(name = "room_types_id_seq", sequenceName = "room_types_id_seq", allocationSize = 1)
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "room_types_id_seq")
-    private int id;
-    private String name;
-    @ManyToOne
-    @JoinColumn(name = "map_id")
-    private IndoorMap indoorMap;
-
-    public RoomType(String name, IndoorMap map) {
-        this.name = name;
-        this.indoorMap = map;
-    }
-
-    public RoomType() {
-
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/EmailTakenException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/EmailTakenException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.exceptions;
-
-public class EmailTakenException extends RuntimeException {
-    public EmailTakenException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/EmptyMapException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/EmptyMapException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.exceptions;
-
-public class EmptyMapException extends RuntimeException {
-    public EmptyMapException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/FloorAlreadyExistsException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/FloorAlreadyExistsException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.exceptions;
-
-public class FloorAlreadyExistsException extends RuntimeException {
-    public FloorAlreadyExistsException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/FloorNotFoundException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/FloorNotFoundException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.exceptions;
-
-public class FloorNotFoundException extends RuntimeException {
-    public FloorNotFoundException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/InvalidParametersException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/InvalidParametersException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.exceptions;
-
-public class InvalidParametersException extends RuntimeException {
-    public InvalidParametersException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/MapNameTakenException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/MapNameTakenException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.exceptions;
-
-public class MapNameTakenException extends RuntimeException {
-    public MapNameTakenException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/MapNotFoundException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/MapNotFoundException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.exceptions;
-
-public class MapNotFoundException extends RuntimeException {
-    public MapNotFoundException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/UserNotFoundException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/UserNotFoundException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.exceptions;
-
-public class UserNotFoundException extends RuntimeException {
-    public UserNotFoundException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/UsernameTakenException.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/UsernameTakenException.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.exceptions;
-
-public class UsernameTakenException extends RuntimeException {
-    public UsernameTakenException(String message) {
-        super(message);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/FloorRepository.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/FloorRepository.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,27 +1,0 @@
-package internettehnologii.imaps.backendRender.web.repo;
-
-import internettehnologii.imaps.backendRender.web.entities.Floor;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.util.json.JsonMapData;
-import jakarta.transaction.Transactional;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-
-import java.util.List;
-import java.util.Optional;
-
-public interface FloorRepository extends JpaRepository<Floor, Integer> {
-
-    @Query("FROM Floor f WHERE f.indoorMap.id = ?1")
-    Optional<List<Floor>> getAllFloorsForMapById(Integer indoorMapId);
-
-    @Query("FROM Floor f WHERE f.floorNumber = ?1 AND f.indoorMap = ?2")
-    Optional<Floor> findFloorByFloorNumber(Integer floorNumber, IndoorMap indoorMap);
-
-    @Query("SELECT COUNT(f) > 0 FROM Floor f WHERE f.floorNumber = ?1 AND f.indoorMap = ?2")
-    boolean existsFloorForMap(Integer floorNumber, IndoorMap indoorMap);
-    void deleteFloorByFloorNumberAndIndoorMap(Integer floorNumber,IndoorMap indoorMap);
-
-    Optional<Floor> findFloorByFloorNumberAndIndoorMap(Integer floorNumber,IndoorMap indoorMap);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/MapRepository.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/MapRepository.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/MapRepository.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,14 +1,11 @@
 package internettehnologii.imaps.backendRender.web.repo;
 
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
 import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.entities.MAP_STATUS;
-import internettehnologii.imaps.backendRender.web.util.json.JsonMapData;
+import internettehnologii.imaps.backendRender.web.security.json.DataJson;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
-import java.util.List;
 import java.util.Optional;
 
@@ -16,4 +13,13 @@
 public interface MapRepository extends JpaRepository<IndoorMap, Long> {
 
+//    @Modifying
+//    @Query(nativeQuery = true,
+//            value = "UPDATE maps SET map_data = ?2 WHERE name = ?1")
+//    void updateMapData(IndoorMap map);
+//
+//    @Modifying
+//    @Query(nativeQuery = true,
+//            value = "INSERT INTO maps(name,map_data) VALUES (?1, ?2)")
+//    void insertMapData(String name, DataJson data);
 
     @Query(nativeQuery = true,
@@ -21,21 +27,8 @@
     Optional<IndoorMap> findMapByName(String name);
 
-    @Query("FROM IndoorMap m WHERE m.status = ?1")
-    Optional<List<IndoorMap>> findAllByStatus(MAP_STATUS status);
-
-    @Query("FROM IndoorMap m WHERE m.user.id = ?1")
-    Optional<List<IndoorMap>> findAllMapsForUser(long userId);
-
-    @Query("FROM IndoorMap m WHERE m.status = 'PUBLIC'")
-    Optional<List<IndoorMap>> findAllPublicMaps();
-
-    @Query("FROM IndoorMap m WHERE m.user = ?1 AND m.id = ?2")
-    Optional<IndoorMap> getMapForUser(IMapsUser user, int mapId);
-
-    boolean existsByName(String name);
+    @Query(nativeQuery = true,
+            value = "SELECT maps.map_data FROM map WHERE name = ?1")
+    Optional<DataJson> findMapDataByName(String name);
 
 
-    Optional<IndoorMap> getIndoorMapByName(String name);
-    @Query(value = "FROM IndoorMap m where m.name = ?1 and m.status = ?2")
-    Optional<IndoorMap> getIndoorMapByNameAndStatus(String name, MAP_STATUS status);
 }
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/PublishRequestRepository.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/PublishRequestRepository.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package internettehnologii.imaps.backendRender.web.repo;
-
-import internettehnologii.imaps.backendRender.web.entities.PublishRequest;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-import java.util.Optional;
-
-@Repository
-public interface PublishRequestRepository extends JpaRepository<PublishRequest, Integer> {
-    @Query(value = "FROM PublishRequest p WHERE p.resolved = false")
-    Optional<List<PublishRequest>> findAllNotResolved();
-
-    @Query(value = "FROM PublishRequest pr WHERE pr.map.name = ?1")
-    Optional<PublishRequest> findByMapName(String mapName);
-
-    boolean existsByMapName(String mapName);
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/ReportRepository.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/ReportRepository.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,9 +1,0 @@
-package internettehnologii.imaps.backendRender.web.repo;
-
-import internettehnologii.imaps.backendRender.web.entities.Report;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface ReportRepository extends JpaRepository<Report, Integer> {
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/RoleRepository.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/RoleRepository.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package internettehnologii.imaps.backendRender.web.repo;
-
-import internettehnologii.imaps.backendRender.web.entities.RBA.Role;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-import java.util.Optional;
-
-@Repository
-public interface RoleRepository extends JpaRepository<Role, Integer> {
-    Optional<Role> findByName(String name);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/RoomTypeRepository.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/RoomTypeRepository.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,10 +1,0 @@
-package internettehnologii.imaps.backendRender.web.repo;
-
-import internettehnologii.imaps.backendRender.web.entities.RoomType;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface RoomTypeRepository extends JpaRepository<RoomType, Integer> {
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/UserRepository.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/UserRepository.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/UserRepository.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -6,9 +6,10 @@
 import org.springframework.stereotype.Repository;
 
-import java.util.List;
 import java.util.Optional;
 
 @Repository
 public interface UserRepository extends JpaRepository<IMapsUser, Long> {
+
+    // za da testiras queries, kaj so imat specijalen karakter primer @, moras vo navodnici da klajs.
 
     @Query(nativeQuery = true,
@@ -17,17 +18,10 @@
 
     @Query(nativeQuery = true,
-    value = "SELECT * FROM users u WHERE u.username = ?1 LIMIT 1")
-    Optional<IMapsUser> findUserByName(String usrname);
-
-    @Query(value = "FROM IMapsUser u WHERE u.username = ?1 OR u.email = ?1")
-    Optional<IMapsUser> getIMapsUserByUsernameOrEmail(String usernameOrEmail);
+    value = "SELECT * FROM users u WHERE u.name = ?1 LIMIT 1")
+    IMapsUser findUserByName(String usrname);
 
     @Query(nativeQuery = true,
     value = "SELECT * FROM users u WHERE u.id= ?1")
-    Optional<IMapsUser> getUserById(Long usrid);
-    @Query(value = "FROM IMapsUser u WHERE u.oAuthId = ?1")
-    Optional<IMapsUser> getUserByOAuthId(String oauthid);
-    @Query(nativeQuery = true,
-            value = "SELECT u.* FROM users u LEFT JOIN users_roles ur on u.id = ur.user_id where ur.role_id = 3;")
-    Optional<List<IMapsUser>> getAllAdmins();
+    IMapsUser getUserById(Long usrid);
+
 }
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/CorsConfigurationImpl.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/CorsConfigurationImpl.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,57 +1,0 @@
-package internettehnologii.imaps.backendRender.web.security;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Primary;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.CorsConfigurationSource;
-import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-
-@Component
-public class CorsConfigurationImpl {
-    private final CorsConfigurationSource corsConfigurationSource;
-
-    public CorsConfigurationImpl(CorsConfigurationSource corsConfigurationSource) {
-        this.corsConfigurationSource = corsConfigurationSource;
-    }
-
-    @Bean
-    @Profile("dev")
-    @Primary
-    public CorsConfigurationSource corsConfigurationSourceDev() {
-        CorsConfiguration configuration = new CorsConfiguration();
-        configuration.addAllowedOrigin("http://localhost:5173");
-        configuration.addAllowedMethod("*");
-        configuration.addAllowedHeader("*");
-        configuration.addAllowedHeader("*");
-        configuration.setAllowCredentials(true);
-
-        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-        source.registerCorsConfiguration("/**", configuration);
-
-        return source;
-    }
-
-    @Bean
-    @Profile("prod")
-    @Primary
-    public CorsConfigurationSource corsConfigurationSourceProd() {
-        CorsConfiguration configuration = new CorsConfiguration();
-        configuration.addAllowedOrigin("http://localhost");
-        configuration.addAllowedOrigin("https://imaps.mk");
-        configuration.addAllowedOrigin("https://www.imaps.mk");
-        configuration.addAllowedMethod("*");
-        configuration.addAllowedHeader("*");
-        configuration.setAllowCredentials(true);
-
-        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-        source.registerCorsConfiguration("/**", configuration);
-
-        return source;
-    }
-
-    public CorsConfigurationSource getCorsConfigurationSource() {
-        return corsConfigurationSource;
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/JwtFilter.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/JwtFilter.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/JwtFilter.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,6 +1,6 @@
 package internettehnologii.imaps.backendRender.web.security;
 
-import internettehnologii.imaps.backendRender.web.service.impl.JWTService;
-import internettehnologii.imaps.backendRender.web.service.impl.MapUserDetailsService;
+import internettehnologii.imaps.backendRender.web.service.JWTService;
+import internettehnologii.imaps.backendRender.web.service.MapUserDetailsService;
 import jakarta.servlet.FilterChain;
 import jakarta.servlet.ServletException;
@@ -37,9 +37,5 @@
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
         System.out.println(request.getRequestURI());
-        if(
-                request.getRequestURI().contains("/login") ||
-                        request.getRequestURI().contains("/register") ||
-                        request.getMethod().equals("OPTIONS")
-        ) {
+        if(request.getRequestURI().contains("/login") || request.getRequestURI().contains("/register")) {
             filterChain.doFilter(request, response);
         }
@@ -56,6 +52,5 @@
                     UserDetails userDetails = context.getBean(MapUserDetailsService.class).loadUserByUsername(username);
                     if(jwtService.validateToken(token,userDetails)){
-                        UsernamePasswordAuthenticationToken upAuthToken = new UsernamePasswordAuthenticationToken(userDetails, null, jwtService.getAuthorities(token));
-                        System.out.println("TOKEN CLAIMS: " + jwtService.getAuthorities(token));
+                        UsernamePasswordAuthenticationToken upAuthToken = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
                         upAuthToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
                         SecurityContextHolder.getContext().setAuthentication(upAuthToken);
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/WebSecurityConfig.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/WebSecurityConfig.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/WebSecurityConfig.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,10 +1,8 @@
 package internettehnologii.imaps.backendRender.web.security;
 
-import internettehnologii.imaps.backendRender.web.service.impl.MapUserDetailsService;
+import internettehnologii.imaps.backendRender.web.service.MapUserDetailsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-import org.springframework.context.annotation.Profile;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.AuthenticationProvider;
@@ -17,5 +15,4 @@
 import org.springframework.security.config.http.SessionCreationPolicy;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.web.SecurityFilterChain;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
@@ -31,14 +28,6 @@
     private MapUserDetailsService userDetailsService;
 
-    private final PasswordEncoder passwordEncoder;
-
     @Autowired
     private JwtFilter jwtFilter;
-    private final CorsConfigurationImpl corsConfiguration;
-
-    public WebSecurityConfig(PasswordEncoder passwordEncoder, CorsConfigurationImpl corsConfiguration) {
-        this.passwordEncoder = passwordEncoder;
-        this.corsConfiguration = corsConfiguration;
-    }
 
     @Bean
@@ -46,13 +35,12 @@
          http
                  .csrf(AbstractHttpConfigurer::disable)
-                 .cors(cors -> cors.configurationSource(corsConfiguration.corsConfigurationSourceDev()))
-                 .authorizeHttpRequests(request ->
-                         request
-                                 .requestMatchers("/protected/**").hasRole("USER")
-                                 .requestMatchers("/api/admin/**").hasRole("ADMIN")
-                                 .anyRequest().permitAll())
-
+                 .cors(Customizer.withDefaults())
+                 .authorizeHttpRequests(request -> request.requestMatchers("/api/auth/**","api/public/**")
+                         .permitAll()
+                         .anyRequest()
+                         .authenticated())
                  .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
                  .addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class);
+         
 
         return http.build();
@@ -60,10 +48,26 @@
 
 
+    @Bean
+    public CorsConfigurationSource corsConfigurationSource() {
+        CorsConfiguration configuration = new CorsConfiguration();
+        configuration.addAllowedOrigin("http://localhost:5173/");
+        configuration.addAllowedMethod("*");
+        configuration.addAllowedHeader("*");
+        configuration.addAllowedHeader("*");
+        configuration.setAllowCredentials(true);
 
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", configuration);
+
+        return source;
+    }
+
+
+    //TODO password encoding
 
     @Bean
     public AuthenticationProvider authenticationProvider() {
         DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider();
-        daoAuthenticationProvider.setPasswordEncoder(passwordEncoder);
+        daoAuthenticationProvider.setPasswordEncoder(new BCryptPasswordEncoder(12));
         daoAuthenticationProvider.setUserDetailsService(userDetailsService);
         return daoAuthenticationProvider;
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/json/DataJson.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/json/DataJson.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/json/DataJson.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,23 @@
+package internettehnologii.imaps.backendRender.web.security.json;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+@Setter
+@Getter
+public class DataJson implements Serializable {
+    private String textData;
+    private byte binaryData;
+
+    public DataJson(String textData) {
+        this.textData = textData;
+    }
+
+    public DataJson(byte binaryData) {
+        this.binaryData = binaryData;
+    }
+
+    public DataJson() {}
+}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/json/JsonNodeConverter.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/json/JsonNodeConverter.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/json/JsonNodeConverter.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,38 @@
+package internettehnologii.imaps.backendRender.web.security.json;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
+
+import java.io.IOException;
+
+@Converter(autoApply = true)
+public class JsonNodeConverter implements AttributeConverter<JsonNode, String> {
+
+    private static final ObjectMapper objectMapper = new ObjectMapper();
+
+    @Override
+    public String convertToDatabaseColumn(JsonNode jsonNode) {
+        if (jsonNode == null) {
+            return null;
+        }
+        try {
+            return objectMapper.writeValueAsString(jsonNode);
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to convert JsonNode to String", e);
+        }
+    }
+
+    @Override
+    public JsonNode convertToEntityAttribute(String json) {
+        if (json == null) {
+            return null;
+        }
+        try {
+            return objectMapper.readTree(json);
+        } catch (IOException e) {
+            throw new RuntimeException("Failed to convert String to JsonNode", e);
+        }
+    }
+}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/JWTService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/JWTService.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/JWTService.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,89 @@
+package internettehnologii.imaps.backendRender.web.service;
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.security.Keys;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.stereotype.Service;
+
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+import java.security.Key;
+import java.security.NoSuchAlgorithmException;
+import java.security.SignatureException;
+import java.util.Base64;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.prefs.BackingStoreException;
+
+
+@Service
+public class JWTService {
+
+    private final String secretKey;
+
+    public JWTService(){
+        try {
+            KeyGenerator keyGen = KeyGenerator.getInstance("HmacSHA256");
+            SecretKey sk = keyGen.generateKey();
+            secretKey = Base64.getEncoder().encodeToString(sk.getEncoded());
+        } catch (NoSuchAlgorithmException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+    public String generateToken(String username){
+        Map<String,Object> claims = new HashMap<>();
+        return Jwts
+                .builder()
+                .claims()
+                .add(claims)
+                .subject(username)
+                .issuedAt(new Date(System.currentTimeMillis()))
+                .expiration(new Date(System.currentTimeMillis() + 60 * 60 * 1000))
+                .and()
+                .signWith(getKey())
+                .compact();
+    }
+
+    private SecretKey getKey(){
+        byte[] keyBytes = secretKey.getBytes();
+        return Keys.hmacShaKeyFor(keyBytes);
+    }
+
+    public String extractUsername(String token) {
+        return extractClaim(token, Claims::getSubject);
+    }
+
+    private Claims extractAllClaims(String token){
+        return Jwts
+                .parser()
+                .verifyWith(getKey())
+                .build()
+                .parseSignedClaims(token)
+                .getPayload();
+
+    }
+
+    private <T> T extractClaim(String token, Function<Claims,T> claimResolver){
+        final Claims claims = extractAllClaims(token);
+        return claimResolver.apply(claims);
+    }
+
+    public boolean validateToken(String token, UserDetails details) {
+        final String username = extractUsername(token);
+        return username.equals(details.getUsername()) && !isTokenExpired(token);
+    }
+
+    private boolean isTokenExpired(String token) {
+        return extractExpiration(token).before(new Date());
+    }
+
+    private Date extractExpiration(String token) {
+        return extractClaim(token, Claims::getExpiration);
+    }
+}
+
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/MapService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/MapService.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/MapService.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,73 @@
+package internettehnologii.imaps.backendRender.web.service;
+
+import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
+import internettehnologii.imaps.backendRender.web.repo.MapRepository;
+import internettehnologii.imaps.backendRender.web.security.json.DataJson;
+import jakarta.transaction.Transactional;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+@Service
+public class MapService {
+    private final MapRepository mapRepository;
+
+    @Autowired
+    public MapService(MapRepository mapRepository) {
+        this.mapRepository = mapRepository;
+    }
+
+    public List<IndoorMap> getMaps() {
+        return mapRepository.findAll();
+    }
+
+    public void addNewMap(IndoorMap map) {
+        mapRepository.save(map);
+    }
+
+
+    public void deleteMap(Long mapId) {
+        boolean exists = mapRepository.existsById(mapId);
+        if (!exists) {
+            throw new IllegalStateException("Map with id: " + mapId + " does not exist");
+        }
+        mapRepository.deleteById(mapId);
+
+    }
+
+    public Optional<IndoorMap> getMapById(Long id) {
+        return mapRepository.findById(id);
+    }
+
+
+    // repository.save zavisit od state na object sho sakas da zacuvas. Ako napres direktno new obj, pa save, pret INSERT, a ako napres get na object od baza pa mu setnis attrib so setter pa save, pret UPDATE.
+    @Transactional
+    public void saveMap(String name, String mapData) {
+        Optional<IndoorMap> indoorMap = mapRepository.findMapByName(name);
+        indoorMap.ifPresentOrElse(map -> {
+            map.setName(name);
+            map.setMapData(new DataJson(mapData));
+            mapRepository.save(map);
+        },() -> {
+            IndoorMap map = new IndoorMap(name,new DataJson(mapData));
+            mapRepository.save(map);
+        });
+
+    }
+
+    public Optional<IndoorMap> getMapByName(String name) {
+        return mapRepository.findMapByName(name);
+    }
+
+
+    @Transactional
+    public void updateMap(String mapName, DataJson mapData) {
+        IndoorMap map = mapRepository.findMapByName(mapName).orElseThrow(() -> new IllegalStateException("map with name " + mapName + " does not exist"));
+        if (mapName != null && !mapName.isEmpty() && !Objects.equals(map.getName(), mapName)) {
+            map.setMapData(mapData);
+        }
+    }
+}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/MapUserDetailsService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/MapUserDetailsService.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/MapUserDetailsService.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,26 @@
+package internettehnologii.imaps.backendRender.web.service;
+
+
+import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
+import internettehnologii.imaps.backendRender.web.repo.UserRepository;
+import internettehnologii.imaps.backendRender.web.util.UserPrincipal;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+@Service
+public class MapUserDetailsService implements UserDetailsService {
+    @Autowired
+    private UserRepository userRepository;
+    @Override
+    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+       IMapsUser user = userRepository.findUserByName(username);
+       if(user == null) {
+           throw new UsernameNotFoundException(username);
+       }
+
+       return new UserPrincipal(user);
+    }
+}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/UserService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/UserService.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/UserService.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,86 @@
+package internettehnologii.imaps.backendRender.web.service;
+
+import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
+import internettehnologii.imaps.backendRender.web.repo.UserRepository;
+import jakarta.transaction.Transactional;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+@Service
+public class UserService {
+
+    @Autowired
+    private final UserRepository userRepository;
+
+    private final BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder(12);
+    @Autowired
+    private JWTService jwtService;
+
+    @Autowired
+    private AuthenticationManager authenticationManager;
+
+    @Autowired
+    public UserService(UserRepository userRepository){
+        this.userRepository = userRepository;
+    }
+
+    public List<IMapsUser> getUsers(){
+        return userRepository.findAll();
+    }
+
+    public IMapsUser register(IMapsUser user) {
+        Optional<IMapsUser> usrOptional = userRepository.findUserByEmail(user.getEmail());
+        if(usrOptional.isPresent()){
+            throw new IllegalStateException("email taken");
+        }
+
+        user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
+        return userRepository.save(user);
+    }
+
+    public void deleteUser(Long userId) {
+        boolean exists = userRepository.existsById(userId);
+        if(!exists){
+            throw new IllegalStateException("User with id: " + userId + " does not exist");
+        }
+        userRepository.deleteById(userId);
+    }
+
+    @Transactional
+    public void updateUser(Long userId, String name, String email) {
+        IMapsUser user = userRepository.findById(userId).orElseThrow(() -> new IllegalStateException("user with id " + userId + " does not exist"));
+        if(name != null && !name.isEmpty() && !Objects.equals(user.getUsername(), name)){
+            user.setUsername(name);
+        }
+
+        if(email != null && !email.isEmpty() && !Objects.equals(user.getEmail(), email)){
+            Optional<IMapsUser> userOptional = userRepository.findUserByEmail(email);
+            if(userOptional.isPresent()){
+                throw new IllegalStateException("email taken");
+            }
+
+            user.setEmail(email);
+        }
+    }
+
+    public String verify(IMapsUser user) {
+        Authentication authentication =
+                authenticationManager.authenticate(
+                        new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword()));
+
+        if(authentication.isAuthenticated()){
+            return jwtService.generateToken(user.getUsername());
+        }
+
+        return "Auth failed";
+    }
+
+}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/FloorServiceImpl.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/FloorServiceImpl.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,76 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import internettehnologii.imaps.backendRender.web.exceptions.*;
-import internettehnologii.imaps.backendRender.web.entities.Floor;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.repo.FloorRepository;
-import internettehnologii.imaps.backendRender.web.repo.MapRepository;
-import internettehnologii.imaps.backendRender.web.service.interfaces.FloorService;
-import jakarta.transaction.Transactional;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
-@Service
-public class FloorServiceImpl implements FloorService {
-
-    private final FloorRepository floorRepository;
-    private final MapRepository mapRepository;
-
-    @Autowired
-    public FloorServiceImpl(FloorRepository floorRepository, MapRepository mapRepository) {
-        this.floorRepository = floorRepository;
-        this.mapRepository = mapRepository;
-    }
-
-    @Override
-    public void addFloor(int num, String mapName) {
-        IndoorMap indoorMap = mapRepository.findMapByName(mapName).orElseThrow(() -> new MapNotFoundException(mapName));
-
-        if(floorRepository.existsFloorForMap(num,indoorMap)){
-            throw new FloorAlreadyExistsException("Floor: " + num + " already exists for map: " + indoorMap.getName());
-        }
-
-        Floor floor = new Floor();
-        floor.setFloorNumber(num);
-        floor.setIndoorMap(indoorMap);
-        floorRepository.save(floor);
-    }
-
-    @Override
-    public void updateFloor(Floor floor) {
-        floorRepository.save(floor);
-    }
-
-    @Transactional
-    @Override
-    public void deleteFloor(int floorNum,String mapName) {
-        IndoorMap map = mapRepository.findMapByName(mapName).orElseThrow(() -> new MapNotFoundException(mapName));
-        if(!floorRepository.existsFloorForMap(floorNum,map)) throw new FloorNotFoundException("Floor: " + floorNum + " does not exist for map: " + map.getName());
-
-        floorRepository.deleteFloorByFloorNumberAndIndoorMap(floorNum,map);
-    }
-
-    @Override
-    public List<Floor> getAllFloorsForMap(String mapName) {
-        IndoorMap map = mapRepository.findMapByName(mapName).orElseThrow(() -> new MapNotFoundException(mapName));
-
-        return floorRepository.getAllFloorsForMapById(map.getId()).orElseGet(ArrayList::new);
-    }
-
-    @Override
-    public Floor getFloorByNum(Integer floorNum, IndoorMap indoorMap) throws InvalidParametersException {
-
-        return indoorMap
-                .getFloors()
-                .stream()
-                .filter(floor -> floor.getFloorNumber() == floorNum)
-                .findFirst()
-                .orElseThrow(() -> new InvalidParametersException("Could not find floor.\n floorNum: " + floorNum + "\n indoorMap: " + indoorMap));
-    }
-
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/GitHubOAuthService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/GitHubOAuthService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,87 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import internettehnologii.imaps.backendRender.web.controllers.InvalidStateException;
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.RBA.Role;
-import internettehnologii.imaps.backendRender.web.repo.RoleRepository;
-import internettehnologii.imaps.backendRender.web.repo.UserRepository;
-import internettehnologii.imaps.backendRender.web.service.interfaces.OAuthService;
-import internettehnologii.imaps.backendRender.web.util.DTO.GitHubUserInfo;
-import internettehnologii.imaps.backendRender.web.util.DTO.UserAuthSuccessDTO;
-import internettehnologii.imaps.backendRender.web.util.OAuthProviders;
-import internettehnologii.imaps.backendRender.web.util.UserPrincipal;
-import jakarta.transaction.Transactional;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Service;
-
-import javax.management.relation.RoleNotFoundException;
-import java.util.Optional;
-
-@Service("githubOAuth")
-public class GitHubOAuthService implements OAuthService {
-    private final UserRepository userRepository;
-    private final PasswordEncoder passwordEncoder;
-    private final JWTService jwtService;
-    private final RoleRepository roleRepository;
-
-    public GitHubOAuthService(UserRepository userRepository, PasswordEncoder passwordEncoder, JWTService jwtService, RoleRepository roleRepository) {
-        this.userRepository = userRepository;
-        this.passwordEncoder = passwordEncoder;
-        this.jwtService = jwtService;
-        this.roleRepository = roleRepository;
-    }
-
-
-    @Override
-    @Transactional
-    public UserAuthSuccessDTO login(String userInfo, String accessToken) {
-        ObjectMapper mapper = new ObjectMapper();
-        GitHubUserInfo oAuthUserInfo;
-
-        try {
-            oAuthUserInfo = mapper.readValue(userInfo, GitHubUserInfo.class);
-        } catch (JsonProcessingException e) {
-            throw new RuntimeException("Failed to parse GitHub user info.", e);
-        }
-
-        Optional<IMapsUser> userOpt = userRepository.getUserByOAuthId(oAuthUserInfo.getId());
-        IMapsUser user = userOpt.orElseGet(() -> createNewUser(oAuthUserInfo));
-        user.setAccessToken(passwordEncoder.encode(accessToken));
-        userRepository.save(user);
-
-        String token = jwtService.generateToken(new UserPrincipal(user));
-
-        return new UserAuthSuccessDTO(
-                token,
-                user.getUsername(),
-                jwtService.getAuthorities(token).toString()
-        );
-    }
-
-    private IMapsUser createNewUser(GitHubUserInfo oAuthUserInfo) {
-        IMapsUser newUser = new IMapsUser();
-
-        newUser.setEmail(oAuthUserInfo.getEmail());
-        newUser.setOAuthId(oAuthUserInfo.getId());
-        newUser.setOAuthProvider(OAuthProviders.GITHUB.name());
-        newUser.setUsername(generateUniqueUsername(oAuthUserInfo));
-
-        Role userRole = roleRepository.findByName("USER")
-                .orElseThrow(() -> new RuntimeException("User role not found."));
-
-        userRole.getUsers().add(newUser);
-        newUser.getRoles().add(userRole);
-
-        return newUser;
-    }
-
-    private String generateUniqueUsername(GitHubUserInfo oAuthUserInfo) {
-        String login = oAuthUserInfo.getLogin();
-        String idSubstring = oAuthUserInfo.getId()
-                .substring(login.length() - 3, login.length() - 1);
-        return login + idSubstring;
-    }
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/GoogleOAuthService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/GoogleOAuthService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,84 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.RBA.Role;
-import internettehnologii.imaps.backendRender.web.repo.RoleRepository;
-import internettehnologii.imaps.backendRender.web.repo.UserRepository;
-import internettehnologii.imaps.backendRender.web.service.interfaces.OAuthService;
-import internettehnologii.imaps.backendRender.web.util.DTO.GitHubUserInfo;
-import internettehnologii.imaps.backendRender.web.util.DTO.GoogleUserInfo;
-import internettehnologii.imaps.backendRender.web.util.DTO.UserAuthSuccessDTO;
-import internettehnologii.imaps.backendRender.web.util.OAuthProviders;
-import internettehnologii.imaps.backendRender.web.util.UserPrincipal;
-import jakarta.transaction.Transactional;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Service;
-
-import java.util.Optional;
-
-@Service("googleOAuth")
-public class GoogleOAuthService implements OAuthService {
-    private final UserRepository userRepository;
-    private final PasswordEncoder passwordEncoder;
-    private final JWTService jwtService;
-    private final RoleRepository roleRepository;
-
-    public GoogleOAuthService(UserRepository userRepository, PasswordEncoder passwordEncoder, JWTService jwtService, RoleRepository roleRepository) {
-        this.userRepository = userRepository;
-        this.passwordEncoder = passwordEncoder;
-        this.jwtService = jwtService;
-        this.roleRepository = roleRepository;
-    }
-
-    @Override
-    @Transactional
-    public UserAuthSuccessDTO login(String userInfo, String accessToken) {
-        ObjectMapper mapper = new ObjectMapper();
-        GoogleUserInfo oAuthUserInfo;
-
-        try {
-            oAuthUserInfo = mapper.readValue(userInfo, GoogleUserInfo.class);
-        } catch (JsonProcessingException e) {
-            throw new RuntimeException("Failed to parse Google user info.", e);
-        }
-
-        Optional<IMapsUser> userOpt = userRepository.getUserByOAuthId(oAuthUserInfo.getId());
-        IMapsUser user = userOpt.orElseGet(() -> createNewUser(oAuthUserInfo));
-        user.setAccessToken(passwordEncoder.encode(accessToken));
-        userRepository.save(user);
-
-        String token = jwtService.generateToken(new UserPrincipal(user));
-
-        return new UserAuthSuccessDTO(
-                token,
-                user.getUsername(),
-                jwtService.getAuthorities(token).toString()
-        );
-    }
-
-    private IMapsUser createNewUser(GoogleUserInfo oAuthUserInfo) {
-        IMapsUser newUser = new IMapsUser();
-
-        newUser.setEmail(oAuthUserInfo.getEmail());
-        newUser.setOAuthId(oAuthUserInfo.getId());
-        newUser.setOAuthProvider(OAuthProviders.GOOGLE.name());
-        newUser.setUsername(generateUniqueUsername(oAuthUserInfo));
-
-        Role userRole = roleRepository.findByName("USER")
-                .orElseThrow(() -> new RuntimeException("User role not found."));
-
-        userRole.getUsers().add(newUser);
-        newUser.getRoles().add(userRole);
-
-        return newUser;
-    }
-
-    private String generateUniqueUsername(GoogleUserInfo oAuthUserInfo) {
-        String username = oAuthUserInfo.getName();
-        String idSubstring = oAuthUserInfo.getId()
-                .substring(username.length() - 3, username.length() - 1);
-        return username + idSubstring;
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/GraphServiceImpl.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/GraphServiceImpl.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import internettehnologii.imaps.backendRender.graph.MapNode;
-import internettehnologii.imaps.backendRender.graph.MapNodeParser;
-import internettehnologii.imaps.backendRender.graph.RouteGraph;
-import internettehnologii.imaps.backendRender.web.entities.Floor;
-import internettehnologii.imaps.backendRender.web.service.interfaces.GraphService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-public class GraphServiceImpl implements GraphService {
-    @Override
-    public RouteGraph construct(List<Floor> floors) {
-        RouteGraph graph = new RouteGraph();
-        MapNodeParser parser = new MapNodeParser();
-
-        floors.forEach(floor -> {
-            try {
-                List<MapNode> nodes = parser.parseAndCreate(floor.getMapData().getShapeData());
-                graph.loadNodeNames(nodes);
-            } catch (Exception e) {
-                System.out.println("Nodes for floor " + floor.getFloorNumber() + " could not be parsed. " + e.getMessage());
-                e.printStackTrace();
-            }
-        });
-
-        graph.loadEdges();
-
-        return graph;
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/JWTService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/JWTService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,100 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import io.jsonwebtoken.Claims;
-import io.jsonwebtoken.Jwts;
-import io.jsonwebtoken.security.Keys;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.stereotype.Service;
-
-import javax.crypto.KeyGenerator;
-import javax.crypto.SecretKey;
-import java.security.NoSuchAlgorithmException;
-import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-
-@Service
-public class JWTService {
-
-    private final String secretKey;
-
-    public JWTService(){
-        try {
-            KeyGenerator keyGen = KeyGenerator.getInstance("HmacSHA256");
-            SecretKey sk = keyGen.generateKey();
-            secretKey = Base64.getEncoder().encodeToString(sk.getEncoded());
-        } catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-
-    public String generateToken(UserDetails userDetails){
-        Map<String,Object> claims = new HashMap<>();
-        String authorities = userDetails.getAuthorities().stream()
-                .map(GrantedAuthority::getAuthority)
-                .collect(Collectors.joining(","));
-        claims.put("roles", authorities);
-        
-        return Jwts
-                .builder()
-                .claims()
-                .add(claims)
-                .subject(userDetails.getUsername())
-                .issuedAt(new Date(System.currentTimeMillis()))
-                .expiration(new Date(System.currentTimeMillis() + 60 * 60 * 1000)) // 1 sat traet token
-                .and()
-                .signWith(getKey())
-                .compact();
-    }
-
-    public Collection<GrantedAuthority> getAuthorities(String token){
-        Claims claims = extractAllClaims(token);
-        String roles = claims.get("roles", String.class);
-
-        return Arrays.stream(roles.split(","))
-                .map(SimpleGrantedAuthority::new)
-                .collect(Collectors.toList());
-    }
-
-    private SecretKey getKey(){
-        byte[] keyBytes = secretKey.getBytes();
-        return Keys.hmacShaKeyFor(keyBytes);
-    }
-
-    public String extractUsername(String token) {
-        return extractClaim(token, Claims::getSubject);
-    }
-
-    private Claims extractAllClaims(String token){
-        return Jwts
-                .parser()
-                .verifyWith(getKey())
-                .build()
-                .parseSignedClaims(token)
-                .getPayload();
-
-    }
-
-    private <T> T extractClaim(String token, Function<Claims,T> claimResolver){
-        final Claims claims = extractAllClaims(token);
-        return claimResolver.apply(claims);
-    }
-
-    public boolean validateToken(String token, UserDetails details) {
-        final String username = extractUsername(token);
-        return username.equals(details.getUsername()) && !isTokenExpired(token);
-    }
-
-    private boolean isTokenExpired(String token) {
-        return extractExpiration(token).before(new Date());
-    }
-
-    private Date extractExpiration(String token) {
-        return extractClaim(token, Claims::getExpiration);
-    }
-}
-
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/MapServiceImpl.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/MapServiceImpl.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,215 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import internettehnologii.imaps.backendRender.web.entities.Floor;
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.entities.MAP_STATUS;
-import internettehnologii.imaps.backendRender.web.exceptions.MapNameTakenException;
-import internettehnologii.imaps.backendRender.web.exceptions.MapNotFoundException;
-import internettehnologii.imaps.backendRender.web.repo.FloorRepository;
-import internettehnologii.imaps.backendRender.web.repo.MapRepository;
-import internettehnologii.imaps.backendRender.web.repo.UserRepository;
-import internettehnologii.imaps.backendRender.web.service.interfaces.MapService;
-import internettehnologii.imaps.backendRender.web.util.DTO.EditMapDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.MapDTO;
-import jakarta.transaction.Transactional;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-
-@Service
-public class MapServiceImpl implements MapService {
-    private final MapRepository mapRepository;
-    private final UserRepository userRepository;
-    private final FloorRepository floorRepository;
-
-    @Autowired
-    public MapServiceImpl(MapRepository mapRepository, UserRepository userRepository, FloorRepository floorRepository) {
-        this.mapRepository = mapRepository;
-        this.userRepository = userRepository;
-        this.floorRepository = floorRepository;
-    }
-
-    @Override
-    public void createMap(String mapName, String username) {
-
-        Optional<IMapsUser> user = userRepository.findUserByName(username);
-
-        if (mapRepository.existsByName(mapName))
-            throw new MapNameTakenException("Map with name " + mapName + " already exists");
-
-        if (user.isEmpty()) {
-            throw new UsernameNotFoundException("User " + username + " not found");
-        }
-
-        IndoorMap indoorMap = new IndoorMap();
-        indoorMap.setName(mapName);
-        indoorMap.setUser(user.get());
-
-        Floor floor = new Floor();
-        floor.setFloorNumber(0);
-        floor.setIndoorMap(indoorMap);
-
-        mapRepository.save(indoorMap);
-        floorRepository.save(floor);
-
-    }
-
-    @Override
-    public void updateMap(IndoorMap indoorMap) {
-        mapRepository.save(indoorMap);
-    }
-
-    @Transactional
-    @Override
-    public MapDTO updateMapInfo(EditMapDTO editMapDTO) {
-        IndoorMap indoorMap = mapRepository.getIndoorMapByName(editMapDTO.getInitialName()).orElseThrow(() -> new MapNotFoundException("Map with name " + editMapDTO.getInitialName() + " not found"));
-        if (mapRepository.existsByName(editMapDTO.getName()) && !Objects.equals(editMapDTO.getInitialName(), editMapDTO.getName())) {
-            throw new MapNameTakenException("Map with name " + editMapDTO.getName() + " already exists");
-        }
-
-        indoorMap.setName(editMapDTO.getName());
-        indoorMap.setGmapsUrl(editMapDTO.getGmapsUrl());
-//        indoorMap.setMapType(editMapDTO.getType()); //TODO
-        mapRepository.save(indoorMap);
-        return indoorMap.toMapDTO();
-    }
-
-    @Override
-    public void deleteMap(IndoorMap indoorMap) {
-        mapRepository.delete(indoorMap);
-    }
-
-    @Override
-    public List<IndoorMap> getAllMapsForUser(String username) {
-        IMapsUser user = userRepository.findUserByName(username).orElseThrow(() -> new UsernameNotFoundException(username));
-        Optional<List<IndoorMap>> indoorMaps = mapRepository.findAllMapsForUser(user.getId());
-        return indoorMaps.orElseGet(ArrayList::new);
-    }
-
-    @Override
-    public List<IndoorMap> getPublicMaps() {
-        Optional<List<IndoorMap>> maps = mapRepository.findAllByStatus(MAP_STATUS.PUBLIC);
-        return maps.orElseGet(ArrayList::new);
-    }
-
-    @Override
-    public IndoorMap getMapForUser(String username, String mapName) {
-        IMapsUser user = userRepository.findUserByName(username).orElseThrow(() -> new UsernameNotFoundException(username));
-        IndoorMap map = mapRepository.findMapByName(mapName).orElseThrow(() -> new MapNotFoundException(mapName));
-
-        boolean isAdmin = user.getRoles().stream().anyMatch(role -> Objects.equals(role.getName(), "ADMIN"));
-
-        if (isAdmin) {
-            return map;
-        }
-
-        return mapRepository.getMapForUser(user, map.getId()).orElseThrow(() -> new MapNotFoundException("No map found for user: " + username));
-    }
-
-    @Override
-    public IndoorMap getPublicMapByName(String mapName) {
-        return mapRepository.getIndoorMapByNameAndStatus(mapName, MAP_STATUS.PUBLIC).orElseThrow(() -> new MapNotFoundException(mapName));
-    }
-
-    @Override
-    public IndoorMap getMapByName(String mapName) {
-        return mapRepository.getIndoorMapByName(mapName).orElseThrow(() -> new MapNotFoundException(mapName));
-    }
-
-    @Override
-    public List<IndoorMap> findByStatus(MAP_STATUS status) {
-        return mapRepository.findAllByStatus(status).orElseGet(ArrayList::new);
-    }
-
-
-//    public List<IndoorMap> getMaps() {
-//        return mapRepository.findAll();
-//    }
-//
-//    public void addNewMap(IndoorMap map) {
-//        getMapByName(map.getName())
-//                .ifPresentOrElse(lMap -> {
-//                    System.out.println("Map with name " + map.getName() + " already exists");
-//                }, () -> mapRepository.save(map));
-//    }
-//
-//
-//    public void deleteMap(Long mapId) {
-//        boolean exists = mapRepository.existsById(mapId);
-//        if (!exists) {
-//            throw new IllegalStateException("Map with id: " + mapId + " does not exist");
-//        }
-//        mapRepository.deleteById(mapId);
-//
-//    }
-//
-//    public Optional<IndoorMap> getMapById(Long id) {
-//        return mapRepository.findById(id);
-//    }
-
-//    public Optional<List<IndoorMap>> findAllPublicMaps(){
-//       return mapRepository.findAllByStatus(true);
-//    }
-//    public Optional<List<IndoorMap>> findAllPersonalMaps(){
-//        return mapRepository.findAllByStatus(false);
-//    }
-
-//    public Optional<List<IndoorMap>> findAllMapsByPublicStatus(boolean publicStatus) {
-//        return mapRepository.findAllByStatus(publicStatus);
-//    }
-//
-//    // repository.save zavisit od state na object sho sakas da zacuvas. Ako napres direktno new obj, pa save, pret INSERT, a ako napres get na object od baza pa mu setnis attrib so setter pa save, pret UPDATE.
-//    @Transactional
-//    public void saveFloor(String mapName, String mapData,int floorNum) {
-//        Optional<IndoorMap> indoorMap = mapRepository.findMapByName(mapName);
-//
-//        if(indoorMap.isPresent()) {
-//            Optional<Floor> floor = mapRepository.getFloorForMap(indoorMap.get().getId(), floorNum);
-//            if(floor.isPresent()) {
-//
-//            }
-//        }
-//
-//        indoorMap.ifPresentOrElse(map -> {
-//            map.setName(mapName);
-//            map.setMapData(new DataJson(mapData));
-//            mapRepository.save(map);
-//        }, () -> {
-//            System.out.println("Map with name: " + mapName + " does not exist");
-//        });
-//    }
-//
-//    public Optional<IndoorMap> getMapByName(String name) {
-//        return mapRepository.findMapByName(name);
-//    }
-//
-//    public Floor getFloorForMap(String mapName, int floorNum) {
-//        Optional<IndoorMap> map = mapRepository.findMapByName(mapName);
-//
-//        if(map.isPresent()) {
-//            Optional<Floor> floor = mapRepository.getFloorForMap(map.get().getId(), floorNum);
-//            if(floor.isPresent()) {
-//                return floor.get();
-//            } else {
-//                throw new FloorNotFoundException("Floor num: " + floorNum + "for map with name " + mapName + " does not exist")
-//            }
-//        } else {
-//            throw new MapNotFoundException("Map with name: " + mapName + " does not exist");
-//        }
-//    }
-//
-//
-//    @Transactional
-//    public void updateMap(String mapName, DataJson mapData) {
-//        IndoorMap map = mapRepository.findMapByName(mapName).orElseThrow(() -> new IllegalStateException("map with name " + mapName + " does not exist"));
-//        if (mapName != null && !mapName.isEmpty() && !Objects.equals(map.getName(), mapName)) {
-//            map.setMapData(mapData);
-//        }
-//    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/MapUserDetailsService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/MapUserDetailsService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.repo.UserRepository;
-import internettehnologii.imaps.backendRender.web.util.UserPrincipal;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.core.userdetails.UserDetailsService;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Service;
-
-import java.util.Optional;
-
-@Service
-public class MapUserDetailsService implements UserDetailsService {
-    private final UserRepository userRepository;
-
-    public MapUserDetailsService(UserRepository userRepository) {
-        this.userRepository = userRepository;
-    }
-
-    @Override
-    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
-       Optional<IMapsUser> user = userRepository.findUserByName(username);
-       if(user.isEmpty()) {
-           throw new UsernameNotFoundException(username);
-       }
-
-       return new UserPrincipal(user.get());
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/OAuthStateStore.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/OAuthStateStore.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,24 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import internettehnologii.imaps.backendRender.web.service.interfaces.StateStore;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-@Service
-public class OAuthStateStore implements StateStore {
-
-    private final Map<String, Long> stateStore = new ConcurrentHashMap<>();
-
-    @Override
-    public void storeState(String state) {
-        stateStore.put(state, System.currentTimeMillis());
-    }
-
-    @Override
-    public boolean isValidState(String state) {
-        Long timestamp = stateStore.remove(state);
-        return timestamp != null && System.currentTimeMillis() - timestamp < 300000; // 5min
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/PublishRequestServiceImpl.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/PublishRequestServiceImpl.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,173 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.entities.MAP_STATUS;
-import internettehnologii.imaps.backendRender.web.entities.PublishRequest;
-import internettehnologii.imaps.backendRender.web.repo.MapRepository;
-import internettehnologii.imaps.backendRender.web.repo.PublishRequestRepository;
-import internettehnologii.imaps.backendRender.web.repo.UserRepository;
-import internettehnologii.imaps.backendRender.web.service.interfaces.MapService;
-import internettehnologii.imaps.backendRender.web.service.interfaces.PublishRequestService;
-import internettehnologii.imaps.backendRender.web.service.interfaces.UserService;
-import internettehnologii.imaps.backendRender.web.util.DTO.MapDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.PublishMapDTO;
-import jakarta.transaction.Transactional;
-import org.springframework.mail.SimpleMailMessage;
-import org.springframework.mail.javamail.JavaMailSender;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Optional;
-
-@Service
-public class PublishRequestServiceImpl implements PublishRequestService {
-    private final PublishRequestRepository publishRequestRepository;
-    private final MapRepository mapRepository;
-    private final MapService mapService;
-    private final UserService userService;
-    //private final JavaMailSender mailSender;
-    private final UserRepository userRepository;
-
-    public PublishRequestServiceImpl(PublishRequestRepository publishRequestRepository, MapRepository mapRepository, MapService mapService, UserService userService, UserRepository userRepository) {
-        this.publishRequestRepository = publishRequestRepository;
-        this.mapRepository = mapRepository;
-        this.mapService = mapService;
-        this.userService = userService;
-        this.userRepository = userRepository;
-    }
-
-    @Override
-    @Transactional
-    public MapDTO addPublishRequest(PublishMapDTO formData, IMapsUser user) {
-        Optional<PublishRequest> prOptional = publishRequestRepository.findById(formData.getId());
-        PublishRequest pr;
-        IndoorMap map = mapService.getMapByName(formData.getMapName());
-        if (prOptional.isPresent()) {
-            pr = prOptional.get();
-            pr.setName(formData.getName());
-            pr.setLastName(formData.getLastName());
-            pr.setGMapsUrl(formData.getGoogleMapsUrl());
-            pr.setMapType(formData.getMapType());
-            map.setStatus(MAP_STATUS.PENDING);
-        } else {
-            pr = new PublishRequest(formData.getName(), formData.getLastName(), formData.getGoogleMapsUrl(), formData.getMapType());
-            pr.setMap(map);
-            pr.setUser(user);
-            map.setStatus(MAP_STATUS.PENDING);
-
-        }
-        this.mapRepository.save(map);
-        this.publishRequestRepository.save(pr);
-        sendMailToAdmins(user,pr);
-        return map.toMapDTO();
-
-    }
-
-    @Override
-    public void denyPublishRequest(int id,String reason) throws Exception {
-        PublishRequest pr = this.publishRequestRepository.findById(id).orElseThrow(Exception::new);
-
-        pr.setResolved(true);
-        IndoorMap map = pr.getMap();
-        map.setStatus(MAP_STATUS.PRIVATE);
-        map.setIsPublished(false);
-
-        this.publishRequestRepository.save(pr);
-        this.mapRepository.save(map);
-
-//        SimpleMailMessage message = new SimpleMailMessage();
-//
-//        message.setTo(pr.getMap().getUser().getEmail());
-//        message.setSubject("Denied Publish Request");
-//        message.setText(String.format("Your publish request for map: %s has been denied." +
-//                "\nReason:\n%s",pr.getMap().getName(),reason));
-//        mailSender.send(message);
-    }
-
-    @Override
-    public List<PublishRequest> getAllPublishRequests() {
-        return this.publishRequestRepository.findAll();
-    }
-
-    @Override
-    public void save(PublishRequest publishRequest) {
-
-    }
-    @Override
-    public void sendMailToAdmins(IMapsUser user, PublishRequest pr){
-//        System.out.println("test");
-//        SimpleMailMessage message = new SimpleMailMessage();
-//        Optional<List<IMapsUser>> adminsOpt = userRepository.getAllAdmins();
-//        adminsOpt.ifPresent(admins -> {
-//            admins.forEach(admin -> {
-//                message.setTo(admin.getEmail());
-//                message.setSubject("New Publish Request");
-//                String body = String.format(
-//                        """
-//                                Publish Request Details:
-//                                \tRequest Id: %s
-//                                \tMap Id: %s
-//                                \tMap Name: %s
-//
-//                                User Details:
-//                                \tId: %s
-//                                \tUsername: %s
-//                                \tEmail: %s
-//                                \tFirst Name: %s
-//                                \t Last Name: %s
-//                                """,
-//                        pr.getId(), pr.getMap().getId(),
-//                        pr.getMap().getName(),
-//                        user.getId(),user.getUsername(),user.getEmail(),
-//                        pr.getName(),pr.getLastName());
-//
-//                message.setText(body);
-//                mailSender.send(message);
-//            });
-//        });
-
-    }
-
-
-    @Override
-    public void approvePublishRequest(int id) throws Exception {
-        PublishRequest pr = this.publishRequestRepository.findById(id).orElseThrow(Exception::new);
-
-        pr.setResolved(true);
-        IndoorMap map = pr.getMap();
-        map.setStatus(MAP_STATUS.PUBLIC);
-        map.setIsPublished(true);
-        map.setGmapsUrl(pr.getGMapsUrl());
-        map.setMapType(pr.getMapType());
-
-        this.publishRequestRepository.save(pr);
-        this.mapRepository.save(map);
-
-//        SimpleMailMessage message = new SimpleMailMessage();
-//        message.setTo(pr.getMap().getUser().getEmail());
-//        message.setSubject("Approved Publish Request");
-//        message.setText(String.format("Your publish request for map: %s has been approved!\nYour map is now public. That means that anyone can view and use your map.\nThank you for building!",pr.getMap().getName()));
-//        mailSender.send(message);
-
-    }
-
-    @Override
-    public void rejectPublishRequest(PublishRequest publishRequest) {
-        publishRequest.setResolved(false);
-        IndoorMap map = publishRequest.getMap();
-        map.setStatus(MAP_STATUS.PRIVATE);
-    }
-
-    @Override
-    public PublishRequest getPublishRequestByMapName(String mapName) {
-        return this.publishRequestRepository.findByMapName(mapName).orElse(new PublishRequest());
-    }
-
-    @Override
-    public void editPublishRequest(PublishRequest publishRequest) {
-        if (!publishRequestRepository.existsById(publishRequest.getId())) return;
-
-        publishRequestRepository.save(publishRequest);
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/ReportServiceImpl.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/ReportServiceImpl.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,73 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.Report;
-import internettehnologii.imaps.backendRender.web.repo.ReportRepository;
-import internettehnologii.imaps.backendRender.web.repo.UserRepository;
-import internettehnologii.imaps.backendRender.web.service.interfaces.ReportService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.mail.SimpleMailMessage;
-import org.springframework.mail.javamail.JavaMailSender;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Optional;
-
-
-@Service
-public class ReportServiceImpl implements ReportService {
-    private final ReportRepository reportRepository;
-    private final JavaMailSender mailSender;
-    private final UserRepository userRepository;
-
-
-    public ReportServiceImpl(ReportRepository reportRepository, JavaMailSender mailSender, UserRepository userRepository) {
-        this.reportRepository = reportRepository;
-        this.mailSender = mailSender;
-        this.userRepository = userRepository;
-    }
-
-
-    @Override
-    public void saveReport(Report report) {
-        reportRepository.save(report);
-        //sendMailToAdmins(report);
-    }
-
-    @Override
-    public List<Report> getReports() {
-        return reportRepository.findAll();
-    }
-
-    public void sendMailToAdmins(Report report) {
-        SimpleMailMessage message = new SimpleMailMessage();
-        Optional<List<IMapsUser>> adminsOpt = userRepository.getAllAdmins();
-        System.out.println("MAIL " + report);
-        adminsOpt.ifPresent(admins -> {
-            admins.forEach(admin -> {
-                message.setTo(admin.getEmail());
-                message.setSubject("New Report Submitted");
-                String body = String.format(
-                        """
-                        A new report has been submitted:
-                        
-                        Report Details:
-                        \tReport Id: %s
-                        \tSubject: %s
-                        \tContent: %s
-                        \tSubmitted By: %s
-
-                        """,
-                        report.getId(),
-                        report.getSubject(),
-                        report.getContent(),
-                        report.getUser() != null ? report.getUser().getUsername() : "Unknown"
-                );
-                message.setText(body);
-                System.out.println("MESSAGE: " + message);
-                mailSender.send(message);
-            });
-        });
-    }
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/RoomTypeServiceImpl.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/RoomTypeServiceImpl.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,27 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.entities.RoomType;
-import internettehnologii.imaps.backendRender.web.repo.RoomTypeRepository;
-import internettehnologii.imaps.backendRender.web.service.interfaces.RoomTypeService;
-import org.springframework.stereotype.Service;
-
-@Service
-public class RoomTypeServiceImpl implements RoomTypeService {
-
-    private final RoomTypeRepository roomTypeRepository;
-
-    public RoomTypeServiceImpl(RoomTypeRepository roomTypeRepository) {
-        this.roomTypeRepository = roomTypeRepository;
-    }
-
-    @Override
-    public void addRoomType(String name, IndoorMap map) {
-        roomTypeRepository.save(new RoomType(name, map));
-    }
-
-    @Override
-    public void deleteRoomType(String name, IndoorMap indoorMap) {
-        roomTypeRepository.delete(new RoomType(name, indoorMap));
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/UserServiceImpl.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/UserServiceImpl.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,109 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.impl;
-
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.entities.RBA.Role;
-import internettehnologii.imaps.backendRender.web.exceptions.EmailTakenException;
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.exceptions.MapNotFoundException;
-import internettehnologii.imaps.backendRender.web.exceptions.UserNotFoundException;
-import internettehnologii.imaps.backendRender.web.exceptions.UsernameTakenException;
-import internettehnologii.imaps.backendRender.web.repo.RoleRepository;
-import internettehnologii.imaps.backendRender.web.repo.UserRepository;
-import internettehnologii.imaps.backendRender.web.service.interfaces.UserService;
-import internettehnologii.imaps.backendRender.web.util.DTO.UserAuthSuccessDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.UserLoginDTO;
-import jakarta.transaction.Transactional;
-import jdk.jfr.TransitionTo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Service;
-
-import javax.management.relation.RoleNotFoundException;
-
-@Service
-public class UserServiceImpl implements UserService {
-
-    @Autowired
-    private final UserRepository userRepository;
-
-    @Autowired
-    private PasswordEncoder passwordEncoder;
-
-    @Autowired
-    private JWTService jwtService;
-
-    private final RoleRepository roleRepository;
-
-    @Autowired
-    private AuthenticationManager authenticationManager;
-
-    @Autowired
-    public UserServiceImpl(UserRepository userRepository, RoleRepository repository) {
-        this.userRepository = userRepository;
-        this.roleRepository = repository;
-    }
-
-
-    @Transactional
-    public IMapsUser register(IMapsUser user) throws RoleNotFoundException {
-        userRepository.findUserByEmail(user.getEmail()).ifPresent((u) -> {
-            throw new EmailTakenException("User with email: " + u.getEmail() + " already exists");
-        });
-        userRepository.findUserByName(user.getUsername()).ifPresent((u) -> {
-            throw new UsernameTakenException("User with name: " + u.getUsername() + " already exists");
-        });
-
-        user.setPassword(passwordEncoder.encode(user.getPassword()));
-
-        Role userRole = roleRepository.findByName("USER").orElseThrow(RoleNotFoundException::new);
-
-        userRole.getUsers().add(user);
-        user.getRoles().add(userRole);
-
-        return userRepository.save(user);
-    }
-
-
-
-    public UserAuthSuccessDTO login(UserLoginDTO user) throws Exception {
-
-        Authentication authentication =
-                authenticationManager.authenticate(
-                        new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword()));
-
-
-        if (authentication.isAuthenticated()) {
-            String token =  jwtService.generateToken((UserDetails) authentication.getPrincipal());
-            return new UserAuthSuccessDTO(token, user.getUsername(),jwtService.getAuthorities(token).toString());
-        }
-
-        throw new Exception("CANT LOGIN ERR");
-    }
-
-    @Override
-    public void addFavoriteMap(IMapsUser user, IndoorMap map) {
-        user.getFavoriteMaps().add(map);
-        userRepository.save(user);
-    }
-
-    @Override
-    public void removeFavoriteMap(IMapsUser user, IndoorMap map) {
-        boolean removed = user.getFavoriteMaps().remove(map);
-        if(!removed) throw new MapNotFoundException("Map not found. " + map.getName());
-
-        userRepository.save(user);
-
-    }
-
-    @Override
-    public IMapsUser getUser(String usrnameOrEmail) {
-        return userRepository.getIMapsUserByUsernameOrEmail(usrnameOrEmail).orElseThrow(() -> new UserNotFoundException("User " + usrnameOrEmail + " not found"));
-    }
-
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/FloorService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/FloorService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,14 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.interfaces;
-
-import internettehnologii.imaps.backendRender.web.entities.Floor;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-
-import java.util.List;
-
-public interface FloorService {
-    void addFloor(int num, String mapName);
-    void updateFloor(Floor floor);
-    void deleteFloor(int floorNum, String mapName);
-    List<Floor> getAllFloorsForMap(String mapName);
-    Floor getFloorByNum(Integer floorNum, IndoorMap indoorMap);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/GraphService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/GraphService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,11 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.interfaces;
-
-import internettehnologii.imaps.backendRender.graph.RouteGraph;
-import internettehnologii.imaps.backendRender.web.entities.Floor;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-public interface GraphService {
-    RouteGraph construct(List<Floor> floors);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/MapService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/MapService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,22 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.interfaces;
-
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.entities.MAP_STATUS;
-import internettehnologii.imaps.backendRender.web.entities.RoomType;
-import internettehnologii.imaps.backendRender.web.util.DTO.EditMapDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.MapDTO;
-
-import java.util.List;
-
-public interface MapService {
-    void createMap(String mapName, String username);
-    void updateMap(IndoorMap indoorMap);
-    MapDTO updateMapInfo(EditMapDTO editMapDTO);
-    void deleteMap(IndoorMap indoorMap);
-    List<IndoorMap> getAllMapsForUser(String username);
-    List<IndoorMap> getPublicMaps();
-    IndoorMap getMapForUser(String username, String mapName);
-    IndoorMap getPublicMapByName(String mapName);
-    IndoorMap getMapByName(String mapName);
-    List<IndoorMap> findByStatus(MAP_STATUS status);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/OAuthService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/OAuthService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.interfaces;
-
-import internettehnologii.imaps.backendRender.web.util.DTO.UserAuthSuccessDTO;
-
-public interface OAuthService {
-    UserAuthSuccessDTO login(String userInfo, String accessToken);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/PublishRequestService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/PublishRequestService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.interfaces;
-
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.PublishRequest;
-import internettehnologii.imaps.backendRender.web.util.DTO.MapDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.PublishMapDTO;
-
-import java.util.List;
-
-public interface PublishRequestService {
-    MapDTO addPublishRequest(PublishMapDTO publishRequestDTO, IMapsUser user);
-    void denyPublishRequest(int id,String reason) throws Exception;
-    List<PublishRequest> getAllPublishRequests();
-    void save(PublishRequest publishRequest);
-    void approvePublishRequest(int id) throws Exception;
-    void rejectPublishRequest(PublishRequest publishRequest);
-    PublishRequest getPublishRequestByMapName(String mapName);
-    void editPublishRequest(PublishRequest publishRequest);
-    void sendMailToAdmins(IMapsUser user,PublishRequest pr);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/ReportService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/ReportService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,11 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.interfaces;
-
-import internettehnologii.imaps.backendRender.web.entities.Report;
-
-import java.util.List;
-
-public interface ReportService {
-
-    public void saveReport(Report report);
-    public List<Report> getReports();
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/RoomTypeService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/RoomTypeService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,8 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.interfaces;
-
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-
-public interface RoomTypeService {
-    void addRoomType(String name, IndoorMap indoorMap);
-    void deleteRoomType(String name,IndoorMap indoorMap);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/StateStore.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/StateStore.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,6 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.interfaces;
-
-public interface StateStore {
-    void storeState(String state);
-    boolean isValidState(String state);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/UserService.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/UserService.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package internettehnologii.imaps.backendRender.web.service.interfaces;
-
-import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.util.DTO.UserAuthSuccessDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.UserLoginDTO;
-
-import javax.management.relation.RoleNotFoundException;
-
-public interface UserService {
-    IMapsUser register(IMapsUser user) throws RoleNotFoundException;
-    UserAuthSuccessDTO login(UserLoginDTO user) throws Exception;
-    void addFavoriteMap(IMapsUser user, IndoorMap map);
-    void removeFavoriteMap(IMapsUser user, IndoorMap map);
-    IMapsUser getUser(String username);
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/AddRoomTypeDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/AddRoomTypeDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,15 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.stereotype.Service;
-
-@Getter
-@Setter
-@AllArgsConstructor
-public class AddRoomTypeDTO {
-    String roomTypeName;
-    String username;
-    String mapName;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/CreateMapDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/CreateMapDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,13 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-@AllArgsConstructor
-public class CreateMapDTO {
-    private String name;
-    public CreateMapDTO() {}
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/EditMapDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/EditMapDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-@Getter
-@Setter
-@NoArgsConstructor
-@AllArgsConstructor
-public class EditMapDTO {
-    String initialName;
-    String name;
-    String gmapsUrl;
-    String type;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/FloorDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/FloorDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@AllArgsConstructor
-@ToString
-public class FloorDTO {
-    int num;
-    String mapName;
-    String mapData; //json
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/GitHubUserInfo.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/GitHubUserInfo.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.Data;
-
-@Data
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class GitHubUserInfo {
-    @JsonProperty("login")
-    private String login;
-
-    @JsonProperty("id")
-    private String id;
-
-    @JsonProperty("name")
-    private String name;
-
-    @JsonProperty("email")
-    private String email;
-
-    @JsonProperty("avatar_url")
-    private String avatarUrl;
-
-    @Override
-    public String toString() {
-        return "UserInfo{" +
-                "login='" + login + '\'' +
-                ", id=" + id +
-                ", name='" + name + '\'' +
-                ", email='" + email + '\'' +
-                ", avatarUrl='" + avatarUrl + '\'' +
-                '}';
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/GoogleUserInfo.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/GoogleUserInfo.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.Data;
-
-@Data
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class GoogleUserInfo {
-
-    @JsonProperty("sub")
-    private String id;
-
-    @JsonProperty("name")
-    private String name;
-
-    @JsonProperty("email")
-    private String email;
-
-    @JsonProperty("picture")
-    private String picture;
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/MapDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/MapDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,24 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.time.LocalDateTime;
-
-@Getter
-@Setter
-@AllArgsConstructor
-public class MapDTO {
-    private String mapName;
-    private String mapType;
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime createdAt;
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime modifiedAt;
-    private String mapStatus;
-    private int numFavourites;
-    private String gMapsUrl;
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/PublishMapDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/PublishMapDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter @Setter @AllArgsConstructor
-@ToString
-public class PublishMapDTO {
-    private int id;
-    private String name;
-    private String lastName;
-    private String mapName;
-    private String mapType;
-    private String googleMapsUrl;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/ReportDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/ReportDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,14 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@AllArgsConstructor
-@Data
-public class ReportDTO {
-    String username;
-    String mapName;
-    String subject;
-    String content;
-    String date;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/RoomTypeDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/RoomTypeDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-@AllArgsConstructor
-public class RoomTypeDTO {
-    String name;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/SaveMapDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/SaveMapDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,18 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@AllArgsConstructor
-@Getter
-@Setter
-@ToString
-public class SaveMapDTO {
-
-    Object shapes;
-    Object roomTypes;
-    String mapName;
-    int floorNum;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/UserAuthSuccessDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/UserAuthSuccessDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter @Setter @AllArgsConstructor
-public class UserAuthSuccessDTO {
-    private String token;
-    private String username;
-    private String roles;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/UserLoginDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/UserLoginDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,13 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter @Setter @ToString
-@AllArgsConstructor
-public class UserLoginDTO {
-    private String username;
-    private String password;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/UserMapDTO.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/UserMapDTO.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.DTO;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter @Setter
-@AllArgsConstructor
-public class UserMapDTO {
-    private String username;
-    private String mapName;
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/OAuthProviders.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/OAuthProviders.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,6 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util;
-
-public enum OAuthProviders {
-    GITHUB,
-    GOOGLE
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/StringListConverter.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/StringListConverter.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/StringListConverter.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,34 @@
+package internettehnologii.imaps.backendRender.web.util;
+
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
+import java.util.List;
+
+@Converter
+public class StringListConverter implements AttributeConverter<List<String>, String> {
+
+    private final ObjectMapper objectMapper = new ObjectMapper();
+
+
+    @Override
+    public String convertToDatabaseColumn(List<String> attribute) { //LIST<STRING> TO JSON(STRING)
+        try {
+            return objectMapper.writeValueAsString(attribute);
+        } catch (JsonProcessingException e) {
+            throw new RuntimeException("Could not convert list to JSON", e);
+        }
+    }
+
+    @Override
+    public List<String> convertToEntityAttribute(String dbData) { //JSON(STRING) TO LIST<STRING>
+        try {
+            return objectMapper.readValue(dbData, List.class);
+        } catch (IOException e) {
+            throw new RuntimeException("Could not convert JSON to list", e);
+        }
+    }
+}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/UserPrincipal.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/UserPrincipal.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/UserPrincipal.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -3,5 +3,4 @@
 import internettehnologii.imaps.backendRender.web.entities.IMapsUser;
 import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
 
@@ -17,5 +16,5 @@
     @Override
     public Collection<? extends GrantedAuthority> getAuthorities() {
-        return user.getRoles().stream().map(r -> new SimpleGrantedAuthority("ROLE_" + r.getName())).toList();
+        return List.of();
     }
 
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/Util.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/Util.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util;
-
-import internettehnologii.imaps.backendRender.web.entities.Floor;
-import internettehnologii.imaps.backendRender.web.entities.IndoorMap;
-import internettehnologii.imaps.backendRender.web.util.DTO.FloorDTO;
-import internettehnologii.imaps.backendRender.web.util.DTO.MapDTO;
-
-import java.util.Collection;
-import java.util.List;
-
-public class Util {
-
-    public static List<FloorDTO> convertToFloorDTO(List<Floor> floors){
-        return floors.stream()
-                .map(f -> new FloorDTO(
-                        f.getFloorNumber(),
-                        f.getIndoorMap().getName(),
-                        f.getMapData() != null ? f.getMapData().getShapeData() : "")).toList();
-    }
-
-    public static List<MapDTO> convertToMapDTO(Collection<IndoorMap> maps){
-
-        return maps.stream()
-                .map(imap -> new MapDTO(imap.getName(),
-                        imap.getMapType(),
-                        imap.getCreatedAt(),
-                        imap.getModifiedAt(),
-                        imap.getStatus().name(),
-                        imap.getFavouriteCount(),
-                        imap.getGmapsUrl()))
-                .toList();
-    }
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/json/JsonMapData.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/json/JsonMapData.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.json;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-import java.util.List;
-
-@Setter
-@Getter
-public class JsonMapData implements Serializable {
-    private String shapeData;
-    private String  roomTypes;
-    public JsonMapData(String shapeData, String roomTypes) {
-        this.shapeData = shapeData;
-        this.roomTypes = roomTypes;
-    }
-    public JsonMapData() {
-        shapeData = "";
-        roomTypes = "";
-    }
-
-}
Index: imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/json/JsonNodeConverter.java
===================================================================
--- imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/json/JsonNodeConverter.java	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,38 +1,0 @@
-package internettehnologii.imaps.backendRender.web.util.json;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-import java.io.IOException;
-
-@Converter(autoApply = true)
-public class JsonNodeConverter implements AttributeConverter<JsonNode, String> {
-
-    private static final ObjectMapper objectMapper = new ObjectMapper();
-
-    @Override
-    public String convertToDatabaseColumn(JsonNode jsonNode) {
-        if (jsonNode == null) {
-            return null;
-        }
-        try {
-            return objectMapper.writeValueAsString(jsonNode);
-        } catch (IOException e) {
-            throw new RuntimeException("Failed to convert JsonNode to String", e);
-        }
-    }
-
-    @Override
-    public JsonNode convertToEntityAttribute(String json) {
-        if (json == null) {
-            return null;
-        }
-        try {
-            return objectMapper.readTree(json);
-        } catch (IOException e) {
-            throw new RuntimeException("Failed to convert String to JsonNode", e);
-        }
-    }
-}
Index: imaps-backend/backendRender/src/main/resources/application-dev.properties
===================================================================
--- imaps-backend/backendRender/src/main/resources/application-dev.properties	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,8 +1,0 @@
-github.client.id=${GITHUB_CLIENT_ID}
-github.client.secret=${GITHUB_CLIENT_SECRET}
-github.redirect.uri=http://${BACKEND_IP}:${BACKEND_PORT}/api/oauth/callback/github
-google.redirect.uri=http://${BACKEND_IP}:${BACKEND_PORT}/api/oauth/callback/google
-google.client.id=${GOOGLE_CLIENT_ID}
-google.client.secret=${GOOGLE_CLIENT_SECRET}
-
-spring.datasource.url=jdbc:postgresql://localhost:5432/imaps_prod
Index: imaps-backend/backendRender/src/main/resources/application-prod.properties
===================================================================
--- imaps-backend/backendRender/src/main/resources/application-prod.properties	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,8 +1,0 @@
-github.client.id=${GITHUB_CLIENT_ID}
-github.client.secret=${GITHUB_CLIENT_SECRET}
-github.redirect.uri=https://imaps.mk/api/oauth/callback/github
-google.redirect.uri=https://imaps.mk/api/oauth/callback/google
-google.client.id=${GOOGLE_CLIENT_ID}
-google.client.secret=${GOOGLE_CLIENT_SECRET}
-
-spring.datasource.url=jdbc:postgresql://${DB_IP}:${DB_PORT}/imaps_prod
Index: imaps-backend/backendRender/src/main/resources/application.properties
===================================================================
--- imaps-backend/backendRender/src/main/resources/application.properties	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-backend/backendRender/src/main/resources/application.properties	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -1,20 +1,10 @@
-spring.application.name=imaps-backend
-spring.datasource.username=${DB_USER}
-spring.datasource.password=${DB_PASS}
+spring.application.name=backendRender
+spring.datasource.url=jdbc:postgresql://localhost:6432/imaps
+spring.datasource.username=imaps_admin
+spring.datasource.password=iMapsResen2024
 spring.jpa.hibernate.ddl-auto=validate
 spring.jpa.show-sql=true
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
 spring.jpa.properties.hibernate.format_sql=true
+logging.level.org.springframework.security=DEBUG
 
-
-
-spring.mail.host=smtp.gmail.com
-spring.mail.port=587
-spring.mail.username=${MAIL_NAME}
-spring.mail.password=${MAIL_PASS}
-spring.mail.properties.mail.smtp.auth=true
-spring.mail.properties.mail.smtp.starttls.enable=true
-
-spring.profiles.active=dev
-logging.level.org.springframework.web=DEBUG
-
Index: imaps-backend/backendRender/src/test/java/internettehnologii/imaps/backendRender/RouteGraphTest.java
===================================================================
--- imaps-backend/backendRender/src/test/java/internettehnologii/imaps/backendRender/RouteGraphTest.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-backend/backendRender/src/test/java/internettehnologii/imaps/backendRender/RouteGraphTest.java	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
@@ -0,0 +1,40 @@
+package internettehnologii.imaps.backendRender;
+
+import internettehnologii.imaps.backendRender.graph.Coordinates;
+import internettehnologii.imaps.backendRender.graph.MapNode;
+import internettehnologii.imaps.backendRender.graph.RouteGraph;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.BeforeEach;
+
+import java.util.*;
+import java.util.List;
+
+import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
+
+class RouteGraphTest {
+
+    private RouteGraph routeGraph;
+
+    @BeforeEach
+    void setUp() {
+        MapNode nodeA = new MapNode("A", new Coordinates<>(0.0, 0.0), Arrays.asList("B"));
+        MapNode nodeB = new MapNode("B", new Coordinates<>(5.0, 7.0), Arrays.asList("A","C","D"));
+        MapNode nodeC = new MapNode("C", new Coordinates<>(9.0, 7.0), Arrays.asList("B","D"));
+        MapNode nodeD = new MapNode("D", new Coordinates<>(9.0, 12.0), Arrays.asList("B","C"));
+
+        List<MapNode> nodes = Arrays.asList(nodeA, nodeB, nodeC,nodeD);
+        routeGraph = new RouteGraph(nodes);
+    }
+
+    @Test
+    void testFindRouteBetweenConnectedNodes() {
+        List<MapNode> path = routeGraph.findRoute("D", "A");
+        for (MapNode node : path) {
+            System.out.print(
+                    node.getName() + " ---> "
+            );
+        }
+        assertThat(path).isNotEmpty();
+        //assertThat(path).extracting(MapNode::getName).containsExactly("A", "B", "C");
+    }
+}
Index: imaps-backend/backendRender/target/classes/application-dev.properties
===================================================================
--- imaps-backend/backendRender/target/classes/application-dev.properties	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,8 +1,0 @@
-github.client.id=${GITHUB_CLIENT_ID}
-github.client.secret=${GITHUB_CLIENT_SECRET}
-github.redirect.uri=http://${BACKEND_IP}:${BACKEND_PORT}/api/oauth/callback/github
-google.redirect.uri=http://${BACKEND_IP}:${BACKEND_PORT}/api/oauth/callback/google
-google.client.id=${GOOGLE_CLIENT_ID}
-google.client.secret=${GOOGLE_CLIENT_SECRET}
-
-spring.datasource.url=jdbc:postgresql://localhost:5432/imaps_prod
Index: imaps-backend/backendRender/target/classes/application-prod.properties
===================================================================
--- imaps-backend/backendRender/target/classes/application-prod.properties	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,8 +1,0 @@
-github.client.id=${GITHUB_CLIENT_ID}
-github.client.secret=${GITHUB_CLIENT_SECRET}
-github.redirect.uri=https://imaps.mk/api/oauth/callback/github
-google.redirect.uri=https://imaps.mk/api/oauth/callback/google
-google.client.id=${GOOGLE_CLIENT_ID}
-google.client.secret=${GOOGLE_CLIENT_SECRET}
-
-spring.datasource.url=jdbc:postgresql://${DB_IP}:${DB_PORT}/imaps_prod
Index: imaps-backend/backendRender/target/classes/application.properties
===================================================================
--- imaps-backend/backendRender/target/classes/application.properties	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,20 +1,0 @@
-spring.application.name=imaps-backend
-spring.datasource.username=${DB_USER}
-spring.datasource.password=${DB_PASS}
-spring.jpa.hibernate.ddl-auto=validate
-spring.jpa.show-sql=true
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
-spring.jpa.properties.hibernate.format_sql=true
-
-
-
-spring.mail.host=smtp.gmail.com
-spring.mail.port=587
-spring.mail.username=${MAIL_NAME}
-spring.mail.password=${MAIL_PASS}
-spring.mail.properties.mail.smtp.auth=true
-spring.mail.properties.mail.smtp.starttls.enable=true
-
-spring.profiles.active=dev
-logging.level.org.springframework.web=DEBUG
-
Index: imaps-backend/backendRender/target/classes/templates/test.html
===================================================================
--- imaps-backend/backendRender/target/classes/templates/test.html	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,10 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Test</title>
-</head>
-<body>
-asdasd
-</body>
-</html>
Index: imaps-backend/backendRender/target/maven-archiver/pom.properties
===================================================================
--- imaps-backend/backendRender/target/maven-archiver/pom.properties	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,3 +1,0 @@
-artifactId=imaps-backend
-groupId=internettehnologii.imaps
-version=0.0.1-SNAPSHOT
Index: imaps-backend/backendRender/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
===================================================================
--- imaps-backend/backendRender/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,87 +1,0 @@
-internettehnologii/imaps/backendRender/web/repo/PublishRequestRepository.class
-internettehnologii/imaps/backendRender/web/service/interfaces/StateStore.class
-internettehnologii/imaps/backendRender/web/security/JwtFilter.class
-internettehnologii/imaps/backendRender/web/util/DTO/ReportDTO.class
-internettehnologii/imaps/backendRender/web/util/Util.class
-internettehnologii/imaps/backendRender/web/entities/RBA/Role.class
-internettehnologii/imaps/backendRender/web/service/interfaces/OAuthService.class
-internettehnologii/imaps/backendRender/web/controllers/MapViewController.class
-internettehnologii/imaps/backendRender/graph/exceptions/InvalidMapDataException.class
-internettehnologii/imaps/backendRender/web/util/OAuthProviders.class
-internettehnologii/imaps/backendRender/web/util/DTO/GoogleUserInfo.class
-internettehnologii/imaps/backendRender/web/util/DTO/AddRoomTypeDTO.class
-internettehnologii/imaps/backendRender/web/config/OAuthConfig.class
-internettehnologii/imaps/backendRender/web/entities/RBA/Permission.class
-internettehnologii/imaps/backendRender/web/repo/RoleRepository.class
-internettehnologii/imaps/backendRender/web/config/RoleConfig.class
-internettehnologii/imaps/backendRender/web/service/impl/OAuthStateStore.class
-internettehnologii/imaps/backendRender/web/service/impl/UserServiceImpl.class
-internettehnologii/imaps/backendRender/web/util/DTO/FloorDTO.class
-internettehnologii/imaps/backendRender/graph/MapNode.class
-internettehnologii/imaps/backendRender/web/entities/Floor.class
-internettehnologii/imaps/backendRender/web/service/impl/GitHubOAuthService.class
-internettehnologii/imaps/backendRender/graph/Shape.class
-internettehnologii/imaps/backendRender/web/entities/Report.class
-internettehnologii/imaps/backendRender/web/entities/IMapsUser.class
-internettehnologii/imaps/backendRender/web/service/impl/ReportServiceImpl.class
-internettehnologii/imaps/backendRender/web/service/interfaces/FloorService.class
-internettehnologii/imaps/backendRender/web/service/impl/GraphServiceImpl.class
-internettehnologii/imaps/backendRender/web/exceptions/UserNotFoundException.class
-internettehnologii/imaps/backendRender/web/service/impl/MapUserDetailsService.class
-internettehnologii/imaps/backendRender/web/service/interfaces/RoomTypeService.class
-internettehnologii/imaps/backendRender/web/util/DTO/UserAuthSuccessDTO.class
-internettehnologii/imaps/backendRender/web/entities/IndoorMap.class
-internettehnologii/imaps/backendRender/web/util/json/JsonMapData.class
-internettehnologii/imaps/backendRender/graph/Edge.class
-internettehnologii/imaps/backendRender/web/util/UserPrincipal.class
-internettehnologii/imaps/backendRender/web/service/interfaces/UserService.class
-internettehnologii/imaps/backendRender/web/service/impl/GoogleOAuthService.class
-internettehnologii/imaps/backendRender/web/repo/MapRepository.class
-internettehnologii/imaps/backendRender/web/util/DTO/UserMapDTO.class
-internettehnologii/imaps/backendRender/BackendRenderApplication.class
-internettehnologii/imaps/backendRender/web/util/DTO/RoomTypeDTO.class
-internettehnologii/imaps/backendRender/graph/Coordinates.class
-internettehnologii/imaps/backendRender/web/controllers/OAuthController.class
-internettehnologii/imaps/backendRender/graph/exceptions/NodeNotFoundException.class
-internettehnologii/imaps/backendRender/graph/MapNodeParser.class
-internettehnologii/imaps/backendRender/web/util/DTO/UserLoginDTO.class
-internettehnologii/imaps/backendRender/graph/exceptions/MapParseException.class
-internettehnologii/imaps/backendRender/web/service/impl/RoomTypeServiceImpl.class
-internettehnologii/imaps/backendRender/web/exceptions/MapNotFoundException.class
-internettehnologii/imaps/backendRender/web/security/WebSecurityConfig.class
-internettehnologii/imaps/backendRender/web/exceptions/FloorNotFoundException.class
-internettehnologii/imaps/backendRender/web/service/impl/PublishRequestServiceImpl.class
-internettehnologii/imaps/backendRender/web/exceptions/EmptyMapException.class
-internettehnologii/imaps/backendRender/web/exceptions/EmailTakenException.class
-internettehnologii/imaps/backendRender/graph/RouteGraph.class
-internettehnologii/imaps/backendRender/web/exceptions/UsernameTakenException.class
-internettehnologii/imaps/backendRender/web/controllers/InvalidStateException.class
-internettehnologii/imaps/backendRender/web/repo/RoomTypeRepository.class
-internettehnologii/imaps/backendRender/web/service/interfaces/MapService.class
-internettehnologii/imaps/backendRender/web/service/interfaces/PublishRequestService.class
-internettehnologii/imaps/backendRender/web/util/DTO/SaveMapDTO.class
-internettehnologii/imaps/backendRender/web/entities/PublishRequest.class
-internettehnologii/imaps/backendRender/web/entities/MAP_STATUS.class
-internettehnologii/imaps/backendRender/web/util/DTO/MapDTO.class
-internettehnologii/imaps/backendRender/web/controllers/MapDrawController.class
-internettehnologii/imaps/backendRender/web/repo/UserRepository.class
-internettehnologii/imaps/backendRender/web/service/interfaces/ReportService.class
-internettehnologii/imaps/backendRender/web/util/json/JsonNodeConverter.class
-internettehnologii/imaps/backendRender/web/service/impl/FloorServiceImpl.class
-internettehnologii/imaps/backendRender/web/entities/FloorId.class
-internettehnologii/imaps/backendRender/web/repo/FloorRepository.class
-internettehnologii/imaps/backendRender/web/controllers/AdminController.class
-internettehnologii/imaps/backendRender/web/service/interfaces/GraphService.class
-internettehnologii/imaps/backendRender/web/util/DTO/GitHubUserInfo.class
-internettehnologii/imaps/backendRender/web/controllers/AuthController.class
-internettehnologii/imaps/backendRender/web/util/DTO/CreateMapDTO.class
-internettehnologii/imaps/backendRender/web/security/CorsConfigurationImpl.class
-internettehnologii/imaps/backendRender/web/service/impl/JWTService.class
-internettehnologii/imaps/backendRender/web/entities/RoomType.class
-internettehnologii/imaps/backendRender/web/service/impl/MapServiceImpl.class
-internettehnologii/imaps/backendRender/web/repo/ReportRepository.class
-internettehnologii/imaps/backendRender/web/exceptions/MapNameTakenException.class
-internettehnologii/imaps/backendRender/ServletInitializer.class
-internettehnologii/imaps/backendRender/web/util/DTO/PublishMapDTO.class
-internettehnologii/imaps/backendRender/web/exceptions/InvalidParametersException.class
-internettehnologii/imaps/backendRender/web/exceptions/FloorAlreadyExistsException.class
Index: imaps-backend/backendRender/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
===================================================================
--- imaps-backend/backendRender/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,87 +1,0 @@
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/BackendRenderApplication.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/ServletInitializer.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/Coordinates.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/Edge.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/MapNode.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/MapNodeParser.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/RouteGraph.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/Shape.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/exceptions/InvalidMapDataException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/exceptions/MapParseException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/graph/exceptions/NodeNotFoundException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/OAuthConfig.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/config/RoleConfig.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/AdminController.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/AuthController.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/InvalidStateException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapDrawController.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/MapViewController.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/controllers/OAuthController.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/Floor.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/FloorId.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/IMapsUser.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/IndoorMap.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/MAP_STATUS.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/PublishRequest.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/RBA/Permission.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/RBA/Role.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/Report.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/entities/RoomType.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/EmailTakenException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/EmptyMapException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/FloorAlreadyExistsException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/FloorNotFoundException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/InvalidParametersException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/MapNameTakenException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/MapNotFoundException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/UserNotFoundException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/exceptions/UsernameTakenException.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/FloorRepository.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/MapRepository.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/PublishRequestRepository.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/ReportRepository.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/RoleRepository.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/RoomTypeRepository.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/repo/UserRepository.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/CorsConfigurationImpl.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/JwtFilter.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/security/WebSecurityConfig.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/FloorServiceImpl.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/GitHubOAuthService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/GoogleOAuthService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/GraphServiceImpl.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/JWTService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/MapServiceImpl.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/MapUserDetailsService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/OAuthStateStore.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/PublishRequestServiceImpl.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/ReportServiceImpl.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/RoomTypeServiceImpl.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/impl/UserServiceImpl.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/FloorService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/GraphService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/MapService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/OAuthService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/PublishRequestService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/ReportService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/RoomTypeService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/StateStore.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/service/interfaces/UserService.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/AddRoomTypeDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/CreateMapDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/FloorDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/GitHubUserInfo.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/GoogleUserInfo.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/MapDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/PublishMapDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/ReportDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/RoomTypeDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/SaveMapDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/UserAuthSuccessDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/UserLoginDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/DTO/UserMapDTO.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/OAuthProviders.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/UserPrincipal.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/Util.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/json/JsonMapData.java
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/main/java/internettehnologii/imaps/backendRender/web/util/json/JsonNodeConverter.java
Index: imaps-backend/backendRender/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
===================================================================
--- imaps-backend/backendRender/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,1 +1,0 @@
-internettehnologii/imaps/backendRender/BackendRenderApplicationTests.class
Index: imaps-backend/backendRender/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
===================================================================
--- imaps-backend/backendRender/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,1 +1,0 @@
-/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/src/test/java/internettehnologii/imaps/backendRender/BackendRenderApplicationTests.java
Index: imaps-backend/backendRender/target/surefire-reports/TEST-internettehnologii.imaps.backendRender.BackendRenderApplicationTests.xml
===================================================================
--- imaps-backend/backendRender/target/surefire-reports/TEST-internettehnologii.imaps.backendRender.BackendRenderApplicationTests.xml	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,111 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="internettehnologii.imaps.backendRender.BackendRenderApplicationTests" time="5.402" tests="1" errors="0" skipped="0" failures="0">
-  <properties>
-    <property name="java.specification.version" value="21"/>
-    <property name="sun.jnu.encoding" value="UTF-8"/>
-    <property name="java.class.path" value="/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/target/test-classes:/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/target/classes:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-thymeleaf/3.3.3/spring-boot-starter-thymeleaf-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter/3.3.3/spring-boot-starter-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-logging/3.3.3/spring-boot-starter-logging-3.3.3.jar:/home/stevetosak/.m2/repository/ch/qos/logback/logback-classic/1.5.7/logback-classic-1.5.7.jar:/home/stevetosak/.m2/repository/ch/qos/logback/logback-core/1.5.7/logback-core-1.5.7.jar:/home/stevetosak/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.23.1/log4j-to-slf4j-2.23.1.jar:/home/stevetosak/.m2/repository/org/apache/logging/log4j/log4j-api/2.23.1/log4j-api-2.23.1.jar:/home/stevetosak/.m2/repository/org/slf4j/jul-to-slf4j/2.0.16/jul-to-slf4j-2.0.16.jar:/home/stevetosak/.m2/repository/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar:/home/stevetosak/.m2/repository/org/thymeleaf/thymeleaf-spring6/3.1.2.RELEASE/thymeleaf-spring6-3.1.2.RELEASE.jar:/home/stevetosak/.m2/repository/org/thymeleaf/thymeleaf/3.1.2.RELEASE/thymeleaf-3.1.2.RELEASE.jar:/home/stevetosak/.m2/repository/org/attoparser/attoparser/2.0.7.RELEASE/attoparser-2.0.7.RELEASE.jar:/home/stevetosak/.m2/repository/org/unbescape/unbescape/1.1.6.RELEASE/unbescape-1.1.6.RELEASE.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-web/3.3.3/spring-boot-starter-web-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-json/3.3.3/spring-boot-starter-json-3.3.3.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.17.2/jackson-datatype-jdk8-2.17.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.17.2/jackson-datatype-jsr310-2.17.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.17.2/jackson-module-parameter-names-2.17.2.jar:/home/stevetosak/.m2/repository/org/springframework/spring-web/6.1.12/spring-web-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-beans/6.1.12/spring-beans-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-webmvc/6.1.12/spring-webmvc-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-context/6.1.12/spring-context-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-expression/6.1.12/spring-expression-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/session/spring-session-core/3.3.2/spring-session-core-3.3.2.jar:/home/stevetosak/.m2/repository/org/springframework/spring-jcl/6.1.12/spring-jcl-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-devtools/3.3.3/spring-boot-devtools-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot/3.3.3/spring-boot-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.3.3/spring-boot-autoconfigure-3.3.3.jar:/home/stevetosak/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar:/home/stevetosak/.m2/repository/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/3.3.3/spring-boot-starter-tomcat-3.3.3.jar:/home/stevetosak/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/home/stevetosak/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.28/tomcat-embed-core-10.1.28.jar:/home/stevetosak/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.28/tomcat-embed-el-10.1.28.jar:/home/stevetosak/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.28/tomcat-embed-websocket-10.1.28.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-test/3.3.3/spring-boot-starter-test-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-test/3.3.3/spring-boot-test-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-test-autoconfigure/3.3.3/spring-boot-test-autoconfigure-3.3.3.jar:/home/stevetosak/.m2/repository/com/jayway/jsonpath/json-path/2.9.0/json-path-2.9.0.jar:/home/stevetosak/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/4.0.2/jakarta.xml.bind-api-4.0.2.jar:/home/stevetosak/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.3/jakarta.activation-api-2.1.3.jar:/home/stevetosak/.m2/repository/net/minidev/json-smart/2.5.1/json-smart-2.5.1.jar:/home/stevetosak/.m2/repository/net/minidev/accessors-smart/2.5.1/accessors-smart-2.5.1.jar:/home/stevetosak/.m2/repository/org/ow2/asm/asm/9.6/asm-9.6.jar:/home/stevetosak/.m2/repository/org/awaitility/awaitility/4.2.2/awaitility-4.2.2.jar:/home/stevetosak/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/home/stevetosak/.m2/repository/org/junit/jupiter/junit-jupiter/5.10.3/junit-jupiter-5.10.3.jar:/home/stevetosak/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.10.3/junit-jupiter-params-5.10.3.jar:/home/stevetosak/.m2/repository/org/mockito/mockito-core/5.11.0/mockito-core-5.11.0.jar:/home/stevetosak/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.19/byte-buddy-agent-1.14.19.jar:/home/stevetosak/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/home/stevetosak/.m2/repository/org/mockito/mockito-junit-jupiter/5.11.0/mockito-junit-jupiter-5.11.0.jar:/home/stevetosak/.m2/repository/org/skyscreamer/jsonassert/1.5.3/jsonassert-1.5.3.jar:/home/stevetosak/.m2/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/home/stevetosak/.m2/repository/org/springframework/spring-core/6.1.12/spring-core-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-test/6.1.12/spring-test-6.1.12.jar:/home/stevetosak/.m2/repository/org/xmlunit/xmlunit-core/2.9.1/xmlunit-core-2.9.1.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-webflux/3.3.3/spring-boot-starter-webflux-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-reactor-netty/3.3.3/spring-boot-starter-reactor-netty-3.3.3.jar:/home/stevetosak/.m2/repository/io/projectreactor/netty/reactor-netty-http/1.1.22/reactor-netty-http-1.1.22.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec-http/4.1.112.Final/netty-codec-http-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-common/4.1.112.Final/netty-common-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-buffer/4.1.112.Final/netty-buffer-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-transport/4.1.112.Final/netty-transport-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec/4.1.112.Final/netty-codec-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-handler/4.1.112.Final/netty-handler-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec-http2/4.1.112.Final/netty-codec-http2-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-resolver-dns/4.1.112.Final/netty-resolver-dns-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-resolver/4.1.112.Final/netty-resolver-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec-dns/4.1.112.Final/netty-codec-dns-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.112.Final/netty-resolver-dns-native-macos-4.1.112.Final-osx-x86_64.jar:/home/stevetosak/.m2/repository/io/netty/netty-resolver-dns-classes-macos/4.1.112.Final/netty-resolver-dns-classes-macos-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-transport-native-epoll/4.1.112.Final/netty-transport-native-epoll-4.1.112.Final-linux-x86_64.jar:/home/stevetosak/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.112.Final/netty-transport-native-unix-common-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.112.Final/netty-transport-classes-epoll-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/projectreactor/netty/reactor-netty-core/1.1.22/reactor-netty-core-1.1.22.jar:/home/stevetosak/.m2/repository/io/netty/netty-handler-proxy/4.1.112.Final/netty-handler-proxy-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec-socks/4.1.112.Final/netty-codec-socks-4.1.112.Final.jar:/home/stevetosak/.m2/repository/org/springframework/spring-webflux/6.1.12/spring-webflux-6.1.12.jar:/home/stevetosak/.m2/repository/io/projectreactor/reactor-test/3.6.9/reactor-test-3.6.9.jar:/home/stevetosak/.m2/repository/io/projectreactor/reactor-core/3.6.9/reactor-core-3.6.9.jar:/home/stevetosak/.m2/repository/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar:/home/stevetosak/.m2/repository/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/3.3.3/spring-boot-starter-data-jpa-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-aop/3.3.3/spring-boot-starter-aop-3.3.3.jar:/home/stevetosak/.m2/repository/org/aspectj/aspectjweaver/1.9.22.1/aspectjweaver-1.9.22.1.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/3.3.3/spring-boot-starter-jdbc-3.3.3.jar:/home/stevetosak/.m2/repository/com/zaxxer/HikariCP/5.1.0/HikariCP-5.1.0.jar:/home/stevetosak/.m2/repository/org/springframework/spring-jdbc/6.1.12/spring-jdbc-6.1.12.jar:/home/stevetosak/.m2/repository/org/hibernate/orm/hibernate-core/6.5.2.Final/hibernate-core-6.5.2.Final.jar:/home/stevetosak/.m2/repository/jakarta/persistence/jakarta.persistence-api/3.1.0/jakarta.persistence-api-3.1.0.jar:/home/stevetosak/.m2/repository/jakarta/transaction/jakarta.transaction-api/2.0.1/jakarta.transaction-api-2.0.1.jar:/home/stevetosak/.m2/repository/org/jboss/logging/jboss-logging/3.5.3.Final/jboss-logging-3.5.3.Final.jar:/home/stevetosak/.m2/repository/org/hibernate/common/hibernate-commons-annotations/6.0.6.Final/hibernate-commons-annotations-6.0.6.Final.jar:/home/stevetosak/.m2/repository/io/smallrye/jandex/3.1.2/jandex-3.1.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/classmate/1.7.0/classmate-1.7.0.jar:/home/stevetosak/.m2/repository/org/glassfish/jaxb/jaxb-runtime/4.0.5/jaxb-runtime-4.0.5.jar:/home/stevetosak/.m2/repository/org/glassfish/jaxb/jaxb-core/4.0.5/jaxb-core-4.0.5.jar:/home/stevetosak/.m2/repository/org/glassfish/jaxb/txw2/4.0.5/txw2-4.0.5.jar:/home/stevetosak/.m2/repository/com/sun/istack/istack-commons-runtime/4.1.2/istack-commons-runtime-4.1.2.jar:/home/stevetosak/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/home/stevetosak/.m2/repository/org/antlr/antlr4-runtime/4.13.0/antlr4-runtime-4.13.0.jar:/home/stevetosak/.m2/repository/org/springframework/data/spring-data-jpa/3.3.3/spring-data-jpa-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/data/spring-data-commons/3.3.3/spring-data-commons-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/spring-orm/6.1.12/spring-orm-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-tx/6.1.12/spring-tx-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-aspects/6.1.12/spring-aspects-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-security/3.3.3/spring-boot-starter-security-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/spring-aop/6.1.12/spring-aop-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-config/6.3.3/spring-security-config-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-web/6.3.3/spring-security-web-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-test/6.3.3/spring-security-test-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-core/6.3.3/spring-security-core-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-crypto/6.3.3/spring-security-crypto-6.3.3.jar:/home/stevetosak/.m2/repository/org/thymeleaf/extras/thymeleaf-extras-springsecurity6/3.1.2.RELEASE/thymeleaf-extras-springsecurity6-3.1.2.RELEASE.jar:/home/stevetosak/.m2/repository/org/slf4j/slf4j-api/2.0.16/slf4j-api-2.0.16.jar:/home/stevetosak/.m2/repository/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar:/home/stevetosak/.m2/repository/io/jsonwebtoken/jjwt-api/0.12.5/jjwt-api-0.12.5.jar:/home/stevetosak/.m2/repository/io/jsonwebtoken/jjwt-impl/0.12.5/jjwt-impl-0.12.5.jar:/home/stevetosak/.m2/repository/io/jsonwebtoken/jjwt-jackson/0.12.5/jjwt-jackson-0.12.5.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.17.2/jackson-databind-2.17.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.17.2/jackson-annotations-2.17.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.17.2/jackson-core-2.17.2.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-oauth2-resource-server/3.3.3/spring-boot-starter-oauth2-resource-server-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-oauth2-resource-server/6.3.3/spring-security-oauth2-resource-server-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-oauth2-core/6.3.3/spring-security-oauth2-core-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-oauth2-jose/6.3.3/spring-security-oauth2-jose-6.3.3.jar:/home/stevetosak/.m2/repository/com/nimbusds/nimbus-jose-jwt/9.37.3/nimbus-jose-jwt-9.37.3.jar:/home/stevetosak/.m2/repository/com/github/stephenc/jcip/jcip-annotations/1.0-1/jcip-annotations-1.0-1.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-mail/3.4.0/spring-boot-starter-mail-3.4.0.jar:/home/stevetosak/.m2/repository/org/springframework/spring-context-support/6.1.12/spring-context-support-6.1.12.jar:/home/stevetosak/.m2/repository/org/eclipse/angus/jakarta.mail/2.0.3/jakarta.mail-2.0.3.jar:/home/stevetosak/.m2/repository/org/eclipse/angus/angus-activation/2.0.2/angus-activation-2.0.2.jar:/home/stevetosak/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar:/home/stevetosak/.m2/repository/junit/junit/4.13.2/junit-4.13.2.jar:/home/stevetosak/.m2/repository/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar:/home/stevetosak/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.9.0/junit-jupiter-api-5.9.0.jar:/home/stevetosak/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/home/stevetosak/.m2/repository/org/junit/platform/junit-platform-commons/1.10.3/junit-platform-commons-1.10.3.jar:/home/stevetosak/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/home/stevetosak/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.9.0/junit-jupiter-engine-5.9.0.jar:/home/stevetosak/.m2/repository/org/junit/platform/junit-platform-engine/1.10.3/junit-platform-engine-1.10.3.jar:/home/stevetosak/.m2/repository/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1.jar:/home/stevetosak/.m2/repository/net/bytebuddy/byte-buddy/1.14.19/byte-buddy-1.14.19.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/3.3.3/spring-boot-starter-actuator-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-actuator-autoconfigure/3.3.3/spring-boot-actuator-autoconfigure-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-actuator/3.3.3/spring-boot-actuator-3.3.3.jar:/home/stevetosak/.m2/repository/io/micrometer/micrometer-observation/1.13.3/micrometer-observation-1.13.3.jar:/home/stevetosak/.m2/repository/io/micrometer/micrometer-commons/1.13.3/micrometer-commons-1.13.3.jar:/home/stevetosak/.m2/repository/io/micrometer/micrometer-jakarta9/1.13.3/micrometer-jakarta9-1.13.3.jar:/home/stevetosak/.m2/repository/io/micrometer/micrometer-core/1.13.3/micrometer-core-1.13.3.jar:/home/stevetosak/.m2/repository/org/hdrhistogram/HdrHistogram/2.2.2/HdrHistogram-2.2.2.jar:/home/stevetosak/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:"/>
-    <property name="java.vm.vendor" value="Oracle Corporation"/>
-    <property name="sun.arch.data.model" value="64"/>
-    <property name="java.vendor.url" value="https://java.oracle.com/"/>
-    <property name="user.timezone" value="Europe/Skopje"/>
-    <property name="org.jboss.logging.provider" value="slf4j"/>
-    <property name="os.name" value="Linux"/>
-    <property name="java.vm.specification.version" value="21"/>
-    <property name="sun.java.launcher" value="SUN_STANDARD"/>
-    <property name="user.country" value="US"/>
-    <property name="sun.boot.library.path" value="/home/stevetosak/.jdks/openjdk-21.0.2/lib"/>
-    <property name="sun.java.command" value="/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/target/surefire/surefirebooter-20250120162808795_3.jar /home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/target/surefire 2025-01-20T16-28-08_741-jvmRun1 surefire-20250120162808795_1tmp surefire_0-20250120162808795_2tmp"/>
-    <property name="jdk.debug" value="release"/>
-    <property name="surefire.test.class.path" value="/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/target/test-classes:/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/target/classes:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-thymeleaf/3.3.3/spring-boot-starter-thymeleaf-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter/3.3.3/spring-boot-starter-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-logging/3.3.3/spring-boot-starter-logging-3.3.3.jar:/home/stevetosak/.m2/repository/ch/qos/logback/logback-classic/1.5.7/logback-classic-1.5.7.jar:/home/stevetosak/.m2/repository/ch/qos/logback/logback-core/1.5.7/logback-core-1.5.7.jar:/home/stevetosak/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.23.1/log4j-to-slf4j-2.23.1.jar:/home/stevetosak/.m2/repository/org/apache/logging/log4j/log4j-api/2.23.1/log4j-api-2.23.1.jar:/home/stevetosak/.m2/repository/org/slf4j/jul-to-slf4j/2.0.16/jul-to-slf4j-2.0.16.jar:/home/stevetosak/.m2/repository/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar:/home/stevetosak/.m2/repository/org/thymeleaf/thymeleaf-spring6/3.1.2.RELEASE/thymeleaf-spring6-3.1.2.RELEASE.jar:/home/stevetosak/.m2/repository/org/thymeleaf/thymeleaf/3.1.2.RELEASE/thymeleaf-3.1.2.RELEASE.jar:/home/stevetosak/.m2/repository/org/attoparser/attoparser/2.0.7.RELEASE/attoparser-2.0.7.RELEASE.jar:/home/stevetosak/.m2/repository/org/unbescape/unbescape/1.1.6.RELEASE/unbescape-1.1.6.RELEASE.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-web/3.3.3/spring-boot-starter-web-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-json/3.3.3/spring-boot-starter-json-3.3.3.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.17.2/jackson-datatype-jdk8-2.17.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.17.2/jackson-datatype-jsr310-2.17.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.17.2/jackson-module-parameter-names-2.17.2.jar:/home/stevetosak/.m2/repository/org/springframework/spring-web/6.1.12/spring-web-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-beans/6.1.12/spring-beans-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-webmvc/6.1.12/spring-webmvc-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-context/6.1.12/spring-context-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-expression/6.1.12/spring-expression-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/session/spring-session-core/3.3.2/spring-session-core-3.3.2.jar:/home/stevetosak/.m2/repository/org/springframework/spring-jcl/6.1.12/spring-jcl-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-devtools/3.3.3/spring-boot-devtools-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot/3.3.3/spring-boot-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.3.3/spring-boot-autoconfigure-3.3.3.jar:/home/stevetosak/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar:/home/stevetosak/.m2/repository/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/3.3.3/spring-boot-starter-tomcat-3.3.3.jar:/home/stevetosak/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/home/stevetosak/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.28/tomcat-embed-core-10.1.28.jar:/home/stevetosak/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.28/tomcat-embed-el-10.1.28.jar:/home/stevetosak/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.28/tomcat-embed-websocket-10.1.28.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-test/3.3.3/spring-boot-starter-test-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-test/3.3.3/spring-boot-test-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-test-autoconfigure/3.3.3/spring-boot-test-autoconfigure-3.3.3.jar:/home/stevetosak/.m2/repository/com/jayway/jsonpath/json-path/2.9.0/json-path-2.9.0.jar:/home/stevetosak/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/4.0.2/jakarta.xml.bind-api-4.0.2.jar:/home/stevetosak/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.3/jakarta.activation-api-2.1.3.jar:/home/stevetosak/.m2/repository/net/minidev/json-smart/2.5.1/json-smart-2.5.1.jar:/home/stevetosak/.m2/repository/net/minidev/accessors-smart/2.5.1/accessors-smart-2.5.1.jar:/home/stevetosak/.m2/repository/org/ow2/asm/asm/9.6/asm-9.6.jar:/home/stevetosak/.m2/repository/org/awaitility/awaitility/4.2.2/awaitility-4.2.2.jar:/home/stevetosak/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/home/stevetosak/.m2/repository/org/junit/jupiter/junit-jupiter/5.10.3/junit-jupiter-5.10.3.jar:/home/stevetosak/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.10.3/junit-jupiter-params-5.10.3.jar:/home/stevetosak/.m2/repository/org/mockito/mockito-core/5.11.0/mockito-core-5.11.0.jar:/home/stevetosak/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.19/byte-buddy-agent-1.14.19.jar:/home/stevetosak/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/home/stevetosak/.m2/repository/org/mockito/mockito-junit-jupiter/5.11.0/mockito-junit-jupiter-5.11.0.jar:/home/stevetosak/.m2/repository/org/skyscreamer/jsonassert/1.5.3/jsonassert-1.5.3.jar:/home/stevetosak/.m2/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/home/stevetosak/.m2/repository/org/springframework/spring-core/6.1.12/spring-core-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-test/6.1.12/spring-test-6.1.12.jar:/home/stevetosak/.m2/repository/org/xmlunit/xmlunit-core/2.9.1/xmlunit-core-2.9.1.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-webflux/3.3.3/spring-boot-starter-webflux-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-reactor-netty/3.3.3/spring-boot-starter-reactor-netty-3.3.3.jar:/home/stevetosak/.m2/repository/io/projectreactor/netty/reactor-netty-http/1.1.22/reactor-netty-http-1.1.22.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec-http/4.1.112.Final/netty-codec-http-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-common/4.1.112.Final/netty-common-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-buffer/4.1.112.Final/netty-buffer-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-transport/4.1.112.Final/netty-transport-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec/4.1.112.Final/netty-codec-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-handler/4.1.112.Final/netty-handler-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec-http2/4.1.112.Final/netty-codec-http2-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-resolver-dns/4.1.112.Final/netty-resolver-dns-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-resolver/4.1.112.Final/netty-resolver-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec-dns/4.1.112.Final/netty-codec-dns-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.112.Final/netty-resolver-dns-native-macos-4.1.112.Final-osx-x86_64.jar:/home/stevetosak/.m2/repository/io/netty/netty-resolver-dns-classes-macos/4.1.112.Final/netty-resolver-dns-classes-macos-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-transport-native-epoll/4.1.112.Final/netty-transport-native-epoll-4.1.112.Final-linux-x86_64.jar:/home/stevetosak/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.112.Final/netty-transport-native-unix-common-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.112.Final/netty-transport-classes-epoll-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/projectreactor/netty/reactor-netty-core/1.1.22/reactor-netty-core-1.1.22.jar:/home/stevetosak/.m2/repository/io/netty/netty-handler-proxy/4.1.112.Final/netty-handler-proxy-4.1.112.Final.jar:/home/stevetosak/.m2/repository/io/netty/netty-codec-socks/4.1.112.Final/netty-codec-socks-4.1.112.Final.jar:/home/stevetosak/.m2/repository/org/springframework/spring-webflux/6.1.12/spring-webflux-6.1.12.jar:/home/stevetosak/.m2/repository/io/projectreactor/reactor-test/3.6.9/reactor-test-3.6.9.jar:/home/stevetosak/.m2/repository/io/projectreactor/reactor-core/3.6.9/reactor-core-3.6.9.jar:/home/stevetosak/.m2/repository/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar:/home/stevetosak/.m2/repository/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/3.3.3/spring-boot-starter-data-jpa-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-aop/3.3.3/spring-boot-starter-aop-3.3.3.jar:/home/stevetosak/.m2/repository/org/aspectj/aspectjweaver/1.9.22.1/aspectjweaver-1.9.22.1.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/3.3.3/spring-boot-starter-jdbc-3.3.3.jar:/home/stevetosak/.m2/repository/com/zaxxer/HikariCP/5.1.0/HikariCP-5.1.0.jar:/home/stevetosak/.m2/repository/org/springframework/spring-jdbc/6.1.12/spring-jdbc-6.1.12.jar:/home/stevetosak/.m2/repository/org/hibernate/orm/hibernate-core/6.5.2.Final/hibernate-core-6.5.2.Final.jar:/home/stevetosak/.m2/repository/jakarta/persistence/jakarta.persistence-api/3.1.0/jakarta.persistence-api-3.1.0.jar:/home/stevetosak/.m2/repository/jakarta/transaction/jakarta.transaction-api/2.0.1/jakarta.transaction-api-2.0.1.jar:/home/stevetosak/.m2/repository/org/jboss/logging/jboss-logging/3.5.3.Final/jboss-logging-3.5.3.Final.jar:/home/stevetosak/.m2/repository/org/hibernate/common/hibernate-commons-annotations/6.0.6.Final/hibernate-commons-annotations-6.0.6.Final.jar:/home/stevetosak/.m2/repository/io/smallrye/jandex/3.1.2/jandex-3.1.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/classmate/1.7.0/classmate-1.7.0.jar:/home/stevetosak/.m2/repository/org/glassfish/jaxb/jaxb-runtime/4.0.5/jaxb-runtime-4.0.5.jar:/home/stevetosak/.m2/repository/org/glassfish/jaxb/jaxb-core/4.0.5/jaxb-core-4.0.5.jar:/home/stevetosak/.m2/repository/org/glassfish/jaxb/txw2/4.0.5/txw2-4.0.5.jar:/home/stevetosak/.m2/repository/com/sun/istack/istack-commons-runtime/4.1.2/istack-commons-runtime-4.1.2.jar:/home/stevetosak/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/home/stevetosak/.m2/repository/org/antlr/antlr4-runtime/4.13.0/antlr4-runtime-4.13.0.jar:/home/stevetosak/.m2/repository/org/springframework/data/spring-data-jpa/3.3.3/spring-data-jpa-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/data/spring-data-commons/3.3.3/spring-data-commons-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/spring-orm/6.1.12/spring-orm-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-tx/6.1.12/spring-tx-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/spring-aspects/6.1.12/spring-aspects-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-security/3.3.3/spring-boot-starter-security-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/spring-aop/6.1.12/spring-aop-6.1.12.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-config/6.3.3/spring-security-config-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-web/6.3.3/spring-security-web-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-test/6.3.3/spring-security-test-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-core/6.3.3/spring-security-core-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-crypto/6.3.3/spring-security-crypto-6.3.3.jar:/home/stevetosak/.m2/repository/org/thymeleaf/extras/thymeleaf-extras-springsecurity6/3.1.2.RELEASE/thymeleaf-extras-springsecurity6-3.1.2.RELEASE.jar:/home/stevetosak/.m2/repository/org/slf4j/slf4j-api/2.0.16/slf4j-api-2.0.16.jar:/home/stevetosak/.m2/repository/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar:/home/stevetosak/.m2/repository/io/jsonwebtoken/jjwt-api/0.12.5/jjwt-api-0.12.5.jar:/home/stevetosak/.m2/repository/io/jsonwebtoken/jjwt-impl/0.12.5/jjwt-impl-0.12.5.jar:/home/stevetosak/.m2/repository/io/jsonwebtoken/jjwt-jackson/0.12.5/jjwt-jackson-0.12.5.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.17.2/jackson-databind-2.17.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.17.2/jackson-annotations-2.17.2.jar:/home/stevetosak/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.17.2/jackson-core-2.17.2.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-oauth2-resource-server/3.3.3/spring-boot-starter-oauth2-resource-server-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-oauth2-resource-server/6.3.3/spring-security-oauth2-resource-server-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-oauth2-core/6.3.3/spring-security-oauth2-core-6.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/security/spring-security-oauth2-jose/6.3.3/spring-security-oauth2-jose-6.3.3.jar:/home/stevetosak/.m2/repository/com/nimbusds/nimbus-jose-jwt/9.37.3/nimbus-jose-jwt-9.37.3.jar:/home/stevetosak/.m2/repository/com/github/stephenc/jcip/jcip-annotations/1.0-1/jcip-annotations-1.0-1.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-mail/3.4.0/spring-boot-starter-mail-3.4.0.jar:/home/stevetosak/.m2/repository/org/springframework/spring-context-support/6.1.12/spring-context-support-6.1.12.jar:/home/stevetosak/.m2/repository/org/eclipse/angus/jakarta.mail/2.0.3/jakarta.mail-2.0.3.jar:/home/stevetosak/.m2/repository/org/eclipse/angus/angus-activation/2.0.2/angus-activation-2.0.2.jar:/home/stevetosak/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar:/home/stevetosak/.m2/repository/junit/junit/4.13.2/junit-4.13.2.jar:/home/stevetosak/.m2/repository/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar:/home/stevetosak/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.9.0/junit-jupiter-api-5.9.0.jar:/home/stevetosak/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/home/stevetosak/.m2/repository/org/junit/platform/junit-platform-commons/1.10.3/junit-platform-commons-1.10.3.jar:/home/stevetosak/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/home/stevetosak/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.9.0/junit-jupiter-engine-5.9.0.jar:/home/stevetosak/.m2/repository/org/junit/platform/junit-platform-engine/1.10.3/junit-platform-engine-1.10.3.jar:/home/stevetosak/.m2/repository/org/assertj/assertj-core/3.23.1/assertj-core-3.23.1.jar:/home/stevetosak/.m2/repository/net/bytebuddy/byte-buddy/1.14.19/byte-buddy-1.14.19.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/3.3.3/spring-boot-starter-actuator-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-actuator-autoconfigure/3.3.3/spring-boot-actuator-autoconfigure-3.3.3.jar:/home/stevetosak/.m2/repository/org/springframework/boot/spring-boot-actuator/3.3.3/spring-boot-actuator-3.3.3.jar:/home/stevetosak/.m2/repository/io/micrometer/micrometer-observation/1.13.3/micrometer-observation-1.13.3.jar:/home/stevetosak/.m2/repository/io/micrometer/micrometer-commons/1.13.3/micrometer-commons-1.13.3.jar:/home/stevetosak/.m2/repository/io/micrometer/micrometer-jakarta9/1.13.3/micrometer-jakarta9-1.13.3.jar:/home/stevetosak/.m2/repository/io/micrometer/micrometer-core/1.13.3/micrometer-core-1.13.3.jar:/home/stevetosak/.m2/repository/org/hdrhistogram/HdrHistogram/2.2.2/HdrHistogram-2.2.2.jar:/home/stevetosak/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:"/>
-    <property name="sun.cpu.endian" value="little"/>
-    <property name="user.home" value="/home/stevetosak"/>
-    <property name="user.language" value="en"/>
-    <property name="java.specification.vendor" value="Oracle Corporation"/>
-    <property name="java.version.date" value="2024-01-16"/>
-    <property name="java.home" value="/home/stevetosak/.jdks/openjdk-21.0.2"/>
-    <property name="file.separator" value="/"/>
-    <property name="basedir" value="/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender"/>
-    <property name="java.vm.compressedOopsMode" value="Zero based"/>
-    <property name="line.separator" value="&#10;"/>
-    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
-    <property name="java.specification.name" value="Java Platform API Specification"/>
-    <property name="FILE_LOG_CHARSET" value="UTF-8"/>
-    <property name="java.awt.headless" value="true"/>
-    <property name="surefire.real.class.path" value="/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender/target/surefire/surefirebooter-20250120162808795_3.jar"/>
-    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
-    <property name="java.runtime.version" value="21.0.2+13-58"/>
-    <property name="user.name" value="stevetosak"/>
-    <property name="stdout.encoding" value="UTF-8"/>
-    <property name="path.separator" value=":"/>
-    <property name="os.version" value="6.8.0-51-generic"/>
-    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
-    <property name="file.encoding" value="UTF-8"/>
-    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
-    <property name="localRepository" value="/home/stevetosak/.m2/repository"/>
-    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
-    <property name="java.io.tmpdir" value="/tmp"/>
-    <property name="idea.version" value="2024.2.3"/>
-    <property name="com.zaxxer.hikari.pool_number" value="1"/>
-    <property name="java.version" value="21.0.2"/>
-    <property name="user.dir" value="/home/stevetosak/Proekt/IMaps/imaps-backend/backendRender"/>
-    <property name="os.arch" value="amd64"/>
-    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
-    <property name="PID" value="33783"/>
-    <property name="CONSOLE_LOG_CHARSET" value="UTF-8"/>
-    <property name="native.encoding" value="UTF-8"/>
-    <property name="java.library.path" value="/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib"/>
-    <property name="java.vm.info" value="mixed mode, sharing"/>
-    <property name="stderr.encoding" value="UTF-8"/>
-    <property name="java.vendor" value="Oracle Corporation"/>
-    <property name="java.vm.version" value="21.0.2+13-58"/>
-    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
-    <property name="java.class.version" value="65.0"/>
-    <property name="LOGGED_APPLICATION_NAME" value="[imaps-backend] "/>
-  </properties>
-  <testcase name="contextLoads" classname="internettehnologii.imaps.backendRender.BackendRenderApplicationTests" time="0.344">
-    <system-out><![CDATA[16:28:09.293 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [internettehnologii.imaps.backendRender.BackendRenderApplicationTests]: BackendRenderApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
-16:28:09.356 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration internettehnologii.imaps.backendRender.BackendRenderApplication for test class internettehnologii.imaps.backendRender.BackendRenderApplicationTests
-16:28:09.461 [main] INFO org.springframework.boot.devtools.restart.RestartApplicationListener -- Restart disabled due to context in which it is running
-
-  .   ____          _            __ _ _
- /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
-( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
- \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
-  '  |____| .__|_| |_|_| |_\__, | / / / /
- =========|_|==============|___/=/_/_/_/
-
- :: Spring Boot ::                (v3.3.3)
-
-2025-01-20T16:28:09.631+01:00  INFO 33783 --- [imaps-backend] [           main] i.i.b.BackendRenderApplicationTests      : Starting BackendRenderApplicationTests using Java 21.0.2 with PID 33783 (started by stevetosak in /home/stevetosak/Proekt/IMaps/imaps-backend/backendRender)
-2025-01-20T16:28:09.632+01:00  INFO 33783 --- [imaps-backend] [           main] i.i.b.BackendRenderApplicationTests      : The following 1 profile is active: "prod"
-2025-01-20T16:28:09.653+01:00 DEBUG 33783 --- [imaps-backend] [           main] o.s.w.c.s.GenericWebApplicationContext   : Refreshing org.springframework.web.context.support.GenericWebApplicationContext@5ed190be
-2025-01-20T16:28:10.381+01:00  INFO 33783 --- [imaps-backend] [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
-2025-01-20T16:28:10.487+01:00  INFO 33783 --- [imaps-backend] [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 102 ms. Found 7 JPA repository interfaces.
-2025-01-20T16:28:11.013+01:00  INFO 33783 --- [imaps-backend] [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
-2025-01-20T16:28:11.050+01:00  INFO 33783 --- [imaps-backend] [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 6.5.2.Final
-2025-01-20T16:28:11.071+01:00  INFO 33783 --- [imaps-backend] [           main] o.h.c.internal.RegionFactoryInitiator    : HHH000026: Second-level cache disabled
-2025-01-20T16:28:11.280+01:00  INFO 33783 --- [imaps-backend] [           main] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
-2025-01-20T16:28:11.301+01:00  INFO 33783 --- [imaps-backend] [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
-2025-01-20T16:28:11.436+01:00  INFO 33783 --- [imaps-backend] [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@311a09b2
-2025-01-20T16:28:11.437+01:00  INFO 33783 --- [imaps-backend] [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
-2025-01-20T16:28:11.464+01:00  WARN 33783 --- [imaps-backend] [           main] org.hibernate.orm.deprecation            : HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
-2025-01-20T16:28:12.225+01:00  INFO 33783 --- [imaps-backend] [           main] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
-2025-01-20T16:28:12.271+01:00  INFO 33783 --- [imaps-backend] [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
-2025-01-20T16:28:12.517+01:00  INFO 33783 --- [imaps-backend] [           main] o.s.d.j.r.query.QueryEnhancerFactory     : Hibernate is in classpath; If applicable, HQL parser will be used.
-2025-01-20T16:28:12.971+01:00  WARN 33783 --- [imaps-backend] [           main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
-2025-01-20T16:28:13.068+01:00 DEBUG 33783 --- [imaps-backend] [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : 34 mappings in 'requestMappingHandlerMapping'
-2025-01-20T16:28:13.193+01:00 DEBUG 33783 --- [imaps-backend] [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Patterns [/webjars/**, /**] in 'resourceHandlerMapping'
-2025-01-20T16:28:13.347+01:00  INFO 33783 --- [imaps-backend] [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint beneath base path '/actuator'
-2025-01-20T16:28:13.416+01:00  INFO 33783 --- [imaps-backend] [           main] eAuthenticationProviderManagerConfigurer : Global AuthenticationManager configured with AuthenticationProvider bean with name authenticationProvider
-2025-01-20T16:28:13.417+01:00  WARN 33783 --- [imaps-backend] [           main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with an AuthenticationProvider bean. UserDetailsService beans will not be used for username/password login. Consider removing the AuthenticationProvider bean. Alternatively, consider using the UserDetailsService in a manually instantiated DaoAuthenticationProvider.
-2025-01-20T16:28:13.839+01:00 DEBUG 33783 --- [imaps-backend] [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
-2025-01-20T16:28:13.865+01:00 DEBUG 33783 --- [imaps-backend] [           main] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 0 @ExceptionHandler, 1 ResponseBodyAdvice
-2025-01-20T16:28:14.176+01:00  INFO 33783 --- [imaps-backend] [           main] i.i.b.BackendRenderApplicationTests      : Started BackendRenderApplicationTests in 4.723 seconds (process running for 5.333)
-]]></system-out>
-    <system-err><![CDATA[WARNING: A Java agent has been loaded dynamically (/home/stevetosak/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.19/byte-buddy-agent-1.14.19.jar)
-WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
-WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
-WARNING: Dynamic loading of agents will be disallowed by default in a future release
-]]></system-err>
-  </testcase>
-</testsuite>
Index: imaps-backend/backendRender/target/surefire-reports/internettehnologii.imaps.backendRender.BackendRenderApplicationTests.txt
===================================================================
--- imaps-backend/backendRender/target/surefire-reports/internettehnologii.imaps.backendRender.BackendRenderApplicationTests.txt	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ 	(revision )
@@ -1,4 +1,0 @@
--------------------------------------------------------------------------------
-Test set: internettehnologii.imaps.backendRender.BackendRenderApplicationTests
--------------------------------------------------------------------------------
-Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.402 s -- in internettehnologii.imaps.backendRender.BackendRenderApplicationTests
