diff --git a/app/log/goInventorize.log b/app/log/goInventorize.log
index 99eeb4d..337ece0 100644
--- a/app/log/goInventorize.log
+++ b/app/log/goInventorize.log
@@ -411,3 +411,494 @@
{"logtype":"webserver", "pid":"27600", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"level":"info","time":"2022-03-29T22:57:42-04:00","message":"Getting all Rooms"}
{"logtype":"webserver", "pid":"27600", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"info","time":"2022-03-30T20:49:32-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T20:49:32-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T20:49:32-04:00","message":"Database and Config loaded, starting webserver..."}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T20:49:40-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T20:49:43-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"304", "method":"GET", "path":"/photos/locations/Location4/Kitchen/Kitchen_cover.png"}
+{"level":"debug","time":"2022-03-30T20:49:49-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T20:49:50-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T20:49:57-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T20:49:59-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T20:50:01-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T20:50:05-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T20:58:23-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T21:03:42-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:05:55-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:05:59-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:06:01-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T21:06:02-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T21:06:03-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T21:06:32-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T21:06:59-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:07:04-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:07:34-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T21:08:03-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T21:08:04-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:25:48-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T21:27:10-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T21:37:04-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T21:44:39-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"info","time":"2022-03-30T21:48:16-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T21:52:33-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T21:52:34-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T21:52:39-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T21:52:42-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T21:53:07-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:55:02-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T21:55:38-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T21:55:40-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:55:50-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:55:53-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T21:57:16-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:57:20-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T21:58:44-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:58:55-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T21:59:24-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"info","time":"2022-03-30T22:01:12-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"info","time":"2022-03-30T22:01:42-04:00","message":"Adding new location to database: %!(EXTRA main.Location={0 Location6 Location6_cover.png [Location6_0.png Location6_1.png] [] Notes for my location!6 0 })"}
+{"level":"debug","time":"2022-03-30T22:01:43-04:00","message":"Adding new location: {0 Location6 Location6_cover.png [Location6_0.png Location6_1.png] [] Notes for my location!6 0 }"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"POST", "path":"/api/locations/new"}
+{"level":"debug","time":"2022-03-30T22:01:45-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T22:02:05-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T22:07:16-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T22:07:19-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T22:07:24-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/photos/locations/Location6/Location6_cover.png"}
+{"level":"debug","time":"2022-03-30T22:07:46-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T22:08:15-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T22:08:19-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"304", "method":"GET", "path":"/photos/locations/Location6/Location6_cover.png"}
+{"level":"debug","time":"2022-03-30T22:08:54-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T22:08:57-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T22:12:01-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T22:15:29-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T22:15:37-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"304", "method":"GET", "path":"/photos/locations/Location6/Location6_cover.png"}
+{"level":"info","time":"2022-03-30T22:18:01-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T22:18:04-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"304", "method":"GET", "path":"/photos/locations/Location6/Location6_cover.png"}
+{"level":"info","time":"2022-03-30T22:18:28-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T22:19:11-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"debug","time":"2022-03-30T22:19:13-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T22:19:31-04:00","message":"Getting all Rooms"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/rooms"}
+{"level":"debug","time":"2022-03-30T22:19:33-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"19004", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"level":"info","time":"2022-03-30T22:19:55-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:19:55-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:19:55-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:21:04-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:21:04-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:21:04-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:21:39-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:21:39-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:21:39-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:21:49-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:21:49-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:21:49-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:27:12-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:27:12-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:27:12-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:27:31-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:27:31-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:27:31-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:27:36-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:27:36-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:27:36-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:27:44-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:27:44-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:27:44-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:27:50-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:27:50-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:27:50-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:27:55-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:27:55-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:27:55-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:29:06-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:29:06-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:29:06-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:30:52-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:30:52-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:30:52-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:33:37-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:33:37-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:33:37-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:36:20-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:36:20-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:36:20-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"debug","time":"2022-03-30T22:37:53-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Paint: Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T22:38:03-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Paint: Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"304", "method":"GET", "path":"/photos/locations/Location6/Location6_cover.png"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"debug","time":"2022-03-30T22:38:11-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Paint: Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"16484", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"level":"info","time":"2022-03-30T22:45:00-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:45:00-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:45:00-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:49:41-04:00","message":"Adding new location to database: %!(EXTRA main.Location={0 Location10 Location10_cover.png [] [] Notes for my location!10 0 })"}
+{"level":"debug","time":"2022-03-30T22:49:41-04:00","message":"Adding new location: {0 Location10 Location10_cover.png [] [] Notes for my location!10 0 }"}
+{"logtype":"webserver", "pid":"33948", "requestid":"", "status":"200", "method":"POST", "path":"/api/locations/new"}
+{"level":"debug","time":"2022-03-30T22:49:51-04:00","message":"Returning Locations: [{ID:1 Name:Location4 Description: CoverPhoto:Location4_cover.png Photos:[Location4_0.png Location4_1.png] Rooms:[{ID:0 Name:Kitchen Description: CoverPhoto:Location4/Kitchen/Kitchen_cover.png Photos:[Location4/Kitchen/Kitchen_0.png] Paint: Notes:Notes For My Room! Cabinets:[] Items:[] SquareFeet:0 LocationID:1 LocationName:Location4}] Notes:Notes for my location! Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:2 Name:Location6 Description: CoverPhoto:Location6_cover.png Photos:[Location6_0.png Location6_1.png] Rooms:[] Notes:Notes for my location!6 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:} {ID:3 Name:Location10 Description: CoverPhoto:Location10_cover.png Photos:[] Rooms:[] Notes:Notes for my location!10 Address: SquareFeet:0 Latitude: Longitude: DatePurchased: PurchasePrice: CurrentValue:}]"}
+{"logtype":"webserver", "pid":"33948", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
+{"logtype":"webserver", "pid":"33948", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
+{"logtype":"webserver", "pid":"33948", "requestid":"", "status":"304", "method":"GET", "path":"/photos/locations/Location6/Location6_cover.png"}
+{"logtype":"webserver", "pid":"33948", "requestid":"", "status":"200", "method":"GET", "path":"/photos/locations/Location10/Location10_cover.png"}
+{"level":"info","time":"2022-03-30T22:52:25-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:52:25-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:52:25-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:55:23-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:55:23-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:55:23-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:55:50-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:55:50-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:55:50-04:00","message":"Database and Config loaded, starting webserver..."}
+{"level":"info","time":"2022-03-30T22:57:01-04:00","message":"Configuration loaded successfully..."}
+{"level":"debug","time":"2022-03-30T22:57:01-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:false UserName:admin Password:password} Development:false}"}
+{"level":"info","time":"2022-03-30T22:57:01-04:00","message":"Database and Config loaded, starting webserver..."}
diff --git a/app/photos/locations/Location10/Location10_cover.png b/app/photos/locations/Location10/Location10_cover.png
new file mode 100644
index 0000000..bf50b0e
Binary files /dev/null and b/app/photos/locations/Location10/Location10_cover.png differ
diff --git a/app/photos/locations/Location6/Location6_0.png b/app/photos/locations/Location6/Location6_0.png
new file mode 100644
index 0000000..87c5a8a
Binary files /dev/null and b/app/photos/locations/Location6/Location6_0.png differ
diff --git a/app/photos/locations/Location6/Location6_1.png b/app/photos/locations/Location6/Location6_1.png
new file mode 100644
index 0000000..81cd2ac
Binary files /dev/null and b/app/photos/locations/Location6/Location6_1.png differ
diff --git a/app/photos/locations/Location6/Location6_cover.png b/app/photos/locations/Location6/Location6_cover.png
new file mode 100644
index 0000000..bf50b0e
Binary files /dev/null and b/app/photos/locations/Location6/Location6_cover.png differ
diff --git a/database.go b/database.go
index 2ffb506..f80fe31 100644
--- a/database.go
+++ b/database.go
@@ -26,16 +26,16 @@ type Location struct {
// Room is a containerized area at a location
type Room struct {
- ID int `storm:"id,increment,index"`
- Name string `storm:"unique"`
- Description string
- CoverPhoto string // A "cover photo" for the room
- Photos []string // A list of additional photos for the room
- Notes string
- Cabinets []Cabinet
- Items []Item
- SquareFeet int
-
+ ID int `storm:"id,increment,index"`
+ Name string `storm:"unique"`
+ Description string
+ CoverPhoto string // A "cover photo" for the room
+ Photos []string // A list of additional photos for the room
+ Paint string // Details about the paint
+ Notes string
+ Cabinets []Cabinet
+ Items []Item
+ SquareFeet int
LocationID int //Which location room is assigned to
LocationName string // Location name room belongs to
@@ -62,8 +62,11 @@ type Item struct {
Serial string
Warranty string
Notes string
+ Files []string //filepath to any files relevant to this item
}
+// Location Routes
+
//SetupDatabase initializes the storm/bbolt database
func SetupDatabase(s *Server) (db *storm.DB) {
db, err := storm.Open(filepath.Clean("./app/database/goInventorize.db"))
@@ -115,6 +118,8 @@ func (s *Server) GetLocation(locID int) (location Location, err error) {
return location, nil
}
+// Room Routes
+
// AddRoom adds a room to a location
func (s *Server) AddRoom(room Room) error {
s.Log.Info().Msgf("Adding new room to location: %s", room)
@@ -159,17 +164,6 @@ func (s *Server) GetRoom(roomID int) (room Room, err error) {
return room, nil
}
-// AddItem adds an item to a room
-func (s *Server) AddItem(item Item) error {
- s.Log.Info().Msgf("Adding new item to room: ", item)
- err := s.Database.Save(&item)
- if err != nil {
- s.Log.Error().Msgf("Unable to add new item to room: %s error: %s", item, err)
- return err
- }
- return nil
-}
-
// GetRoomsAtLocation fetches all the rooms assigned to a location by location ID
func (s *Server) GetRoomsAtLocation(locID int) (rooms []Room, err error) {
err = s.Database.Find("LocationID", locID, &rooms)
@@ -190,6 +184,19 @@ func (s *Server) GetCabinetsInRoom(roomID int) (cabinets []Cabinet, err error) {
return cabinets, nil
}
+// ITEM ROUTES
+
+// GetAllItems gets all of the items
+func (s *Server) GetAllItems() (items []Item, err error) {
+ s.Log.Info().Msg("Getting all Items")
+ err = s.Database.All(&items)
+ if err != nil {
+ s.Log.Error().Msgf("Unable to fetch all room with error: %s", err)
+ return items, err
+ }
+ return items, nil
+}
+
// GetItemsInRoom fetches all of the items assigned to a room
func (s *Server) GetItemsInRoom(roomID int) (items []Item, err error) {
err = s.Database.Find("Room", roomID, &items)
@@ -199,3 +206,25 @@ func (s *Server) GetItemsInRoom(roomID int) (items []Item, err error) {
}
return items, nil
}
+
+// AddItem adds an item to a room
+func (s *Server) AddItem(item Item) error {
+ s.Log.Info().Msgf("Adding new item to room: ", item)
+ err := s.Database.Save(&item)
+ if err != nil {
+ s.Log.Error().Msgf("Unable to add new item to room: %s error: %s", item, err)
+ return err
+ }
+ return nil
+}
+
+// DeleteItem deletes an item
+func (s *Server) DeleteItem(item Item) error {
+ s.Log.Info().Msgf("Deleting Item from database: %s", item)
+ err := s.Database.DeleteStruct(&item)
+ if err != nil {
+ s.Log.Error().Msgf("Unable to delete location from database: %s error: %s ", item, err)
+ return err
+ }
+ return nil
+}
diff --git a/frontend/src/App.js b/frontend/src/App.js
index d4c0458..ac2628e 100644
--- a/frontend/src/App.js
+++ b/frontend/src/App.js
@@ -4,7 +4,7 @@ import HomePage from './components/pages/HomePage';
import Locations from './components/pages/Locations';
import RoomsPage from './components/pages/RoomsPage';
import { Routes, Route, useNavigate } from "react-router-dom";
-import { Modal, Button, Text, Group, TextInput, Loader, AppShell } from '@mantine/core';
+import { Modal, Button, Text, Group, TextInput, Loader, AppShell, MediaQuery } from '@mantine/core';
import { useDebouncedValue, useLocalStorageValue } from '@mantine/hooks';
import { useNotifications } from '@mantine/notifications';
@@ -20,13 +20,12 @@ import AppHeader from './components/AppHeader';
function App() {
// Main nav/sidebar appshell openend
- const [shellOpened, setShellOpened] = useState(false)
const [isLoading, setIsLoading] = useState(true)
const [, setServerConfig] = useAtom(serverConfigAtom)
const notifications = useNotifications();
- const navigate = useNavigate();
+ // const navigate = useNavigate();
@@ -61,28 +60,13 @@ function App() {
}, [])
- // function showPage() {
- // switch (currentPage.path) {
- // case "home":
- // return
- // case "locations":
- // console.log("RETURNING LOCATIONS: ", currentPage)
- // return
- // case "rooms":
- // console.log("RETURNING ROOMS: ", currentPage)
- // return
- // default:
- // break;
- // }
- // }
-
return (
}
- header={}
+ navbar={}
+ header={}
>
} />
diff --git a/frontend/src/components/AppHeader.js b/frontend/src/components/AppHeader.js
index 045c5bd..650f102 100644
--- a/frontend/src/components/AppHeader.js
+++ b/frontend/src/components/AppHeader.js
@@ -1,22 +1,23 @@
import React, {useState, useEffect, useContext } from 'react';
-import { Header, MediaQuery, Burger, Text, ThemeIcon, Group, Title } from '@mantine/core';
-import { useMantineTheme } from '@mantine/core';
+import { useAtom } from 'jotai';
+import { Header, MediaQuery, Burger, Text, ThemeIcon, Group, Title, createStyles, useMantineTheme } from '@mantine/core';
import { BsHouseDoor } from 'react-icons/bs'
-
+import { menuOpenedAtom } from '../state/main';
function AppHeader(props) {
- const theme = useMantineTheme();
+ const theme = useMantineTheme()
+ const [menuOpened, setMenuOpened] = useAtom(menuOpenedAtom)
return (
{/* You can handle other responsive styles with MediaQuery component or createStyles function */}
-
+
props.setOpened((o) => !o)}
+ opened={menuOpened}
+ onClick={() => setMenuOpened((o) => !o)}
size="sm"
color={theme.colors.gray[6]}
mr="xl"
diff --git a/frontend/src/components/SideBar.js b/frontend/src/components/SideBar.js
index 555f395..1290a04 100644
--- a/frontend/src/components/SideBar.js
+++ b/frontend/src/components/SideBar.js
@@ -1,7 +1,7 @@
import React, {useState } from 'react';
import { useAtom } from 'jotai';
-import { activePageAtom, roomFilterAtom } from '../state/main';
-import { Navbar, Group, Code, ScrollArea, createStyles } from '@mantine/core';
+import { activePageAtom, menuOpenedAtom, roomFilterAtom } from '../state/main';
+import { Navbar, Group, ScrollArea, createStyles, MediaQuery } from '@mantine/core';
import { LinksGroup } from './sidebar/SidebarLinksGroup';
// import { UserButton } from './sidebar/UserButton';
import { Link } from 'react-router-dom';
@@ -80,6 +80,8 @@ const useStyles = createStyles((theme) => ({
function SideBar(props) {
const { classes } = useStyles();
+ const [menuOpened] = useAtom(menuOpenedAtom)
+
@@ -88,51 +90,31 @@ function SideBar(props) {
const links = sideBarData.map((item) => );
return (
-
- {/*
-
-
- v3.1.2
-
- */}
-
-
- {links}
-
-
- {/*
-
- */}
-
- //
- // } variant="white" className={activePage === "locations" ? classes.activeButton : classes.button} component={Link} to="/locations" onClick={() => setActivePage("locations")} >
- // Locations
- //
-
- // } variant="white" className={activePage === "rooms" ? classes.activeButton : classes.button} component={Link} to="/rooms" onClick={() => setActivePage("rooms")} >
- // Rooms
- //
-
- // {/* changeView("rooms")} >
- //
- //
- // Rooms
- //
-
- // */}
-
- //
+ <>
+
+
+ {/*
+
+
+ v3.1.2
+
+ */}
+
+
+ {links}
+
+
+ {/*
+
+ */}
+
+
+
+ >
)
}
diff --git a/frontend/src/components/pages/Locations.js b/frontend/src/components/pages/Locations.js
index 5bf1431..9c42644 100644
--- a/frontend/src/components/pages/Locations.js
+++ b/frontend/src/components/pages/Locations.js
@@ -52,31 +52,50 @@ function LocationsPage(props) {
navigate("/rooms")
}
+ const setRoomNumber = (location) => {
+ if (location.Rooms === null) {
+ return 0 Rooms
+ } else if (location.Rooms.length > 1) {
+ return {location.Rooms.length} Rooms
+ } else {
+ return 1 Room
+ }
+ }
+
return (
<>
{ isLoading && }
Locations
-
- { locations.map((location, idx) =>
-
-
- {location.CoverPhoto ? : No Photo}
-
-
- {location.Name}
-
- { location.Rooms !== null && location.Rooms.length !== 0 && location.Rooms.length > 1 ? {location.Rooms.length} Rooms : {location.Rooms.length} Room}
-
-
- {location.Description}
-
-
-
-
+
+ { locations.map((location, idx) =>
+
+
+ {location.CoverPhoto ? : No Photo}
+
+
+ {location.Name}
+
+ { setRoomNumber(location) }
+
+
+ {location.Description}
+
+
+
+
-
- )}
+
+ )}
>
diff --git a/frontend/src/components/pages/RoomsPage.js b/frontend/src/components/pages/RoomsPage.js
index abc5f9a..bf78fd8 100644
--- a/frontend/src/components/pages/RoomsPage.js
+++ b/frontend/src/components/pages/RoomsPage.js
@@ -73,7 +73,15 @@ function RoomsPage(props) {
}
-
+
{ rooms.map((room, idx) =>
{}} shadow="sm" padding="md">
diff --git a/frontend/src/components/sidebar/SidebarLinksGroup.js b/frontend/src/components/sidebar/SidebarLinksGroup.js
index 8d6f728..c4660a3 100644
--- a/frontend/src/components/sidebar/SidebarLinksGroup.js
+++ b/frontend/src/components/sidebar/SidebarLinksGroup.js
@@ -1,8 +1,9 @@
import React, { useState } from 'react';
import { Group, Box, Collapse, ThemeIcon, Text, UnstyledButton, createStyles } from '@mantine/core';
+import { useMediaQuery } from '@mantine/hooks';
import { BiChevronLeft, BiChevronRight } from 'react-icons/bi';
import { useAtom } from 'jotai';
-import { activePageAtom, roomFilterAtom } from '../../state/main';
+import { activePageAtom, menuOpenedAtom, roomFilterAtom } from '../../state/main';
import { Link } from 'react-router-dom';
@@ -35,12 +36,13 @@ const useStyles = createStyles((theme) => ({
}`,
'&:hover': {
- backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[0],
+ backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[1],
color: theme.colorScheme === 'dark' ? theme.white : theme.black,
},
- '&:active': {
- backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[6]
- }
+ },
+
+ activeLink: {
+ backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[3],
},
chevron: {
@@ -51,12 +53,17 @@ const useStyles = createStyles((theme) => ({
export function LinksGroup(props) {
const { icon: Icon, label, initiallyOpened, links } = props
- const { classes, theme } = useStyles();
+
+ const isMobile = useMediaQuery('(max-width: 768px)')
const hasLinks = Array.isArray(links);
const [opened, setOpened] = useState(initiallyOpened || false);
// Navigation State
const [activePage, setActivePage] = useAtom(activePageAtom)
const [roomFilter, setRoomFilter] = useAtom(roomFilterAtom)
+ const [menuOpened, setMenuOpened] = useAtom(menuOpenedAtom)
+
+
+ const { classes, theme, cx } = useStyles();
const ChevronIcon = theme.dir === 'ltr' ? BiChevronRight : BiChevronLeft;
@@ -66,6 +73,9 @@ export function LinksGroup(props) {
setRoomFilter({})
}
console.log("navigate to: ", location)
+ if (isMobile && menuOpened) {
+ setMenuOpened(false)
+ }
setActivePage(location)
}
@@ -75,11 +85,10 @@ export function LinksGroup(props) {
<>
{navigate(e, label.toLowerCase())}}
+ onClick={(e) => {navigate(e, link.label.toLowerCase())}}
>
{link.label}
diff --git a/frontend/src/state/main.js b/frontend/src/state/main.js
index 15c1db8..ff53d8d 100644
--- a/frontend/src/state/main.js
+++ b/frontend/src/state/main.js
@@ -3,6 +3,9 @@ import { atom } from 'jotai'
export const serverConfigAtom = atom({})
+// Size and menu handling
+export const menuOpenedAtom = atom(false)
+
// Pages state
export const activePageAtom = atom({})
diff --git a/go.mod b/go.mod
index f92d711..f9fdb37 100644
--- a/go.mod
+++ b/go.mod
@@ -20,3 +20,5 @@ require (
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
)
+
+replace gitea.derajnet.duckdns.org/changeme => ../
diff --git a/handlers_item.go b/handlers_item.go
new file mode 100644
index 0000000..d411a00
--- /dev/null
+++ b/handlers_item.go
@@ -0,0 +1,125 @@
+package main
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "path/filepath"
+ "strconv"
+
+ "github.com/gofiber/fiber/v2"
+)
+
+func (s *Server) GetAllItemsAtRoomHandler(c *fiber.Ctx) error {
+ roomID, err := c.ParamsInt("roomID")
+ if err != nil {
+ return err
+ }
+ items, err := s.GetItemsInRoom(roomID)
+ fmt.Println("Items: ", items)
+ if err != nil {
+ return err
+ }
+ return c.Status(fiber.StatusOK).JSON(items)
+
+}
+
+// AddNewItemHandler adds a new room
+func (s *Server) AddNewItemHandler(c *fiber.Ctx) error {
+ locID, err := c.ParamsInt("locID")
+ if err != nil {
+ return err
+ }
+ form, err := c.MultipartForm()
+ if err != nil {
+ s.Log.Err(err).Msgf("Unable to fetch rooms: ", err)
+ return err
+ }
+ roomName := form.Value["Name"][0]
+ fmt.Println("COverphoto: ", form.File["CoverPhoto"])
+ roomPhoto := form.File["CoverPhoto"][0]
+ // if err != nil {
+ // s.Log.Err(err).Msgf("Unable to get CoverPhoto for Room: ", err)
+ // return err
+ // }
+ roomAdditionalPhotos := form.File["AdditionalPhotos"]
+ // Fetch the location information
+ loc, err := s.GetLocation(locID)
+ if err != nil {
+ s.Log.Err(err).Msgf("Unable to fetch location by id: %d with error: %s", locID, err)
+ return err
+ }
+ // setting the path prepend for the photos
+ urlPrepend := loc.Name + "/" + roomName + "/"
+ pathPrepend := s.Config.Server.LocationPhotoDir + "/" + urlPrepend
+
+ // Create the directory for this room to store the photos
+ err = os.MkdirAll(filepath.ToSlash(s.Config.Server.LocationPhotoDir+"/"+loc.Name+"/"+roomName), 0755)
+ if err != nil {
+ return err
+ }
+ var photoURLsList []string
+ for i, photo := range roomAdditionalPhotos {
+ src, err := photo.Open()
+ if err != nil {
+ return err
+ }
+ defer src.Close()
+
+ photoPath := filepath.ToSlash(pathPrepend + roomName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename))
+ photoURL := urlPrepend + roomName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename)
+ photoURLsList = append(photoURLsList, photoURL)
+ photoData, err := io.ReadAll(src)
+ if err != nil {
+ return err
+ }
+ os.WriteFile(photoPath, photoData, 0644)
+ }
+ // create files on server for all uploads
+ roomNotes := form.Value["Notes"][0]
+
+ // saving the uploaded image to our images dir
+ coverImagePath := filepath.ToSlash(pathPrepend + roomName + "_cover" + filepath.Ext(roomPhoto.Filename))
+ // Creating the URL to retrieve photo
+ coverImageURL := urlPrepend + roomName + "_cover" + filepath.Ext(roomPhoto.Filename)
+ src, err := roomPhoto.Open()
+ if err != nil {
+ return err
+ }
+ defer src.Close()
+ coverImageData, err := io.ReadAll(src)
+ if err != nil {
+ s.Log.Err(err).Msgf("Unable to read cover photo file: ", err)
+ return err
+ }
+ err = os.WriteFile(coverImagePath, coverImageData, 0644)
+ if err != nil {
+ return err
+ }
+ newRoom := Room{
+ Name: roomName,
+ CoverPhoto: coverImageURL,
+ Photos: photoURLsList,
+ Notes: roomNotes,
+ LocationID: locID,
+ LocationName: loc.Name,
+ }
+ err = s.AddRoom(newRoom)
+ if err != nil {
+ return err
+ }
+ // Update our location in the db to add the new room as attached to the ID
+ loc, err = s.GetLocation(newRoom.LocationID)
+ if err != nil {
+ return err
+ }
+ roomList := loc.Rooms
+ roomList = append(roomList, newRoom)
+
+ err = s.Database.UpdateField(&Location{ID: newRoom.LocationID}, "Rooms", roomList)
+ if err != nil {
+ return err
+ }
+ s.Log.Debug().Msgf("Adding new Room: %v", newRoom)
+ return c.Status(fiber.StatusOK).SendString(fmt.Sprintf("New Room Created! %s", newRoom.Name))
+}
diff --git a/handlers_location.go b/handlers_location.go
new file mode 100644
index 0000000..fa2b9df
--- /dev/null
+++ b/handlers_location.go
@@ -0,0 +1,132 @@
+package main
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "path/filepath"
+ "strconv"
+
+ "github.com/gofiber/fiber/v2"
+)
+
+// GetServeConfig fetches the server configuration
+func (s *Server) GetServerConfig(c *fiber.Ctx) error {
+ fmt.Println("SENDING CONFIG!")
+ return c.Status(fiber.StatusOK).JSON(fiber.Map{"BasicAuth": s.Config.Authentication.BasicAuth, "Timezone": s.Config.Timezone})
+}
+
+// AddNewLocationHandler adds a new location
+func (s *Server) AddNewLocationHandler(c *fiber.Ctx) error {
+ form, err := c.MultipartForm()
+ if err != nil {
+ s.Log.Err(err).Msgf("Unable to fetch locations: ", err)
+ return err
+ }
+ locName := form.Value["Name"][0]
+ locPhoto := form.File["CoverPhoto"][0]
+ if err != nil {
+ s.Log.Err(err).Msgf("Unable to get CoverPhoto for location: ", err)
+ return err
+ }
+ locAdditionalPhotos := form.File["AdditionalPhotos"]
+ // Create the directory for this location to store the photos
+ err = os.MkdirAll(s.Config.Server.LocationPhotoDir+locName, 0755)
+ if err != nil {
+ return err
+ }
+ var photoURLsList []string
+ for i, photo := range locAdditionalPhotos {
+ src, err := photo.Open()
+ if err != nil {
+ return err
+ }
+ defer src.Close()
+
+ photoPath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + locName + "/" + locName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename))
+ photoURL := locName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename)
+ photoURLsList = append(photoURLsList, photoURL)
+ photoData, err := io.ReadAll(src)
+ if err != nil {
+ return err
+ }
+ os.WriteFile(photoPath, photoData, 0644)
+ }
+ // create files on server for all uploads
+ locNotes := form.Value["Notes"][0]
+
+ // saving the uploaded image to our images dir
+ coverImagePath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + locName + "/" + locName + "_cover" + filepath.Ext(locPhoto.Filename))
+ // Creating the URL to retrieve photo
+ coverImageURL := locName + "_cover" + filepath.Ext(locPhoto.Filename)
+ src, err := locPhoto.Open()
+ if err != nil {
+ return err
+ }
+ defer src.Close()
+ coverImageData, err := io.ReadAll(src)
+ if err != nil {
+ s.Log.Err(err).Msgf("Unable to read cover photo file: ", err)
+ return err
+ }
+ err = os.WriteFile(coverImagePath, coverImageData, 0644)
+ if err != nil {
+ return err
+ }
+ newLocation := Location{
+ Name: locName,
+ CoverPhoto: coverImageURL,
+ Photos: photoURLsList,
+ Notes: locNotes,
+ }
+ err = s.AddLocation(newLocation)
+ if err != nil {
+ return err
+ }
+ s.Log.Debug().Msgf("Adding new location: %v", newLocation)
+ return c.Status(fiber.StatusOK).SendString(fmt.Sprintf("New Location Created! %s", newLocation.Name))
+}
+
+// GetAllLocationsHandler returns all locations
+func (s *Server) GetAllLocationsHandler(c *fiber.Ctx) error {
+ locations, err := s.GetLocations()
+ if err != nil {
+ s.Log.Err(err).Msgf("Unable to fetch locations: ", err)
+ return err
+ }
+ s.Log.Debug().Msgf("Returning Locations: %+v", locations)
+ return c.Status(fiber.StatusOK).JSON(locations)
+}
+
+// GetSingleLocationHandler gets a single location by locationID
+func (s *Server) GetSingleLocationHandler(c *fiber.Ctx) error {
+ locID, err := c.ParamsInt("locID")
+ if err != nil {
+ return err
+ }
+ location, err := s.GetLocation(locID)
+ if err != nil {
+ return err
+ }
+ fmt.Println("Returning A single location: ", location)
+ return c.Status(fiber.StatusOK).JSON(location)
+}
+
+// DeleteLocationHandler deletes a location by locationID
+func (s *Server) DeleteLocationHandler(c *fiber.Ctx) error {
+ locID, err := c.ParamsInt("locID")
+ if err != nil {
+ return err
+ }
+ location, err := s.GetLocation(locID)
+ if err != nil {
+ s.Log.Err(err).Msgf("Unable to fetch location with id: %d", locID)
+ return err
+ }
+ err = s.DeleteLocation(location)
+ if err != nil {
+ s.Log.Err(err).Msgf("Unable to delete location with id: %d", locID)
+ return err
+ }
+ return c.Status(fiber.StatusOK).SendString(fmt.Sprintf("Location Deleted! %d", locID))
+}
diff --git a/handlers.go b/handlers_room.go
similarity index 52%
rename from handlers.go
rename to handlers_room.go
index 0beb817..8923bff 100644
--- a/handlers.go
+++ b/handlers_room.go
@@ -10,124 +10,6 @@ import (
"github.com/gofiber/fiber/v2"
)
-//Get Server Config
-func (s *Server) GetServerConfig(c *fiber.Ctx) error {
- fmt.Println("SENDING CONFIG!")
- return c.Status(fiber.StatusOK).JSON(fiber.Map{"BasicAuth": s.Config.Authentication.BasicAuth, "Timezone": s.Config.Timezone})
-}
-
-// Add a new location
-func (s *Server) AddNewLocationHandler(c *fiber.Ctx) error {
- form, err := c.MultipartForm()
- if err != nil {
- s.Log.Err(err).Msgf("Unable to fetch locations: ", err)
- return err
- }
- locName := form.Value["Name"][0]
- locPhoto := form.File["CoverPhoto"][0]
- if err != nil {
- s.Log.Err(err).Msgf("Unable to get CoverPhoto for location: ", err)
- return err
- }
- locAdditionalPhotos := form.File["AdditionalPhotos"]
- // Create the directory for this location to store the photos
- err = os.MkdirAll(s.Config.Server.LocationPhotoDir+locName, 0755)
- if err != nil {
- return err
- }
- var photoURLsList []string
- for i, photo := range locAdditionalPhotos {
- src, err := photo.Open()
- if err != nil {
- return err
- }
- defer src.Close()
-
- photoPath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + locName + "/" + locName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename))
- photoURL := locName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename)
- photoURLsList = append(photoURLsList, photoURL)
- photoData, err := io.ReadAll(src)
- if err != nil {
- return err
- }
- os.WriteFile(photoPath, photoData, 0644)
- }
- // create files on server for all uploads
- locNotes := form.Value["Notes"][0]
-
- // saving the uploaded image to our images dir
- coverImagePath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + locName + "/" + locName + "_cover" + filepath.Ext(locPhoto.Filename))
- // Creating the URL to retrieve photo
- coverImageURL := locName + "_cover" + filepath.Ext(locPhoto.Filename)
- src, err := locPhoto.Open()
- if err != nil {
- return err
- }
- defer src.Close()
- coverImageData, err := io.ReadAll(src)
- if err != nil {
- s.Log.Err(err).Msgf("Unable to read cover photo file: ", err)
- return err
- }
- err = os.WriteFile(coverImagePath, coverImageData, 0644)
- if err != nil {
- return err
- }
- newLocation := Location{
- Name: locName,
- CoverPhoto: coverImageURL,
- Photos: photoURLsList,
- Notes: locNotes,
- }
- err = s.AddLocation(newLocation)
- if err != nil {
- return err
- }
- s.Log.Debug().Msgf("Adding new location: %v", newLocation)
- return c.Status(fiber.StatusOK).SendString(fmt.Sprintf("New Location Created! %s", newLocation.Name))
-}
-
-func (s *Server) GetAllLocationsHandler(c *fiber.Ctx) error {
- locations, err := s.GetLocations()
- if err != nil {
- s.Log.Err(err).Msgf("Unable to fetch locations: ", err)
- return err
- }
- s.Log.Debug().Msgf("Returning Locations: %+v", locations)
- return c.Status(fiber.StatusOK).JSON(locations)
-}
-
-func (s *Server) GetSingleLocationHandler(c *fiber.Ctx) error {
- locID, err := c.ParamsInt("locID")
- if err != nil {
- return err
- }
- location, err := s.GetLocation(locID)
- if err != nil {
- return err
- }
- fmt.Println("Returning A single location: ", location)
- return c.Status(fiber.StatusOK).JSON(location)
-}
-
-func (s *Server) DeleteLocationHandler(c *fiber.Ctx) error {
- locID, err := c.ParamsInt("locID")
- if err != nil {
- return err
- }
- location, err := s.GetLocation(locID)
- if err != nil {
- s.Log.Err(err).Msgf("Unable to fetch location with id: %d", locID)
- return err
- }
- err = s.DeleteLocation(location)
- if err != nil {
- s.Log.Err(err).Msgf("Unable to delete location with id: %d", locID)
- return err
- }
- return c.Status(fiber.StatusOK).SendString(fmt.Sprintf("Location Deleted! %d", locID))
-}
-
// DeleteRoomHandler deletes a room based on an ID
func (s *Server) DeleteRoomHandler(c *fiber.Ctx) error {
roomID, err := c.ParamsInt("roomID")