Explorar el Código

added accountService and Playlist

Raymond Farria hace 6 años
padre
commit
d2ab2ff922

+ 365
- 69
.idea/workspace.xml Ver fichero

@@ -1,7 +1,13 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <project version="4">
3 3
   <component name="ChangeListManager">
4
-    <list default="true" id="f0691c72-587d-4660-a4e1-896abd286038" name="Default" comment="" />
4
+    <list default="true" id="f0691c72-587d-4660-a4e1-896abd286038" name="Default" comment="">
5
+      <change beforePath="" afterPath="$PROJECT_DIR$/Main/src/Accounts/AccountService.java" />
6
+      <change beforePath="" afterPath="$PROJECT_DIR$/Main/src/Controllers/ApiController.java" />
7
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
8
+      <change beforePath="$PROJECT_DIR$/Main/Main.iml" afterPath="$PROJECT_DIR$/Main/Main.iml" />
9
+      <change beforePath="$PROJECT_DIR$/Main/src/Accounts/AccountDetails.java" afterPath="$PROJECT_DIR$/Main/src/Accounts/AccountDetails.java" />
10
+    </list>
5 11
     <ignored path="$PROJECT_DIR$/target/" />
6 12
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
7 13
     <option name="TRACKING_ENABLED" value="true" />
@@ -15,6 +21,16 @@
15 21
   </component>
16 22
   <component name="FileEditorManager">
17 23
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
24
+      <file leaf-file-name="AccountDetails.java" pinned="false" current-in-tab="false">
25
+        <entry file="file://$PROJECT_DIR$/Main/src/Accounts/AccountDetails.java">
26
+          <provider selected="true" editor-type-id="text-editor">
27
+            <state relative-caret-position="368">
28
+              <caret line="17" column="49" lean-forward="false" selection-start-line="17" selection-start-column="49" selection-end-line="17" selection-end-column="49" />
29
+              <folding />
30
+            </state>
31
+          </provider>
32
+        </entry>
33
+      </file>
18 34
       <file leaf-file-name="Account.java" pinned="false" current-in-tab="false">
19 35
         <entry file="file://$PROJECT_DIR$/Main/src/Accounts/Account.java">
20 36
           <provider selected="true" editor-type-id="text-editor">
@@ -65,36 +81,23 @@
65 81
           </provider>
66 82
         </entry>
67 83
       </file>
68
-      <file leaf-file-name="PlaylistLibrary.java" pinned="false" current-in-tab="true">
69
-        <entry file="file://$PROJECT_DIR$/Main/src/Music/PlaylistLibrary.java">
84
+      <file leaf-file-name="ApiController.java" pinned="false" current-in-tab="true">
85
+        <entry file="file://$PROJECT_DIR$/Main/src/Controllers/ApiController.java">
70 86
           <provider selected="true" editor-type-id="text-editor">
71
-            <state relative-caret-position="161">
72
-              <caret line="7" column="27" lean-forward="true" selection-start-line="7" selection-start-column="27" selection-end-line="7" selection-end-column="27" />
87
+            <state relative-caret-position="299">
88
+              <caret line="13" column="17" lean-forward="false" selection-start-line="13" selection-start-column="17" selection-end-line="13" selection-end-column="17" />
73 89
               <folding>
74
-                <element signature="e#193#194#0" expanded="true" />
75
-                <element signature="e#237#238#0" expanded="true" />
76
-                <element signature="e#293#294#0" expanded="true" />
77
-                <element signature="e#324#325#0" expanded="true" />
90
+                <element signature="imports" expanded="true" />
78 91
               </folding>
79 92
             </state>
80 93
           </provider>
81 94
         </entry>
82 95
       </file>
83
-      <file leaf-file-name="Playlist.java" pinned="false" current-in-tab="false">
84
-        <entry file="file://$PROJECT_DIR$/Main/src/Music/Playlist.java">
85
-          <provider selected="true" editor-type-id="text-editor">
86
-            <state relative-caret-position="69">
87
-              <caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
88
-              <folding />
89
-            </state>
90
-          </provider>
91
-        </entry>
92
-      </file>
93
-      <file leaf-file-name="SecurityApplication.java" pinned="false" current-in-tab="false">
94
-        <entry file="file://$PROJECT_DIR$/Main/src/Security/SecurityApplication.java">
96
+      <file leaf-file-name="AccountService.java" pinned="false" current-in-tab="false">
97
+        <entry file="file://$PROJECT_DIR$/Main/src/Accounts/AccountService.java">
95 98
           <provider selected="true" editor-type-id="text-editor">
96
-            <state relative-caret-position="138">
97
-              <caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
99
+            <state relative-caret-position="436">
100
+              <caret line="38" column="98" lean-forward="false" selection-start-line="38" selection-start-column="98" selection-end-line="38" selection-end-column="98" />
98 101
               <folding>
99 102
                 <element signature="imports" expanded="true" />
100 103
               </folding>
@@ -127,10 +130,12 @@
127 130
         <option value="$PROJECT_DIR$/Main/src/AccountDetails.java" />
128 131
         <option value="$PROJECT_DIR$/Main/src/Security/SecurityApplication.java" />
129 132
         <option value="$PROJECT_DIR$/.idea/pom.xml" />
