react-router frontend, fixing backend issues, adding /api

This commit is contained in:
2021-12-27 22:51:16 -05:00
parent eda6e3fc5b
commit e84f57692a
16 changed files with 370 additions and 371 deletions

View File

@@ -83,7 +83,7 @@ tasks:
GI_DEVELOPMENT: false
# TZ: "America/New_York"
cmds:
- fiber dev
- fiber dev -D="app,frontend,dist"
run-all:
deps:

View File

@@ -1,284 +1,82 @@
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/2.2faaed84.chunk.js"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/main.35260e4f.chunk.js"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/2.2faaed84.chunk.js.map"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/main.35260e4f.chunk.js.map"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"401", "method":"GET", "path":"//config"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/favicon.ico"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/manifest.json"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/logo192.png"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"404", "method":"GET", "path":"//config"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/2.2faaed84.chunk.js"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/main.35260e4f.chunk.js"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/2.2faaed84.chunk.js.map"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/main.35260e4f.chunk.js.map"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"404", "method":"GET", "path":"//config"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/favicon.ico"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/manifest.json"}
{"logtype":"webserver", "pid":"1532", "requestid":"", "status":"200", "method":"GET", "path":"/logo192.png"}
{"level":"info","time":"2021-08-28T22:36:36-04:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-08-28T22:36: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:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-08-28T22:36:36-04:00","message":"Database and Config loaded, starting webserver..."}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/main.ebe69ffb.chunk.js"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/2.2faaed84.chunk.js"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/2.2faaed84.chunk.js.map"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/main.ebe69ffb.chunk.js.map"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/favicon.ico"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/manifest.json"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/logo192.png"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/2.2faaed84.chunk.js"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/main.ebe69ffb.chunk.js"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/2.2faaed84.chunk.js.map"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/static/js/main.ebe69ffb.chunk.js.map"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/favicon.ico"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/manifest.json"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/logo192.png"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"27380", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"info","time":"2021-08-29T15:05:54-04:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-08-29T15:05:54-04:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-08-29T15:05:54-04:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-08-29T15:05:55-04:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-08-29T15:05: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:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-08-29T15:05:55-04:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-11-13T18:34:18-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-13T18:34:18-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-13T18:34:18-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-11-13T22:11:00-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-13T22:11:00-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-13T22:11:00-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-11-13T22:11:01-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-13T22:11:01-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-13T22:11:01-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-11-14T14:26:43-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-14T14:26:43-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-14T14:26:43-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-11-14T14:26:46-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-14T14:26:46-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-14T14:26:46-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-11-14T18:43:36-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-14T18:43:36-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-14T18:43:36-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-11-14T20:29:03-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-14T20:29:03-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-14T20:29:03-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-11-14T20:32:07-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-14T20:32:07-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-14T20:32:07-05:00","message":"Database and Config loaded, starting webserver..."}
{"logtype":"webserver", "pid":"30264", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"30264", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"30264", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"30264", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"30264", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"30264", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"30264", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"30264", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"30264", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"info","time":"2021-11-14T21:04:27-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-14T21:04:27-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-14T21:04:27-05:00","message":"Database and Config loaded, starting webserver..."}
{"logtype":"webserver", "pid":"22768", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"22768", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"22768", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"22768", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"info","time":"2021-11-14T21:25:49-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-14T21:25:49-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-14T21:25:49-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-11-14T21:25:50-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-11-14T21:25:50-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-11-14T21:25:50-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-08T21:33:50-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-08T21:33:50-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-12-08T21:33:50-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-08T21:43:38-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-08T21:43:38-05:00","message":"{Timezone:America/New_York Server:{Port:3500 LocationPhotoDir:./app/photos/locations/} Logger:{Level:debug LoggingFile:./app/log/goInventorize.log} Authentication:{BasicAuth:true UserName:admin Password:password} Development:false}"}
{"level":"info","time":"2021-12-08T21:43:38-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-08T22:23:34-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-08T22:23:34-05: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":"2021-12-08T22:23:34-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-08T22:24:24-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-08T22:24:24-05: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":"2021-12-08T22:24:24-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-08T22:25:14-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-08T22:25:14-05: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":"2021-12-08T22:25:14-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-08T22:26:43-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-08T22:26:43-05: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":"2021-12-08T22:26:43-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-08T22:28:59-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-08T22:28:59-05: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":"2021-12-08T22:28:59-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-08T22:31:41-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-08T22:31:41-05: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":"2021-12-08T22:31:41-05:00","message":"Database and Config loaded, starting webserver..."}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-08T22:32:18-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:34:40-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:41:06-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:41:32-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:41:48-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:50:22-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:50:32-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:50:51-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:54:01-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/Location1/testCover.png"}
{"logtype":"webserver", "pid":"9108", "requestid":"", "status":"200", "method":"GET", "path":"/favicon.ico"}
{"level":"info","time":"2021-12-08T22:54:57-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-08T22:54:57-05: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":"2021-12-08T22:54:57-05:00","message":"Database and Config loaded, starting webserver..."}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/photos/locations/Location1/testCover.png"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/favicon.ico"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-08T22:55:08-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:56:17-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-08T22:56:23-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T22:58:22-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-08T22:58:26-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T23:01:05-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-08T23:01:39-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T23:03:09-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T23:04:22-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T23:04:45-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-08T23:06:26-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"500", "method":"GET", "path":"/photos/locations//"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"304", "method":"GET", "path":"/photos/locations/Location1/testCover.png"}
{"level":"debug","time":"2021-12-08T23:07:31-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"500", "method":"GET", "path":"/photos/locations//"}
{"level":"debug","time":"2021-12-08T23:07:55-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-08T23:08:02-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-08T23:10:33-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"67756", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"info","time":"2021-12-09T18:40:09-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-09T18:40:09-05: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":"2021-12-09T18:40:09-05:00","message":"Database and Config loaded, starting webserver..."}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-09T18:46:50-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-09T18:47:19-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-09T18:48:41-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-09T18:50:59-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-09T18:51:20-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-09T18:51:42-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-09T18:52:35-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-09T18:55:19-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-09T18:55:53-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"500", "method":"GET", "path":"/photos/locations//"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"304", "method":"GET", "path":"/photos/locations/Location1/testCover.png"}
{"level":"debug","time":"2021-12-09T18:56:26-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"500", "method":"GET", "path":"/photos/locations//"}
{"level":"debug","time":"2021-12-09T18:57:03-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-09T18:57:56-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"500", "method":"GET", "path":"/photos/locations//"}
{"level":"debug","time":"2021-12-09T18:58:43-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"level":"debug","time":"2021-12-09T18:59:26-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-10T23:01:45-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"304", "method":"GET", "path":"/photos/locations/Location1/testCover.png"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-10T23:19:09-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"level":"debug","time":"2021-12-10T23:19:38-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"level":"debug","time":"2021-12-10T23:19:40-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/config"}
{"level":"debug","time":"2021-12-10T23:20:15-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"level":"debug","time":"2021-12-10T23:20:40-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"level":"debug","time":"2021-12-10T23:20:42-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"level":"debug","time":"2021-12-10T23:20:56-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"level":"debug","time":"2021-12-10T23:21:01-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/2020-05-23 11_08_43-Montage_Sword_LHL.png Photos:[./app/photos/locations/Location1/2020-05-22 22_47_24-ForlornOutcast - Unreal Editor.png ./app/photos/locations/Location1/2020-05-22 20_57_56-Wwise.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"200", "method":"GET", "path":"/locations"}
{"logtype":"webserver", "pid":"69960", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/testName2/testString2"}
{"level":"debug","time":"2021-12-27T21:10:13-05:00","message":"Returning Locations: []"}
{"logtype":"webserver", "pid":"22376", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"level":"info","time":"2021-12-27T21:12:14-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:12:14-05: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":"2021-12-27T21:12:14-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-27T21:12:18-05:00","message":"Adding new location to database: %!(EXTRA main.Location={0 Location1 ./app/photos/locations/Location1/Location1_cover.png [./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] [] Notes for my location!})"}
{"level":"debug","time":"2021-12-27T21:12:18-05:00","message":"Adding new location: {0 Location1 ./app/photos/locations/Location1/Location1_cover.png [./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] [] Notes for my location!}"}
{"logtype":"webserver", "pid":"3604", "requestid":"", "status":"200", "method":"POST", "path":"/api/locations/new"}
{"level":"debug","time":"2021-12-27T21:12:47-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/Location1_cover.png Photos:[./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"3604", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"level":"info","time":"2021-12-27T21:13:38-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:13:38-05: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":"2021-12-27T21:13:38-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"debug","time":"2021-12-27T21:13:42-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/Location1_cover.png Photos:[./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"level":"debug","time":"2021-12-27T21:14:11-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/Location1_cover.png Photos:[./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
{"level":"debug","time":"2021-12-27T21:14:12-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/Location1_cover.png Photos:[./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"404", "method":"GET", "path":"/api/photos/locations/Location1/app/photos/locations/Location1/Location1_cover.png"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
{"level":"debug","time":"2021-12-27T21:18:27-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/Location1_cover.png Photos:[./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"404", "method":"GET", "path":"/api/photos/locations/Location1/app/photos/locations/Location1/Location1_cover.png"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/config"}
{"level":"debug","time":"2021-12-27T21:25:05-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/Location1_cover.png Photos:[./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"logtype":"webserver", "pid":"18424", "requestid":"", "status":"404", "method":"GET", "path":"/photos/locations/Location1/app/photos/locations/Location1/Location1_cover.png"}
{"level":"info","time":"2021-12-27T21:26:49-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:26:49-05: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":"2021-12-27T21:26:49-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-27T21:27:27-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:27:27-05: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":"2021-12-27T21:27:27-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-27T21:30:56-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:30:56-05: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":"2021-12-27T21:30:56-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-27T21:33:30-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:33:30-05: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":"2021-12-27T21:33:30-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"info","time":"2021-12-27T21:34:24-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:34:24-05: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":"2021-12-27T21:34:24-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"error","time":"2021-12-27T21:34:31-05:00","message":"Unable to fetch all rooms at location: field Location not found"}
{"level":"error","error":"field Location not found","time":"2021-12-27T21:34:31-05:00","message":"Unable to fetch location with id: 1"}
{"level":"info","time":"2021-12-27T21:34:31-05:00","message":"Deleting location from database: %!(EXTRA main.Location={0 [] [] })"}
{"level":"error","time":"2021-12-27T21:34:31-05:00","message":"Unable to delete location from database: {%!s(int=0) [] [] } error: not found "}
{"level":"error","error":"not found","time":"2021-12-27T21:34:31-05:00","message":"Unable to delete location with id: 1"}
{"logtype":"webserver", "pid":"20316", "requestid":"", "status":"200", "method":"DELETE", "path":"/api/locations/1"}
{"level":"info","time":"2021-12-27T21:34:47-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:34:47-05: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":"2021-12-27T21:34:47-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"debug","time":"2021-12-27T21:34:48-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/Location1_cover.png Photos:[./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"28720", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"level":"error","time":"2021-12-27T21:35:02-05:00","message":"Unable to fetch all rooms at location: field Location not found"}
{"level":"error","error":"field Location not found","time":"2021-12-27T21:35:02-05:00","message":"Unable to fetch location with id: 1"}
{"level":"info","time":"2021-12-27T21:35:02-05:00","message":"Deleting location from database: %!(EXTRA main.Location={0 [] [] })"}
{"level":"error","time":"2021-12-27T21:35:02-05:00","message":"Unable to delete location from database: {%!s(int=0) [] [] } error: not found "}
{"level":"error","error":"not found","time":"2021-12-27T21:35:02-05:00","message":"Unable to delete location with id: 1"}
{"logtype":"webserver", "pid":"28720", "requestid":"", "status":"200", "method":"DELETE", "path":"/api/locations/1"}
{"level":"debug","time":"2021-12-27T21:35:06-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/Location1_cover.png Photos:[./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"28720", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"level":"info","time":"2021-12-27T21:36:13-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:36:13-05: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":"2021-12-27T21:36:13-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"error","time":"2021-12-27T21:36:15-05:00","message":"Unable to fetch all rooms at location: field Location not found"}
{"level":"error","error":"field Location not found","time":"2021-12-27T21:36:15-05:00","message":"Unable to fetch location with id: 1"}
{"logtype":"webserver", "pid":"21240", "requestid":"", "status":"500", "method":"DELETE", "path":"/api/locations/1"}
{"level":"info","time":"2021-12-27T21:37:30-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:37:30-05: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":"2021-12-27T21:37:30-05:00","message":"Database and Config loaded, starting webserver..."}
{"level":"error","time":"2021-12-27T21:38:18-05:00","message":"Unable to fetch all rooms at location: field Location not found"}
{"logtype":"webserver", "pid":"20368", "requestid":"", "status":"500", "method":"GET", "path":"/api/locations/1"}
{"level":"debug","time":"2021-12-27T21:38:46-05:00","message":"Returning Locations: [{ID:1 Name:Location1 Description: CoverPhoto:./app/photos/locations/Location1/Location1_cover.png Photos:[./app/photos/locations/Location1/Location1_0.png ./app/photos/locations/Location1/Location1_1.png] Rooms:[] Notes:Notes for my location!}]"}
{"logtype":"webserver", "pid":"20368", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations"}
{"level":"info","time":"2021-12-27T21:40:29-05:00","message":"Configuration loaded successfully..."}
{"level":"debug","time":"2021-12-27T21:40:29-05: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":"2021-12-27T21:40:29-05:00","message":"Database and Config loaded, starting webserver..."}
{"logtype":"webserver", "pid":"20308", "requestid":"", "status":"200", "method":"GET", "path":"/api/locations/1"}

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

Before

Width:  |  Height:  |  Size: 349 KiB

After

Width:  |  Height:  |  Size: 349 KiB

View File

Before

Width:  |  Height:  |  Size: 536 KiB

After

Width:  |  Height:  |  Size: 536 KiB

View File

@@ -28,12 +28,22 @@ type Room struct {
Notes string
}
// Item is contained inside a room
// Cabinet is a containerized area in a room
type Cabinet struct {
ID int `storm:"id, increment"`
RoomID int // Room ID that the cabinet is assigned to
CoverPhoto string // A "Cover photo" for this item
Name string
Notes string
}
// Item is contained inside a room or cabinet
type Item struct {
ID int `storm:"id, increment"`
RoomID int // Room ID that item is assigned to
CoverPhoto string // A "cover photo" for the item
Photos []string // A list of additional photos for the room
Count int // If item has duplicates
Name string
Product string
Serial string
@@ -61,23 +71,12 @@ func (s *Server) AddLocation(loc Location) error {
return nil
}
// 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)
err := s.Database.Save(&room)
// DeleteLocation deletes a location by ID
func (s *Server) DeleteLocation(loc Location) error {
s.Log.Info().Msgf("Deleting location from database: ", loc)
err := s.Database.DeleteStruct(&loc)
if err != nil {
s.Log.Error().Msgf("Unable to add new room to database: %s error: %s", room, err)
return err
}
return 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)
s.Log.Error().Msgf("Unable to delete location from database: %s error: %s ", loc, err)
return err
}
return nil
@@ -93,24 +92,75 @@ func (s *Server) GetLocations() (locations []Location, err error) {
return locations, nil
}
// GetRoomsAtLocation fetches all the rooms assigned to a location by location ID
func (s *Server) GetRoomsAtLocation(locID int) error {
var rooms []Room
err := s.Database.Find("Location", locID, &rooms)
// GetLocation fetches a single location
func (s *Server) GetLocation(locID int) (location Location, err error) {
err = s.Database.One("ID", locID, &location)
if err != nil {
s.Log.Error().Msgf("Unable to fetch all rooms at location: %s", err)
return location, err
}
return location, nil
}
// 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)
err := s.Database.Save(&room)
if err != nil {
s.Log.Error().Msgf("Unable to add new room to database: %s error: %s", room, err)
return err
}
return nil
}
// GetItemsInRoom fetches all of the items assigned to a room
func (s *Server) GetItemsInRoom(roomID int) error {
var items []Item
err := s.Database.Find("Room", roomID, &items)
// GetAllRooms gets all of the rooms
func (s *Server) GetAllRooms() (rooms []Room, err error) {
s.Log.Info().Msg("Getting all Rooms")
err = s.Database.All(&rooms)
if err != nil {
s.Log.Error().Msgf("Unable to fetch all rooms at location: %s", err)
s.Log.Error().Msgf("Unable to fetch all room with error: %s", err)
return rooms, err
}
return rooms, 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)
if err != nil {
s.Log.Error().Msgf("Unable to fetch all rooms at location: %s", err)
return nil, err
}
return rooms, nil
}
// GetCabinetsInRoom fetches all of the cabinets assigned to a room
func (s *Server) GetCabinetsInRoom(roomID int) (cabinets []Cabinet, err error) {
err = s.Database.Find("Room", roomID, &cabinets)
if err != nil {
s.Log.Error().Msgf("Unable to fetch all cabinets in room: %s", err)
return nil, err
}
return cabinets, 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)
if err != nil {
s.Log.Error().Msgf("Unable to fetch all items in room: %s", err)
return nil, err
}
return items, nil
}

View File

@@ -8000,9 +8000,9 @@
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
},
"history": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/history/-/history-5.1.0.tgz",
"integrity": "sha512-zPuQgPacm2vH2xdORvGGz1wQMuHSIB56yNAy5FnLuwOwgSYyPKptJtcMm6Ev+hRGeS+GzhbmRacHzvlESbFwDg==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/history/-/history-5.2.0.tgz",
"integrity": "sha512-uPSF6lAJb3nSePJ43hN3eKj1dTWpN9gMod0ZssbFTIsen+WehTmEadgL+kg78xLJFdRfrrC//SavDzmRVdE+Ig==",
"requires": {
"@babel/runtime": "^7.7.6"
}
@@ -14161,20 +14161,30 @@
"integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg=="
},
"react-router": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.0.2.tgz",
"integrity": "sha512-8/Wm3Ed8t7TuedXjAvV39+c8j0vwrI5qVsYqjFr5WkJjsJpEvNSoLRUbtqSEYzqaTUj1IV+sbPJxvO+accvU0Q==",
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.2.1.tgz",
"integrity": "sha512-2fG0udBtxou9lXtK97eJeET2ki5//UWfQSl1rlJ7quwe6jrktK9FCCc8dQb5QY6jAv3jua8bBQRhhDOM/kVRsg==",
"requires": {
"history": "^5.1.0"
"history": "^5.2.0"
},
"dependencies": {
"history": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/history/-/history-5.2.0.tgz",
"integrity": "sha512-uPSF6lAJb3nSePJ43hN3eKj1dTWpN9gMod0ZssbFTIsen+WehTmEadgL+kg78xLJFdRfrrC//SavDzmRVdE+Ig==",
"requires": {
"@babel/runtime": "^7.7.6"
}
}
}
},
"react-router-dom": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.0.2.tgz",
"integrity": "sha512-cOpJ4B6raFutr0EG8O/M2fEoyQmwvZWomf1c6W2YXBZuFBx8oTk/zqjXghwScyhfrtnt0lANXV2182NQblRxFA==",
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.2.1.tgz",
"integrity": "sha512-I6Zax+/TH/cZMDpj3/4Fl2eaNdcvoxxHoH1tYOREsQ22OKDYofGebrNm6CTPUcvLvZm63NL/vzCYdjf9CUhqmA==",
"requires": {
"history": "^5.1.0",
"react-router": "6.0.2"
"history": "^5.2.0",
"react-router": "6.2.1"
}
},
"react-scripts": {

View File

@@ -18,7 +18,8 @@
"react-dom": "^17.0.2",
"react-icons": "^4.3.1",
"react-jss": "^10.9.0",
"react-router-dom": "^6.0.2",
"react-router": "^6.2.1",
"react-router-dom": "^6.2.1",
"react-scripts": "4.0.3",
"web-vitals": "^2.1.2"
},

View File

@@ -1,11 +1,13 @@
import React, {useState, useEffect, createContext} from 'react';
import HomePage from './components/pages/HomePage';
import Locations from './components/pages/Locations'
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 { useDebouncedValue, useLocalStorageValue } from '@mantine/hooks';
import { useNotifications } from '@mantine/notifications';
import { backendAPI } from './services/backend-api';
import { backendAPI, defaultURLS } from './services/backend-api';
import SideBar from './components/SideBar';
@@ -21,19 +23,22 @@ function App() {
// Main nav/sidebar appshell openend
const [shellOpened, setShellOpened] = useState(false)
const [isLoading, setIsLoading] = useState(true)
const [currentPage, setCurrentPage] = useState("home")
const [currentPage, setCurrentPage] = useState({"path": "home", "id": -1})
const [serverConfig, setServerConfig] = useState({})
const notifications = useNotifications();
const navigate = useNavigate();
useEffect(() => {
navigate("/")// Reset to homepage on new load anywhere in the app
setIsLoading(true)
async function fetchSettings() {
backendAPI.get('/config').then(results => {
results.data.baseURL = results.config.baseURL
// console.log("FULL RESULTS: ", results.config.baseURL)
results.data.baseURL = defaultURLS.baseURL
console.log("CONFIG: ", results.data)
setServerConfig(results.data)
notifications.showNotification({
@@ -58,14 +63,22 @@ function App() {
}, [])
useEffect(() => {
console.log("Page Change!", currentPage)
}, [currentPage])
function showPage() {
switch (currentPage) {
switch (currentPage.path) {
case "home":
return <HomePage />
case "locations":
return <Locations />
console.log("RETURNING LOCATIONS: ", currentPage)
return <Locations setCurrentPage={setCurrentPage} id={currentPage.id}/>
case "rooms":
console.log("RETURNING ROOMS: ", currentPage)
return <RoomsPage setCurrentPage={setCurrentPage} id={currentPage.id} />
default:
break;
}
@@ -80,7 +93,12 @@ function App() {
navbar={<SideBar opened={shellOpened} setCurrentPage={setCurrentPage}/>}
header={<AppHeader opened={shellOpened} setOpened={setShellOpened}/>}
>
{showPage()}
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="locations" element={<Locations />} />
<Route path="rooms" element={<RoomsPage />} />
</Routes>
</AppShell>
</APIContext.Provider>

View File

@@ -1,5 +1,6 @@
import React, {useState } from 'react';
import { Navbar, Text, Group, ThemeIcon, Button, UnstyledButton } from '@mantine/core';
import { Link } from 'react-router-dom';
import { createStyles } from '@mantine/styles';
import { BsMap } from 'react-icons/bs'
@@ -37,10 +38,6 @@ function SideBar(props) {
const { classes } = useStyles();
const [activePage, setActivePage] = useState("")
function handlePageChange(page) {
props.setCurrentPage(page)
setActivePage(page)
}
return (
<Navbar
@@ -51,14 +48,18 @@ function SideBar(props) {
hidden={!props.opened}
width={{ base: 200, breakpoints: { sm: '100%', lg: 300 } }}
>
<UnstyledButton className={activePage === "locations" ? classes.activeButton : classes.button} onClick={() => handlePageChange("locations")} >
<Button leftIcon={<BsMap />} variant="white" className={activePage === "locations" ? classes.activeButton : classes.button} component={Link} to="/locations" onClick={() => setActivePage("locations")} >
Locations
</Button>
{/* <UnstyledButton component={Link} to="/locations" className={activePage === "locations" ? classes.activeButton : classes.button} >
<Group>
<BsMap />
<Text>Locations</Text>
</Group>
</UnstyledButton>
<UnstyledButton className={activePage === "rooms" ? classes.activeButton : classes.button} onClick={() => handlePageChange("rooms")} >
</UnstyledButton> */}
<UnstyledButton component={Link} to="/about" className={activePage === "rooms" ? classes.activeButton : classes.button} onClick={() => setActivePage("rooms")} >
<Group>
<BsMap />
<Text>Rooms</Text>

View File

@@ -6,7 +6,7 @@ import { useNotifications } from '@mantine/notifications';
import { backendAPI } from '../../services/backend-api';
function LocationsPage() {
function LocationsPage(props) {
// const [opened, setOpened] = useState(false);
const [isLoading, setIsLoading] = useState(false);
const [locations, setLocations] = useState([])
@@ -16,10 +16,12 @@ function LocationsPage() {
const notifications = useNotifications();
useEffect(() => {
console.log("LOADING LOCATIONS PAGE!")
setIsLoading(true)
async function fetchSettings() {
backendAPI.get('/locations').then(results => {
console.log("CONFIG IN LOCATIONS: ", serverConfig)
console.log("LOCATIONS: ", results.data)
setLocations(results.data)
setIsLoading(false)
}).catch(err => {
@@ -42,9 +44,10 @@ function LocationsPage() {
return (
<>
<Center>{ isLoading && <Loader size="xl" variant="bars" />}</Center>
<Center><Text>Locations</Text></Center>
<SimpleGrid cols={4} spacing="xl">
{ locations.map((location, idx) =>
<Card key={`${idx}-${location.Name}`} shadow="sm" padding="md">
<Card key={`${idx} - ${location.ID}`} component="a" onClick={(e) => {props.setCurrentPage({"path": "rooms", "id": location.ID})}} shadow="sm" padding="md">
<Card.Section>
{location.CoverPhoto ? <Image src={`${serverConfig.baseURL}/photos/locations/${location.Name}/${location.CoverPhoto}`}></Image> : <Text>No Photo</Text>}
</Card.Section>

View File

@@ -0,0 +1,71 @@
import React, {useState, useEffect, useContext, createContext} from 'react';
import { APIContext } from '../../App';
import { Text, Loader, Center, Card, Image, Badge, Button, SimpleGrid, Group } from '@mantine/core'
import { useNotifications } from '@mantine/notifications';
import { backendAPI } from '../../services/backend-api';
function RoomsPage(props) {
// const [opened, setOpened] = useState(false);
const [isLoading, setIsLoading] = useState(false);
const [rooms, setLocations] = useState([])
const serverConfig = useContext(APIContext);
const notifications = useNotifications();
useEffect(() => {
setIsLoading(true)
async function fetchSettings() {
let url = `/rooms`
console.log("CURRENT PAGE IN ROOMS: ", props.id)
if (props.id !== -1) {
url = `/rooms/${props.id}`
}
backendAPI.get(url).then(results => {
console.log("CONFIG IN LOCATIONS: ", serverConfig)
setLocations(results.data)
setIsLoading(false)
}).catch(err => {
notifications.showNotification({
title: 'Backend Notice',
message: `Failed to fetch rooms from backend! ${err}`,
autoClose: false,
color: "red",
})
setIsLoading(false)
})
}
fetchSettings();
}, [])
return (
<>
<Center>{ isLoading && <Loader size="xl" variant="bars" />}</Center>
<SimpleGrid cols={4} spacing="xl">
{ rooms.map((room, idx) =>
<Card key={`${room.ID}`} component="a" onClick={(e) => {props.setCurrentPage({"path": "rooms", "id": room.ID})}} shadow="sm" padding="md">
<Card.Section>
{room.CoverPhoto ? <Image src={`${serverConfig.baseURL}/photos/rooms/${room.Name}/${room.CoverPhoto}`}></Image> : <Text>No Photo</Text>}
</Card.Section>
<Group position="apart">
<Text weight={500}>{room.Name}</Text>
{/* <Badge color="pink" variant="light">
On Sale
</Badge> */}
</Group>
<Text size="sm">{room.Description}</Text>
</Card>
)}
</SimpleGrid>
</>
);
}
export default RoomsPage;

View File

@@ -3,6 +3,7 @@ import ReactDOM from 'react-dom';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { NotificationsProvider } from '@mantine/notifications';
import { BrowserRouter } from 'react-router-dom';
//setup api
//const backendPort = process.env.REACT_APP_BACKEND_PORT
@@ -11,7 +12,9 @@ import { NotificationsProvider } from '@mantine/notifications';
ReactDOM.render(
<React.StrictMode>
<NotificationsProvider>
<BrowserRouter>
<App />
</BrowserRouter>
</NotificationsProvider>
</React.StrictMode>,
document.getElementById('root')

View File

@@ -2,12 +2,19 @@ import axios from 'axios';
let baseURL = ""
let baseAPIURL = "/api"
if (process.env.NODE_ENV !== 'production') {
baseURL = 'http://localhost:3500'
baseAPIURL = 'http://localhost:3500/api'
}
export const defaultURLS = {
baseURL: baseURL,
baseAPIURL: baseAPIURL
}
export const backendAPI = axios.create({
baseURL: baseURL
baseURL: baseAPIURL
})

View File

@@ -5,6 +5,7 @@ import (
"io"
"os"
"path/filepath"
"strconv"
"github.com/gofiber/fiber/v2"
)
@@ -30,18 +31,19 @@ func (s *Server) AddNewLocationHandler(c *fiber.Ctx) error {
}
locAdditionalPhotos := form.File["AdditionalPhotos"]
// Create the directory for this location to store the photos
err = os.Mkdir(s.Config.Server.LocationPhotoDir+locName, 0755)
err = os.MkdirAll(s.Config.Server.LocationPhotoDir+locName, 0755)
if err != nil {
return err
}
var photoPathsList []string
for _, photo := range locAdditionalPhotos {
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 + "/" + photo.Filename)
photoPath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + locName + "/" + locName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename))
photoPathsList = append(photoPathsList, photoPath)
photoData, err := io.ReadAll(src)
if err != nil {
@@ -53,7 +55,7 @@ func (s *Server) AddNewLocationHandler(c *fiber.Ctx) error {
locNotes := form.Value["Notes"][0]
// saving the uploaded image to our images dir
coverImagePath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + locName + "/" + locPhoto.Filename)
coverImagePath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + locName + "/" + locName + "_cover" + filepath.Ext(locPhoto.Filename))
src, err := locPhoto.Open()
if err != nil {
return err
@@ -78,6 +80,7 @@ func (s *Server) AddNewLocationHandler(c *fiber.Ctx) error {
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))
}
@@ -88,29 +91,59 @@ func (s *Server) GetAllLocationsHandler(c *fiber.Ctx) error {
return err
}
s.Log.Debug().Msgf("Returning Locations: %+v", locations)
testLoc := Location{
ID: 1,
Description: "This is a description of the location",
Name: "Location1",
CoverPhoto: "testCover.png", // A "cover photo" for the location
Notes: "Notes String",
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
}
testLoc2 := Location{
ID: 2,
Description: "This is a description of the location2",
Name: "testName2",
CoverPhoto: "testString2", // A "cover photo" for the location
Notes: "Notes String2",
location, err := s.GetLocation(locID)
if err != nil {
return err
}
var locArray [6]Location
locArray[0] = testLoc
locArray[1] = testLoc2
fmt.Println("Returning TestLoc: ", locArray)
return c.Status(fiber.StatusOK).JSON(locArray)
fmt.Println("Returning A single location: ", location)
return c.Status(fiber.StatusOK).JSON(location)
}
func (s *Server) DeleteLocationHandler(c *fiber.Ctx) error {
locID := c.Params("locID")
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
}
fmt.Println("LocID: ", locID)
return c.Status(fiber.StatusOK).JSON(locID)
return c.Status(fiber.StatusOK).SendString(fmt.Sprintf("Location Deleted! %d", locID))
}
// GetAllRoomsHandler gets all of the rooms in the db
func (s *Server) GetAllRoomsHandler(c *fiber.Ctx) error {
rooms, err := s.GetAllRooms()
if err != nil {
return err
}
return c.Status(fiber.StatusOK).JSON(rooms)
}
func (s *Server) GetRoomsAtLocationHandler(c *fiber.Ctx) error {
locID, err := c.ParamsInt("locID")
if err != nil {
return err
}
rooms, err := s.GetRoomsAtLocation(locID)
fmt.Println("ROOMS: ", rooms)
if err != nil {
return err
}
return c.Status(fiber.StatusOK).JSON(rooms)
}

12
main.go
View File

@@ -85,7 +85,7 @@ func main() {
return c.SendString("GoInventorize Backend Hello Route!")
})
// Unauthenticated config route to fetch the config
server.WebServer.Get("/config", server.GetServerConfig)
server.WebServer.Get("api/config", server.GetServerConfig)
// Setup our basic authentication if defined
if server.Config.Authentication.BasicAuth {
app.Use(basicauth.New(basicauth.Config{
@@ -95,9 +95,13 @@ func main() {
}))
}
// Location Routes
server.WebServer.Get("/locations", server.GetAllLocationsHandler)
server.WebServer.Post("/locations/new", server.AddNewLocationHandler)
server.WebServer.Delete("/locations/:locID", server.DeleteLocationHandler)
server.WebServer.Get("/api/locations", server.GetAllLocationsHandler)
server.WebServer.Get("/api/locations/:locID", server.GetSingleLocationHandler)
server.WebServer.Post("api/locations/new", server.AddNewLocationHandler)
server.WebServer.Delete("api/locations/:locID", server.DeleteLocationHandler)
// Room Routes
server.WebServer.Get("/api/rooms", server.GetAllRoomsHandler)
server.WebServer.Get("/api/rooms/:locID", server.GetRoomsAtLocationHandler)
fmt.Println("Everything ready, starting server! ", fmt.Sprintf(":%s", server.Config.Server.Port))
server.WebServer.Listen(fmt.Sprintf(":%s", server.Config.Server.Port))
}