130
-        <option value="$PROJECT_DIR$/Main/src/Accounts/AccountDetails.java" />
131 133
         <option value="$PROJECT_DIR$/Main/src/Accounts/Account.java" />
132 134
         <option value="$PROJECT_DIR$/Main/src/Music/Playlist.java" />
133 135
         <option value="$PROJECT_DIR$/Main/src/Music/PlaylistLibrary.java" />
136
+        <option value="$PROJECT_DIR$/Main/src/Accounts/AccountDetails.java" />
137
+        <option value="$PROJECT_DIR$/Main/src/Accounts/AccountService.java" />
138
+        <option value="$PROJECT_DIR$/Main/src/Controllers/ApiController.java" />
134 139
       </list>
135 140
     </option>
136 141
   </component>
@@ -140,7 +145,7 @@
140 145
     <detection-done>true</detection-done>
141 146
     <sorting>DEFINITION_ORDER</sorting>
142 147
   </component>
143
-  <component name="ProjectFrameBounds" fullScreen="true">
148
+  <component name="ProjectFrameBounds" extendedState="6" fullScreen="true">
144 149
     <option name="width" value="838" />
145 150
     <option name="height" value="1050" />
146 151
   </component>
@@ -159,6 +164,10 @@
159 164
       <foldersAlwaysOnTop value="true" />
160 165
     </navigator>
161 166
     <panes>
167
+      <pane id="PackagesPane" />
168
+      <pane id="AndroidView" />
169
+      <pane id="Scope" />
170
+      <pane id="Scratches" />
162 171
       <pane id="ProjectPane">
163 172
         <subPane>
164 173
           <expand>
@@ -177,14 +186,17 @@
177 186
               <item name="Main" type="462c0819:PsiDirectoryNode" />
178 187
               <item name="src" type="462c0819:PsiDirectoryNode" />
179 188
             </path>
189
+            <path>
190
+              <item name="The-Cookout_Passion-Project" type="b2602c69:ProjectViewProjectNode" />
191
+              <item name="The-Cookout_Passion-Project" type="462c0819:PsiDirectoryNode" />
192
+              <item name="Main" type="462c0819:PsiDirectoryNode" />
193
+              <item name="src" type="462c0819:PsiDirectoryNode" />
194
+              <item name="Accounts" type="462c0819:PsiDirectoryNode" />
195
+            </path>
180 196
           </expand>
181 197
           <select />
182 198
         </subPane>
183 199
       </pane>
184
-      <pane id="Scope" />
185
-      <pane id="AndroidView" />
186
-      <pane id="PackagesPane" />
187
-      <pane id="Scratches" />
188 200
     </panes>
189 201
   </component>
190 202
   <component name="PropertiesComponent">
@@ -197,6 +209,9 @@
197 209
     <property name="project.structure.proportion" value="0.15" />
198 210
     <property name="project.structure.side.proportion" value="0.2" />
199 211
     <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
212
+    <property name="Downloaded.Files.Path.Enabled" value="false" />
213
+    <property name="Repository.Attach.JavaDocs" value="false" />
214
+    <property name="Repository.Attach.Sources" value="false" />
200 215
   </component>
201 216
   <component name="RecentsManager">
202 217
     <key name="MoveFile.RECENT_KEYS">
@@ -320,45 +335,47 @@
320 335
       <workItem from="1531249916305" duration="520000" />
321 336
       <workItem from="1531250508758" duration="726000" />
322 337
       <workItem from="1531251316887" duration="16000" />
323
-      <workItem from="1531251360612" duration="6024000" />
338
+      <workItem from="1531251360612" duration="6544000" />
339
+      <workItem from="1531277002552" duration="1506000" />
324 340
     </task>
325 341
     <servers />
326 342
   </component>
327 343
   <component name="TimeTrackingManager">
328
-    <option name="totallyTimeSpent" value="11824000" />
344
+    <option name="totallyTimeSpent" value="13850000" />
329 345
   </component>
330 346
   <component name="ToolWindowManager">
331
-    <frame x="0" y="0" width="838" height="1050" extended-state="0" />
347
+    <frame x="0" y="0" width="1680" height="1050" extended-state="6" />
348
+    <editor active="true" />
332 349
     <layout>
333 350
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
351
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
352
+      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
353
+      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
354
+      <window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
355
+      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
334 356
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
335 357
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
358
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
359
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
360
+      <window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
361
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.29068577" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
336 362
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
337 363
       <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
364
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.68592966" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
365
+      <window_info id="Bean Validation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
366
+      <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
338 367
       <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
339 368
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
340 369
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
341 370
       <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
342
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
343
-      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
344
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
345
-      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
346
-      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
347
-      <window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
348
-      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
349
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
350
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
351
-      <window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
352
-      <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.29068577" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
353
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32914573" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
354
-      <window_info id="Bean Validation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
355
-      <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
356 371
       <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
372
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
357 373
       <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
358 374
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
359 375
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
360 376
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
361 377
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
378
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
362 379
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
363 380
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
364 381
     </layout>
@@ -374,6 +391,85 @@
374 391
     <watches-manager />
375 392
   </component>
376 393
   <component name="editorHistoryManager">
394
+    <entry file="file://$PROJECT_DIR$/Main/src/Accounts/Account.java">
395
+      <provider selected="true" editor-type-id="text-editor">
396
+        <state relative-caret-position="966">
397
+          <caret line="42" column="0" lean-forward="false" selection-start-line="42" selection-start-column="0" selection-end-line="42" selection-end-column="0" />
398
+          <folding>
399
+            <element signature="imports" expanded="true" />
400
+            <element signature="e#1436#1437#0" expanded="true" />
401
+            <element signature="e#1476#1477#0" expanded="true" />
402
+            <element signature="e#1533#1534#0" expanded="true" />
403
+            <element signature="e#1572#1573#0" expanded="true" />
404
+            <element signature="e#1634#1635#0" expanded="true" />
405
+            <element signature="e#1678#1679#0" expanded="true" />
406
+            <element signature="e#1726#1727#0" expanded="true" />
407
+            <element signature="e#1756#1757#0" expanded="true" />
408
+            <element signature="e#1900#1901#0" expanded="true" />
409
+            <element signature="e#1958#1959#0" expanded="true" />
410
+            <element signature="e#2023#2024#0" expanded="true" />
411
+            <element signature="e#2079#2080#0" expanded="true" />
412
+            <element signature="e#2267#2268#0" expanded="true" />
413
+            <element signature="e#2305#2306#0" expanded="true" />
414
+            <element signature="e#2354#2355#0" expanded="true" />
415
+            <element signature="e#2385#2386#0" expanded="true" />
416
+            <element signature="e#2434#2435#0" expanded="true" />
417
+            <element signature="e#2465#2466#0" expanded="true" />
418
+            <element signature="e#2492#2493#0" expanded="true" />
419
+            <element signature="e#2517#2518#0" expanded="true" />
420
+            <element signature="e#2551#2552#0" expanded="true" />
421
+            <element signature="e#2579#2580#0" expanded="true" />
422
+            <element signature="e#2627#2628#0" expanded="true" />
423
+            <element signature="e#2667#2668#0" expanded="true" />
424
+            <element signature="e#2715#2716#0" expanded="true" />
425
+            <element signature="e#2755#2756#0" expanded="true" />
426
+            <element signature="e#2786#2787#0" expanded="true" />
427
+            <element signature="e#2813#2814#0" expanded="true" />
428
+            <element signature="e#2853#2854#0" expanded="true" />
429
+            <element signature="e#2885#2886#0" expanded="true" />
430
+            <element signature="e#2917#2918#0" expanded="true" />
431
+            <element signature="e#2945#2946#0" expanded="true" />
432
+            <element signature="e#2987#2988#0" expanded="true" />
433
+            <element signature="e#3021#3022#0" expanded="true" />
434
+            <element signature="e#3059#3060#0" expanded="true" />
435
+            <element signature="e#3087#3088#0" expanded="true" />
436
+            <element signature="e#3135#3136#0" expanded="true" />
437
+            <element signature="e#3169#3170#0" expanded="true" />
438
+          </folding>
439
+        </state>
440
+      </provider>
441
+    </entry>
442
+    <entry file="file://$PROJECT_DIR$/Main/src/Music/Playlist.java">
443
+      <provider selected="true" editor-type-id="text-editor">
444
+        <state relative-caret-position="69">
445
+          <caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
446
+          <folding />
447
+        </state>
448
+      </provider>
449
+    </entry>
450
+    <entry file="file://$PROJECT_DIR$/Main/src/Security/SecurityApplication.java">
451
+      <provider selected="true" editor-type-id="text-editor">
452
+        <state relative-caret-position="138">
453
+          <caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
454
+          <folding>
455
+            <element signature="imports" expanded="false" />
456
+          </folding>
457
+        </state>
458
+      </provider>
459
+    </entry>
460
+    <entry file="file://$PROJECT_DIR$/Main/src/Music/PlaylistLibrary.java">
461
+      <provider selected="true" editor-type-id="text-editor">
462
+        <state relative-caret-position="161">
463
+          <caret line="7" column="27" lean-forward="false" selection-start-line="7" selection-start-column="27" selection-end-line="7" selection-end-column="27" />
464
+          <folding>
465
+            <element signature="e#193#194#0" expanded="false" />
466
+            <element signature="e#237#238#0" expanded="false" />
467
+            <element signature="e#293#294#0" expanded="false" />
468
+            <element signature="e#324#325#0" expanded="false" />
469
+          </folding>
470
+        </state>
471
+      </provider>
472
+    </entry>
377 473
     <entry file="file://$PROJECT_DIR$/Main/src/Accounts/AccountDetails.java">
378 474
       <provider selected="true" editor-type-id="text-editor">
379 475
         <state relative-caret-position="92">
@@ -396,7 +492,6 @@
396 492
       <provider selected="true" editor-type-id="text-editor">
397 493
         <state relative-caret-position="0">
398 494
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
399
-          <folding />
400 495
         </state>
401 496
       </provider>
402 497
     </entry>
@@ -404,7 +499,6 @@
404 499
       <provider selected="true" editor-type-id="text-editor">
405 500
         <state relative-caret-position="0">
406 501
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
407
-          <folding />
408 502
         </state>
409 503
       </provider>
410 504
     </entry>
@@ -414,6 +508,44 @@
414 508
           <caret line="1" column="0" lean-forward="false" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
415 509
           <folding>
416 510
             <element signature="imports" expanded="true" />
511
+            <element signature="e#1436#1437#0" expanded="true" />
512
+            <element signature="e#1476#1477#0" expanded="true" />
513
+            <element signature="e#1533#1534#0" expanded="true" />
514
+            <element signature="e#1572#1573#0" expanded="true" />
515
+            <element signature="e#1634#1635#0" expanded="true" />
516
+            <element signature="e#1678#1679#0" expanded="true" />
517
+            <element signature="e#1726#1727#0" expanded="true" />
518
+            <element signature="e#1756#1757#0" expanded="true" />
519
+            <element signature="e#1900#1901#0" expanded="true" />
520
+            <element signature="e#1958#1959#0" expanded="true" />
521
+            <element signature="e#2023#2024#0" expanded="true" />
522
+            <element signature="e#2079#2080#0" expanded="true" />
523
+            <element signature="e#2267#2268#0" expanded="true" />
524
+            <element signature="e#2305#2306#0" expanded="true" />
525
+            <element signature="e#2354#2355#0" expanded="true" />
526
+            <element signature="e#2385#2386#0" expanded="true" />
527
+            <element signature="e#2434#2435#0" expanded="true" />
528
+            <element signature="e#2465#2466#0" expanded="true" />
529
+            <element signature="e#2492#2493#0" expanded="true" />
530
+            <element signature="e#2517#2518#0" expanded="true" />
531
+            <element signature="e#2551#2552#0" expanded="true" />
532
+            <element signature="e#2579#2580#0" expanded="true" />
533
+            <element signature="e#2627#2628#0" expanded="true" />
534
+            <element signature="e#2667#2668#0" expanded="true" />
535
+            <element signature="e#2715#2716#0" expanded="true" />
536
+            <element signature="e#2755#2756#0" expanded="true" />
537
+            <element signature="e#2786#2787#0" expanded="true" />
538
+            <element signature="e#2813#2814#0" expanded="true" />
539
+            <element signature="e#2853#2854#0" expanded="true" />
540
+            <element signature="e#2885#2886#0" expanded="true" />
541
+            <element signature="e#2917#2918#0" expanded="true" />
542
+            <element signature="e#2945#2946#0" expanded="true" />
543
+            <element signature="e#2987#2988#0" expanded="true" />
544
+            <element signature="e#3021#3022#0" expanded="true" />
545
+            <element signature="e#3059#3060#0" expanded="true" />
546
+            <element signature="e#3087#3088#0" expanded="true" />
547
+            <element signature="e#3135#3136#0" expanded="true" />
548
+            <element signature="e#3169#3170#0" expanded="true" />
417 549
           </folding>
418 550
         </state>
419 551
       </provider>
@@ -440,7 +572,6 @@
440 572
       <provider selected="true" editor-type-id="text-editor">
441 573
         <state relative-caret-position="0">
442 574
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
443
-          <folding />
444 575
         </state>
445 576
       </provider>
446 577
     </entry>
@@ -448,7 +579,6 @@
448 579
       <provider selected="true" editor-type-id="text-editor">
449 580
         <state relative-caret-position="0">
450 581
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
451
-          <folding />
452 582
         </state>
453 583
       </provider>
454 584
     </entry>
@@ -458,6 +588,44 @@
458 588
           <caret line="1" column="0" lean-forward="true" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
459 589
           <folding>
460 590
             <element signature="imports" expanded="true" />
591
+            <element signature="e#1436#1437#0" expanded="true" />
592
+            <element signature="e#1476#1477#0" expanded="true" />
593
+            <element signature="e#1533#1534#0" expanded="true" />
594
+            <element signature="e#1572#1573#0" expanded="true" />
595
+            <element signature="e#1634#1635#0" expanded="true" />
596
+            <element signature="e#1678#1679#0" expanded="true" />
597
+            <element signature="e#1726#1727#0" expanded="true" />
598
+            <element signature="e#1756#1757#0" expanded="true" />
599
+            <element signature="e#1900#1901#0" expanded="true" />
600
+            <element signature="e#1958#1959#0" expanded="true" />
601
+            <element signature="e#2023#2024#0" expanded="true" />
602
+            <element signature="e#2079#2080#0" expanded="true" />
603
+            <element signature="e#2267#2268#0" expanded="true" />
604
+            <element signature="e#2305#2306#0" expanded="true" />
605
+            <element signature="e#2354#2355#0" expanded="true" />
606
+            <element signature="e#2385#2386#0" expanded="true" />
607
+            <element signature="e#2434#2435#0" expanded="true" />
608
+            <element signature="e#2465#2466#0" expanded="true" />
609
+            <element signature="e#2492#2493#0" expanded="true" />
610
+            <element signature="e#2517#2518#0" expanded="true" />
611
+            <element signature="e#2551#2552#0" expanded="true" />
612
+            <element signature="e#2579#2580#0" expanded="true" />
613
+            <element signature="e#2627#2628#0" expanded="true" />
614
+            <element signature="e#2667#2668#0" expanded="true" />
615
+            <element signature="e#2715#2716#0" expanded="true" />
616
+            <element signature="e#2755#2756#0" expanded="true" />
617
+            <element signature="e#2786#2787#0" expanded="true" />
618
+            <element signature="e#2813#2814#0" expanded="true" />
619
+            <element signature="e#2853#2854#0" expanded="true" />
620
+            <element signature="e#2885#2886#0" expanded="true" />
621
+            <element signature="e#2917#2918#0" expanded="true" />
622
+            <element signature="e#2945#2946#0" expanded="true" />
623
+            <element signature="e#2987#2988#0" expanded="true" />
624
+            <element signature="e#3021#3022#0" expanded="true" />
625
+            <element signature="e#3059#3060#0" expanded="true" />
626
+            <element signature="e#3087#3088#0" expanded="true" />
627
+            <element signature="e#3135#3136#0" expanded="true" />
628
+            <element signature="e#3169#3170#0" expanded="true" />
461 629
           </folding>
462 630
         </state>
463 631
       </provider>
@@ -468,6 +636,44 @@
468 636
           <caret line="2" column="32" lean-forward="true" selection-start-line="2" selection-start-column="32" selection-end-line="2" selection-end-column="32" />
469 637
           <folding>
470 638
             <element signature="imports" expanded="true" />
639
+            <element signature="e#1436#1437#0" expanded="true" />
640
+            <element signature="e#1476#1477#0" expanded="true" />
641
+            <element signature="e#1533#1534#0" expanded="true" />
642
+            <element signature="e#1572#1573#0" expanded="true" />
643
+            <element signature="e#1634#1635#0" expanded="true" />
644
+            <element signature="e#1678#1679#0" expanded="true" />
645
+            <element signature="e#1726#1727#0" expanded="true" />
646
+            <element signature="e#1756#1757#0" expanded="true" />
647
+            <element signature="e#1900#1901#0" expanded="true" />
648
+            <element signature="e#1958#1959#0" expanded="true" />
649
+            <element signature="e#2023#2024#0" expanded="true" />
650
+            <element signature="e#2079#2080#0" expanded="true" />
651
+            <element signature="e#2267#2268#0" expanded="true" />
652
+            <element signature="e#2305#2306#0" expanded="true" />
653
+            <element signature="e#2354#2355#0" expanded="true" />
654
+            <element signature="e#2385#2386#0" expanded="true" />
655
+            <element signature="e#2434#2435#0" expanded="true" />
656
+            <element signature="e#2465#2466#0" expanded="true" />
657
+            <element signature="e#2492#2493#0" expanded="true" />
658
+            <element signature="e#2517#2518#0" expanded="true" />
659
+            <element signature="e#2551#2552#0" expanded="true" />
660
+            <element signature="e#2579#2580#0" expanded="true" />
661
+            <element signature="e#2627#2628#0" expanded="true" />
662
+            <element signature="e#2667#2668#0" expanded="true" />
663
+            <element signature="e#2715#2716#0" expanded="true" />
664
+            <element signature="e#2755#2756#0" expanded="true" />
665
+            <element signature="e#2786#2787#0" expanded="true" />
666
+            <element signature="e#2813#2814#0" expanded="true" />
667
+            <element signature="e#2853#2854#0" expanded="true" />
668
+            <element signature="e#2885#2886#0" expanded="true" />
669
+            <element signature="e#2917#2918#0" expanded="true" />
670
+            <element signature="e#2945#2946#0" expanded="true" />
671
+            <element signature="e#2987#2988#0" expanded="true" />
672
+            <element signature="e#3021#3022#0" expanded="true" />
673
+            <element signature="e#3059#3060#0" expanded="true" />
674
+            <element signature="e#3087#3088#0" expanded="true" />
675
+            <element signature="e#3135#3136#0" expanded="true" />
676
+            <element signature="e#3169#3170#0" expanded="true" />
471 677
           </folding>
472 678
         </state>
473 679
       </provider>
@@ -500,7 +706,6 @@
500 706
       <provider selected="true" editor-type-id="text-editor">
501 707
         <state relative-caret-position="0">
502 708
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
503
-          <folding />
504 709
         </state>
505 710
       </provider>
506 711
     </entry>
@@ -527,6 +732,44 @@
527 732
           <caret line="7" column="22" lean-forward="true" selection-start-line="7" selection-start-column="22" selection-end-line="7" selection-end-column="22" />
528 733
           <folding>
529 734
             <element signature="imports" expanded="true" />
735
+            <element signature="e#1436#1437#0" expanded="true" />
736
+            <element signature="e#1476#1477#0" expanded="true" />
737
+            <element signature="e#1533#1534#0" expanded="true" />
738
+            <element signature="e#1572#1573#0" expanded="true" />
739
+            <element signature="e#1634#1635#0" expanded="true" />
740
+            <element signature="e#1678#1679#0" expanded="true" />
741
+            <element signature="e#1726#1727#0" expanded="true" />
742
+            <element signature="e#1756#1757#0" expanded="true" />
743
+            <element signature="e#1900#1901#0" expanded="true" />
744
+            <element signature="e#1958#1959#0" expanded="true" />
745
+            <element signature="e#2023#2024#0" expanded="true" />
746
+            <element signature="e#2079#2080#0" expanded="true" />
747
+            <element signature="e#2267#2268#0" expanded="true" />
748
+            <element signature="e#2305#2306#0" expanded="true" />
749
+            <element signature="e#2354#2355#0" expanded="true" />
750
+            <element signature="e#2385#2386#0" expanded="true" />
751
+            <element signature="e#2434#2435#0" expanded="true" />
752
+            <element signature="e#2465#2466#0" expanded="true" />
753
+            <element signature="e#2492#2493#0" expanded="true" />
754
+            <element signature="e#2517#2518#0" expanded="true" />
755
+            <element signature="e#2551#2552#0" expanded="true" />
756
+            <element signature="e#2579#2580#0" expanded="true" />
757
+            <element signature="e#2627#2628#0" expanded="true" />
758
+            <element signature="e#2667#2668#0" expanded="true" />
759
+            <element signature="e#2715#2716#0" expanded="true" />
760
+            <element signature="e#2755#2756#0" expanded="true" />
761
+            <element signature="e#2786#2787#0" expanded="true" />
762
+            <element signature="e#2813#2814#0" expanded="true" />
763
+            <element signature="e#2853#2854#0" expanded="true" />
764
+            <element signature="e#2885#2886#0" expanded="true" />
765
+            <element signature="e#2917#2918#0" expanded="true" />
766
+            <element signature="e#2945#2946#0" expanded="true" />
767
+            <element signature="e#2987#2988#0" expanded="true" />
768
+            <element signature="e#3021#3022#0" expanded="true" />
769
+            <element signature="e#3059#3060#0" expanded="true" />
770
+            <element signature="e#3087#3088#0" expanded="true" />
771
+            <element signature="e#3135#3136#0" expanded="true" />
772
+            <element signature="e#3169#3170#0" expanded="true" />
530 773
           </folding>
531 774
         </state>
532 775
       </provider>
@@ -549,7 +792,6 @@
549 792
       <provider selected="true" editor-type-id="text-editor">
550 793
         <state relative-caret-position="0">
551 794
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
552
-          <folding />
553 795
         </state>
554 796
       </provider>
555 797
     </entry>
@@ -619,7 +861,6 @@
619 861
       <provider selected="true" editor-type-id="text-editor">
620 862
         <state relative-caret-position="0">
621 863
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
622
-          <folding />
623 864
         </state>
624 865
       </provider>
625 866
     </entry>
@@ -629,6 +870,44 @@
629 870
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
630 871
           <folding>
631 872
             <element signature="imports" expanded="true" />
873
+            <element signature="e#1436#1437#0" expanded="true" />
874
+            <element signature="e#1476#1477#0" expanded="true" />
875
+            <element signature="e#1533#1534#0" expanded="true" />
876
+            <element signature="e#1572#1573#0" expanded="true" />
877
+            <element signature="e#1634#1635#0" expanded="true" />
878
+            <element signature="e#1678#1679#0" expanded="true" />
879
+            <element signature="e#1726#1727#0" expanded="true" />
880
+            <element signature="e#1756#1757#0" expanded="true" />
881
+            <element signature="e#1900#1901#0" expanded="true" />
882
+            <element signature="e#1958#1959#0" expanded="true" />
883
+            <element signature="e#2023#2024#0" expanded="true" />
884
+            <element signature="e#2079#2080#0" expanded="true" />
885
+            <element signature="e#2267#2268#0" expanded="true" />
886
+            <element signature="e#2305#2306#0" expanded="true" />
887
+            <element signature="e#2354#2355#0" expanded="true" />
888
+            <element signature="e#2385#2386#0" expanded="true" />
889
+            <element signature="e#2434#2435#0" expanded="true" />
890
+            <element signature="e#2465#2466#0" expanded="true" />
891
+            <element signature="e#2492#2493#0" expanded="true" />
892
+            <element signature="e#2517#2518#0" expanded="true" />
893
+            <element signature="e#2551#2552#0" expanded="true" />
894
+            <element signature="e#2579#2580#0" expanded="true" />
895
+            <element signature="e#2627#2628#0" expanded="true" />
896
+            <element signature="e#2667#2668#0" expanded="true" />
897
+            <element signature="e#2715#2716#0" expanded="true" />
898
+            <element signature="e#2755#2756#0" expanded="true" />
899
+            <element signature="e#2786#2787#0" expanded="true" />
900
+            <element signature="e#2813#2814#0" expanded="true" />
901
+            <element signature="e#2853#2854#0" expanded="true" />
902
+            <element signature="e#2885#2886#0" expanded="true" />
903
+            <element signature="e#2917#2918#0" expanded="true" />
904
+            <element signature="e#2945#2946#0" expanded="true" />
905
+            <element signature="e#2987#2988#0" expanded="true" />
906
+            <element signature="e#3021#3022#0" expanded="true" />
907
+            <element signature="e#3059#3060#0" expanded="true" />
908
+            <element signature="e#3087#3088#0" expanded="true" />
909
+            <element signature="e#3135#3136#0" expanded="true" />
910
+            <element signature="e#3169#3170#0" expanded="true" />
632 911
           </folding>
633 912
         </state>
634 913
       </provider>
@@ -645,7 +924,6 @@
645 924
       <provider selected="true" editor-type-id="text-editor">
646 925
         <state relative-caret-position="0">
647 926
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
648
-          <folding />
649 927
         </state>
650 928
       </provider>
651 929
     </entry>
@@ -654,21 +932,32 @@
654 932
         <state relative-caret-position="138">
655 933
           <caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
656 934
           <folding>
657
-            <element signature="imports" expanded="true" />
935
+            <element signature="imports" expanded="false" />
658 936
           </folding>
659 937
         </state>
660 938
       </provider>
661 939
     </entry>
662
-    <entry file="file://$PROJECT_DIR$/Main/src/Accounts/AccountDetails.java">
940
+    <entry file="file://$PROJECT_DIR$/Main/src/Music/PlaylistLibrary.java">
663 941
       <provider selected="true" editor-type-id="text-editor">
664
-        <state relative-caret-position="391">
665
-          <caret line="17" column="0" lean-forward="true" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
942
+        <state relative-caret-position="161">
943
+          <caret line="7" column="27" lean-forward="false" selection-start-line="7" selection-start-column="27" selection-end-line="7" selection-end-column="27" />
666 944
           <folding>
667
-            <element signature="imports" expanded="false" />
945
+            <element signature="e#193#194#0" expanded="false" />
946
+            <element signature="e#237#238#0" expanded="false" />
947
+            <element signature="e#293#294#0" expanded="false" />
948
+            <element signature="e#324#325#0" expanded="false" />
668 949
           </folding>
669 950
         </state>
670 951
       </provider>
671 952
     </entry>
953
+    <entry file="file://$PROJECT_DIR$/Main/src/Music/Playlist.java">
954
+      <provider selected="true" editor-type-id="text-editor">
955
+        <state relative-caret-position="69">
956
+          <caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
957
+          <folding />
958
+        </state>
959
+      </provider>
960
+    </entry>
672 961
     <entry file="file://$PROJECT_DIR$/Main/src/Accounts/Account.java">
673 962
       <provider selected="true" editor-type-id="text-editor">
674 963
         <state relative-caret-position="428">
@@ -717,23 +1006,30 @@
717 1006
         </state>
718 1007
       </provider>
719 1008
     </entry>
720
-    <entry file="file://$PROJECT_DIR$/Main/src/Music/Playlist.java">
1009
+    <entry file="file://$PROJECT_DIR$/Main/src/Accounts/AccountDetails.java">
721 1010
       <provider selected="true" editor-type-id="text-editor">
722
-        <state relative-caret-position="69">
723
-          <caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
1011
+        <state relative-caret-position="368">
1012
+          <caret line="17" column="49" lean-forward="false" selection-start-line="17" selection-start-column="49" selection-end-line="17" selection-end-column="49" />
724 1013
           <folding />
725 1014
         </state>
726 1015
       </provider>
727 1016
     </entry>
728
-    <entry file="file://$PROJECT_DIR$/Main/src/Music/PlaylistLibrary.java">
1017
+    <entry file="file://$PROJECT_DIR$/Main/src/Accounts/AccountService.java">
729 1018
       <provider selected="true" editor-type-id="text-editor">
730
-        <state relative-caret-position="161">
731
-          <caret line="7" column="27" lean-forward="true" selection-start-line="7" selection-start-column="27" selection-end-line="7" selection-end-column="27" />
1019
+        <state relative-caret-position="436">
1020
+          <caret line="38" column="98" lean-forward="false" selection-start-line="38" selection-start-column="98" selection-end-line="38" selection-end-column="98" />
1021
+          <folding>
1022
+            <element signature="imports" expanded="true" />
1023
+          </folding>
1024
+        </state>
1025
+      </provider>
1026
+    </entry>
1027
+    <entry file="file://$PROJECT_DIR$/Main/src/Controllers/ApiController.java">
1028
+      <provider selected="true" editor-type-id="text-editor">
1029
+        <state relative-caret-position="299">
1030
+          <caret line="13" column="17" lean-forward="false" selection-start-line="13" selection-start-column="17" selection-end-line="13" selection-end-column="17" />
732 1031
           <folding>
733
-            <element signature="e#193#194#0" expanded="true" />
734
-            <element signature="e#237#238#0" expanded="true" />
735
-            <element signature="e#293#294#0" expanded="true" />
736
-            <element signature="e#324#325#0" expanded="true" />
1032
+            <element signature="imports" expanded="true" />
737 1033
           </folding>
738 1034
         </state>
739 1035
       </provider>

+ 44
- 0
Main/Main.iml Ver fichero

@@ -21,5 +21,49 @@
21 21
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.3.RELEASE" level="project" />
22 22
     <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.31" level="project" />
23 23
     <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:5.0.6.RELEASE" level="project" />
24
+    <orderEntry type="module-library">
25
+      <library name="spring-boot-starter-web">
26
+        <CLASSES>
27
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-web/2.0.3.RELEASE/spring-boot-starter-web-2.0.3.RELEASE.jar!/" />
28
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter/2.0.3.RELEASE/spring-boot-starter-2.0.3.RELEASE.jar!/" />
29
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/2.0.3.RELEASE/spring-boot-2.0.3.RELEASE.jar!/" />
30
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-autoconfigure/2.0.3.RELEASE/spring-boot-autoconfigure-2.0.3.RELEASE.jar!/" />
31
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-logging/2.0.3.RELEASE/spring-boot-starter-logging-2.0.3.RELEASE.jar!/" />
32
+          <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/" />
33
+          <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/" />
34
+          <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" />
35
+          <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar!/" />
36
+          <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar!/" />
37
+          <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar!/" />
38
+          <root url="jar://$MAVEN_REPOSITORY$/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar!/" />
39
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.0.7.RELEASE/spring-core-5.0.7.RELEASE.jar!/" />
40
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jcl/5.0.7.RELEASE/spring-jcl-5.0.7.RELEASE.jar!/" />
41
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-json/2.0.3.RELEASE/spring-boot-starter-json-2.0.3.RELEASE.jar!/" />
42
+          <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.6/jackson-databind-2.9.6.jar!/" />
43
+          <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/" />
44
+          <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.9.6/jackson-core-2.9.6.jar!/" />
45
+          <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.6/jackson-datatype-jdk8-2.9.6.jar!/" />
46
+          <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.6/jackson-datatype-jsr310-2.9.6.jar!/" />
47
+          <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.6/jackson-module-parameter-names-2.9.6.jar!/" />
48
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-tomcat/2.0.3.RELEASE/spring-boot-starter-tomcat-2.0.3.RELEASE.jar!/" />
49
+          <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.jar!/" />
50
+          <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.jar!/" />
51
+          <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.jar!/" />
52
+          <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/validator/hibernate-validator/6.0.10.Final/hibernate-validator-6.0.10.Final.jar!/" />
53
+          <root url="jar://$MAVEN_REPOSITORY$/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar!/" />
54
+          <root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar!/" />
55
+          <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar!/" />
56
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/5.0.7.RELEASE/spring-web-5.0.7.RELEASE.jar!/" />
57
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.0.7.RELEASE/spring-beans-5.0.7.RELEASE.jar!/" />
58
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/5.0.7.RELEASE/spring-webmvc-5.0.7.RELEASE.jar!/" />
59
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.0.7.RELEASE/spring-aop-5.0.7.RELEASE.jar!/" />
60
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.0.7.RELEASE/spring-context-5.0.7.RELEASE.jar!/" />
61
+          <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/5.0.7.RELEASE/spring-expression-5.0.7.RELEASE.jar!/" />
62
+        </CLASSES>
63
+        <JAVADOC />
64
+        <SOURCES />
65
+      </library>
66
+    </orderEntry>
67
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.7.RELEASE" level="project" />
24 68
   </component>
25 69
 </module>

+ 2
- 0
Main/src/Accounts/AccountDetails.java Ver fichero

@@ -14,5 +14,7 @@ public interface AccountDetails {
14 14
         Account save(Account account);
15 15
 
16 16
         void deleteAccountByID(Long ID);
17
+
18
+        Integer countByUsername(String username);
17 19
     }
18 20
 

+ 58
- 0
Main/src/Accounts/AccountService.java Ver fichero

@@ -0,0 +1,58 @@
1
+package Accounts;
2
+
3
+import org.springframework.beans.factory.annotation.Autowired;
4
+import org.springframework.security.core.context.SecurityContextHolder;
5
+import org.springframework.security.core.userdetails.UserDetails;
6
+import org.springframework.security.core.userdetails.UserDetailsService;
7
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
8
+import org.springframework.security.crypto.password.PasswordEncoder;
9
+import org.springframework.stereotype.Service;
10
+import org.springframework.transaction.annotation.Transactional;
11
+
12
+import javax.security.auth.login.AccountException;
13
+import java.util.Optional;
14
+
15
+@Service
16
+public class AccountService implements UserDetailsService {
17
+
18
+    @Autowired
19
+    private AccountDetails accountDetails;
20
+
21
+    @Autowired
22
+    private PasswordEncoder passwordEncoder;
23
+
24
+    @Override
25
+    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
26
+        Optional<Account> account = accountDetails.findByUsername(username);
27
+        if(account.isPresent() ) {
28
+            return account.get();
29
+        }else {
30
+            throw new UsernameNotFoundException(String.format("Username[%s] not found", username));
31
+        }
32
+    }
33
+
34
+    public Account findAccountByUsername(String username) throws  UsernameNotFoundException {
35
+        Optional<Account> account = accountDetails.findByUsername(username);
36
+        if(account.isPresent() ) {
37
+            return account.get();
38
+        }else {
39
+            throw new UsernameNotFoundException(String.format("Username[%s] not found", username));
40
+        }
41
+    }
42
+
43
+    public Account register(Account account) throws AccountException {
44
+        if (accountDetails.countByUsername( account.getUsername() ) == 0) {
45
+            account.setPassword(passwordEncoder.encode(account.getPassword()));
46
+            return accountDetails.save(account);
47
+        } else {
48
+            throw new AccountException(String.format("Username[%s] already taken.", account.getUsername()));
49
+        }
50
+    }
51
+
52
+    @Transactional
53
+    public void removeAuthenticatedAccount() throws UsernameNotFoundException{
54
+        String username = SecurityContextHolder.getContext().getAuthentication().getName();
55
+        Account acct = findAccountByUsername(username);
56
+        accountDetails.deleteAccountByID(acct.getID());
57
+    }
58
+}

+ 14
- 0
Main/src/Controllers/ApiController.java Ver fichero

@@ -0,0 +1,14 @@
1
+package Controllers;
2
+
3
+import Accounts.AccountService;
4
+import org.springframework.beans.factory.annotation.Autowired;
5
+import org.springframework.web.bind.annotation.RestController;
6
+
7
+@RestController
8
+public class ApiController {
9
+
10
+    @Autowired
11
+    private AccountService accountService;
12
+
13
+
14
+}