Commit 0ce4516b authored by 0Tyler's avatar 0Tyler

document controller

parent a513b3c8
......@@ -6,51 +6,21 @@
</artifacts-to-build>
</component>
<component name="ChangeListManager">
<list default="true" id="d3a5f2c9-d22f-4974-88fb-d506b4e5feaf" name="Default Changelist" comment="RemoteService">
<change afterPath="$PROJECT_DIR$/.idea/artifacts/iotgateway_cloud_jar.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileContent/fileContent.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileContent/fileContent.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/resourceHashesCache.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/resourceHashesCache.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/javaCompile/classAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/javaCompile/classAnalysis.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/javaCompile/jarAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/javaCompile/jarAnalysis.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/javaCompile/javaCompile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/javaCompile/javaCompile.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/javaCompile/taskHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/javaCompile/taskHistory.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/taskHistory/taskHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/taskHistory/taskHistory.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/taskHistory/taskHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/taskHistory/taskHistory.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" afterDir="false" />
<list default="true" id="d3a5f2c9-d22f-4974-88fb-d506b4e5feaf" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Model.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Model.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/model/PrivacyChoiceMessage.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/resources/application.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/contract/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/contract/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/cache.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/cache.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/outputFiles.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/outputFiles.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/classes/java/main/edu/prlab/tyler/gateway/GatewayApplication.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/classes/java/test/edu/prlab/tyler/gateway/GatewayApplicationTests.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/resources/main/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/resources/main/application.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin.idx" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin.idx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/settings.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/settings.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/settings.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/settings.gradle" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/build/" />
......@@ -174,49 +144,36 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/cloud/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="389">
<caret line="45" selection-start-line="45" selection-end-line="45" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="8" selection-start-line="8" selection-end-line="8" />
<state relative-caret-position="289">
<caret line="23" column="33" lean-forward="true" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#262#263#0" expanded="true" />
<element signature="e#329#330#0" expanded="true" />
<element signature="e#686#687#0" expanded="true" />
<element signature="e#738#739#0" expanded="true" />
<element signature="e#1724#1725#0" expanded="true" />
<element signature="e#1790#1791#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="23" column="1" selection-start-line="23" selection-start-column="1" selection-end-line="23" selection-end-column="1" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="252">
<caret line="22" selection-start-line="22" selection-end-line="22" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378">
<caret line="21" column="33" selection-start-line="21" selection-start-column="30" selection-end-line="21" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="180">
<caret line="15" selection-start-line="15" selection-end-line="15" />
</state>
</provider>
</entry>
......@@ -224,8 +181,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="450">
<caret line="27" column="5" selection-start-line="27" selection-start-column="5" selection-end-line="27" selection-end-column="5" />
<state relative-caret-position="455">
<caret line="44" column="5" lean-forward="true" selection-start-line="44" selection-start-column="5" selection-end-line="44" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
......@@ -234,58 +191,66 @@
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/URLEncoder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="18" column="26" selection-start-line="18" selection-start-column="26" selection-end-line="18" selection-end-column="26" />
<folding>
<element signature="e#599#600#0" expanded="true" />
<element signature="e#642#643#0" expanded="true" />
</folding>
<state relative-caret-position="200">
<caret line="199" column="25" selection-start-line="199" selection-start-column="25" selection-end-line="199" selection-end-column="25" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="137">
<caret line="52" column="67" lean-forward="true" selection-start-line="52" selection-start-column="67" selection-end-line="52" selection-end-column="67" />
<state relative-caret-position="72">
<caret line="4" selection-start-line="4" selection-end-line="4" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#920#941#1" expanded="true" />
<element signature="e#2049#2050#0" expanded="true" />
<element signature="e#2102#2103#0" expanded="true" />
<element signature="e#2737#2738#0" expanded="true" />
<element signature="e#2809#2810#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/nio/file/Path.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/function/Function.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="203">
<caret line="597" column="9" selection-start-line="597" selection-start-column="9" selection-end-line="597" selection-end-column="9" />
<state relative-caret-position="200">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DeviceRepository.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/UnsupportedEncodingException.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" />
<state relative-caret-position="414">
<caret line="48" column="11" selection-start-line="48" selection-start-column="11" selection-end-line="48" selection-end-column="11" />
<folding>
<element signature="e#830#831#0" expanded="true" />
<element signature="e#854#855#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="11" column="78" selection-start-line="11" selection-start-column="78" selection-end-line="11" selection-end-column="78" />
<state relative-caret-position="421">
<caret line="58" column="4" selection-start-line="58" selection-start-column="4" selection-end-line="66" selection-end-column="5" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="576">
<caret line="38" column="5" lean-forward="true" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
<folding>
<element signature="e#550#551#0" expanded="true" />
<element signature="e#588#589#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
......@@ -302,11 +267,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>matches</find>
<find>BCryptPasswordEncoder</find>
<find>User</find>
<find>ContractGasProvider</find>
<find>TransactionReceiptProcessor</find>
<find>Manager</find>
<find>ethGetTransactionReceipt</find>
<find>transactionReceipt</find>
......@@ -332,6 +292,11 @@
<find>accept</find>
<find>access</find>
<find>fatJar</find>
<find>privacyChoiceService</find>
<find>InputStream</find>
<find>204</find>
<find>FunctionWithException</find>
<find>saveDevice</find>
</findStrings>
<replaceStrings>
<replace>cloud</replace>
......@@ -341,6 +306,7 @@
<replace>UserDetailService</replace>
<replace>DeviceContract</replace>
<replace>Account</replace>
<replace>service</replace>
</replaceStrings>
</component>
<component name="Git.Settings">
......@@ -349,9 +315,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceRepository.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoicesIndex.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/RemoteConfig.java" />
<option value="$PROJECT_DIR$/gateway/src/main/resources/application.properties" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/UserController.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/auth/User.java" />
......@@ -368,18 +331,15 @@
<option value="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/RemoteService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/SensitiveUserService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/DefaultData.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Model.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.java" />
<option value="$PROJECT_DIR$/settings.gradle" />
<option value="$PROJECT_DIR$/contract/build.gradle" />
......@@ -387,26 +347,32 @@
<option value="$PROJECT_DIR$/gateway/settings.gradle" />
<option value="$PROJECT_DIR$/gateway/build.gradle" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/document.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java" />
<option value="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java" />
<option value="$PROJECT_DIR$/cloud/build.gradle" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/resources/application.properties" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTool.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java" />
<option value="$PROJECT_DIR$/cloud/build.gradle" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-6" />
<option name="width" value="1200" />
<option name="height" value="698" />
<option name="x" value="953" />
<option name="width" value="974" />
<option name="height" value="1047" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
......@@ -472,6 +438,16 @@
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="config" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
......@@ -492,6 +468,17 @@
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="auth" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
......@@ -542,8 +529,7 @@
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="services" type="462c0819:PsiDirectoryNode" />
<item name="storage" type="462c0819:PsiDirectoryNode" />
<item name="util" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -622,6 +608,16 @@
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="controllers" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="gateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="services" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
......@@ -719,7 +715,7 @@
</option>
<option name="contentProportion" value="0.18939394" />
</component>
<component name="RunManager" selected="Multirun.iotgateway">
<component name="RunManager" selected="Spring Boot.CloudApplication">
<configuration name="iotgateway:cloud [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
......@@ -875,7 +871,7 @@
<workItem from="1557364868133" duration="620000" />
<workItem from="1557365602468" duration="84502000" />
<workItem from="1557987857812" duration="17623000" />
<workItem from="1558076620952" duration="15494000" />
<workItem from="1558076620952" duration="30897000" />
</task>
<task id="LOCAL-00001" summary="git init">
<created>1556204675975</created>
......@@ -1010,7 +1006,14 @@
<option name="project" value="LOCAL" />
<updated>1557915868144</updated>
</task>
<option name="localTasksCounter" value="20" />
<task id="LOCAL-00020" summary="document controller">
<created>1558333955632</created>
<option name="number" value="00020" />
<option name="presentableId" value="LOCAL-00020" />
<option name="project" value="LOCAL" />
<updated>1558333955632</updated>
</task>
<option name="localTasksCounter" value="21" />
<servers />
</component>
<component name="TestHistory">
......@@ -1046,7 +1049,7 @@
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="215534000" />
<option name="totallyTimeSpent" value="230937000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -1067,7 +1070,7 @@
<window_info id="UI Designer" order="3" />
<window_info id="Favorites" order="4" side_tool="true" />
<window_info id="Web" order="5" side_tool="true" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" visible="true" weight="0.29064587" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" visible="true" weight="0.30178174" />
<window_info anchor="bottom" id="Messages" order="1" sideWeight="0.49733475" weight="0.20824054" />
<window_info anchor="bottom" id="Message" order="2" />
<window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.5033408" />
......@@ -1114,7 +1117,8 @@
<MESSAGE value="Device id" />
<MESSAGE value="getPrivacyPolicyChoices function change" />
<MESSAGE value="RemoteService" />
<option name="LAST_COMMIT_MESSAGE" value="RemoteService" />
<MESSAGE value="document controller" />
<option name="LAST_COMMIT_MESSAGE" value="document controller" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
......@@ -1141,131 +1145,137 @@
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/InputStreamResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="796">
<caret line="63" column="32" selection-start-line="63" selection-start-column="32" selection-end-line="63" selection-end-column="32" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="186">
<caret line="44" column="13" selection-start-line="44" selection-start-column="13" selection-end-line="44" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="432">
<caret line="27" column="33" selection-start-line="27" selection-start-column="33" selection-end-line="27" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="288">
<caret line="22" column="19" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java">
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="468">
<caret line="56" column="56" selection-start-line="56" selection-start-column="56" selection-end-line="56" selection-end-column="56" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="108">
<caret line="29" column="13" selection-start-line="29" selection-start-column="13" selection-end-line="29" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/UserService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="26" selection-start-line="26" selection-end-line="26" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="345">
<caret line="210" column="45" selection-start-line="210" selection-start-column="45" selection-end-line="210" selection-end-column="45" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java">
<entry file="file://$PROJECT_DIR$/cloud/.gitignore">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/cloud/gradle/wrapper/gradle-wrapper.properties">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/RuntimeException.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="17" column="4" selection-start-line="17" selection-start-column="4" selection-end-line="17" selection-end-column="4" />
<state relative-caret-position="213">
<caret line="78" column="11" selection-start-line="78" selection-start-column="11" selection-end-line="78" selection-end-column="11" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#2364#2365#0" expanded="true" />
<element signature="e#2401#2402#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceIndex.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DeviceRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="18" column="1" selection-start-line="18" selection-start-column="1" selection-end-line="18" selection-end-column="1" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="90">
<caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java">
<entry file="file://$PROJECT_DIR$/cloud/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="17" column="20" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="519">
<caret line="58" column="1" lean-forward="true" selection-start-line="58" selection-start-column="1" selection-end-line="58" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/settings.gradle">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/gateway/build/reports/tests/test/index.html">
<provider selected="true" editor-type-id="text-editor" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/nio/file/StandardCopyOption.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="396">
<caret line="45" column="16" lean-forward="true" selection-start-line="45" selection-start-column="16" selection-end-line="45" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/nio/file/Path.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-4179">
<caret line="97" column="17" selection-start-line="97" selection-start-column="17" selection-end-line="97" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contract/build.gradle">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="14" selection-start-line="14" selection-end-line="15" />
<state relative-caret-position="395">
<caret line="31" column="18" selection-start-line="31" selection-start-column="18" selection-end-line="31" selection-end-column="18" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hibernate/hibernate-core/5.3.9.Final/e0922b9cc0621641bdec33b4e2869d033f918a4c/hibernate-core-5.3.9.Final-sources.jar!/org/hibernate/mapping/SimpleValue.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="182">
<caret line="37" selection-start-line="37" selection-end-line="38" selection-end-column="9" />
<state relative-caret-position="174">
<caret line="485" column="18" selection-start-line="485" selection-start-column="18" selection-end-line="485" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/settings.gradle">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="31" selection-start-column="31" selection-end-column="31" />
<state relative-caret-position="144">
<caret line="12" column="26" selection-start-line="12" selection-start-column="26" selection-end-line="12" selection-end-column="26" />
<folding>
<element signature="e#422#423#0" expanded="true" />
<element signature="e#491#492#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.gradle">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.1.4.RELEASE/2edd9ce8f7fe3dafb83eef9248b882abc6fe6192/spring-boot-autoconfigure-2.1.4.RELEASE-sources.jar!/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="19" selection-start-line="19" selection-end-line="19" />
<state relative-caret-position="174">
<caret line="136" column="50" selection-start-line="136" selection-start-column="50" selection-end-line="136" selection-end-column="50" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/settings.gradle">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="11" column="55" selection-start-line="11" selection-start-column="55" selection-end-line="11" selection-end-column="55" />
<state relative-caret-position="66">
<caret line="10" column="26" selection-start-line="10" selection-start-column="26" selection-end-line="10" selection-end-column="26" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#399#400#0" expanded="true" />
<element signature="e#466#467#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/build.gradle">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/InputStreamSource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="428">
<caret line="46" column="19" selection-start-line="46" selection-start-column="19" selection-end-line="46" selection-end-column="19" />
<state relative-caret-position="261">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Device.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="326">
<caret line="37" column="14" selection-start-line="37" selection-start-column="14" selection-end-line="37" selection-end-column="14" />
<state relative-caret-position="-97">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
</state>
</provider>
</entry>
......@@ -1276,271 +1286,273 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Manufacturer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Model.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="22" column="4" selection-start-line="22" selection-start-column="4" selection-end-line="22" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/ByteArrayResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
<caret line="42" column="44" lean-forward="true" selection-start-line="42" selection-start-column="44" selection-end-line="42" selection-end-column="44" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1787#1788#0" expanded="true" />
<element signature="e#1844#1845#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.1.4.RELEASE/2edd9ce8f7fe3dafb83eef9248b882abc6fe6192/spring-boot-autoconfigure-2.1.4.RELEASE-sources.jar!/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/AbstractResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-788">
<caret line="136" column="50" selection-start-line="136" selection-start-column="50" selection-end-line="136" selection-end-column="50" />
<state relative-caret-position="162">
<caret line="43" column="22" selection-start-line="43" selection-start-column="22" selection-end-line="43" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Model.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="22" column="24" selection-start-line="22" selection-start-column="24" selection-end-line="22" selection-end-column="24" />
<state relative-caret-position="339">
<caret line="38" column="5" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.1.6.RELEASE/dfb9e2cce0376ed468b6988b88a08fa7fb43f355/spring-web-5.1.6.RELEASE-sources.jar!/org/springframework/web/multipart/MultipartFile.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="97" column="16" selection-start-line="97" selection-start-column="16" selection-end-line="97" selection-end-column="16" />
<state relative-caret-position="126">
<caret line="12" column="1" selection-start-line="12" selection-start-column="1" selection-end-line="12" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/InputStreamResource.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="44" column="13" selection-start-line="44" selection-start-column="13" selection-end-line="44" selection-end-column="13" />
<state relative-caret-position="126">
<caret line="7" column="30" selection-start-line="7" selection-start-column="30" selection-end-line="7" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DeviceService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/model/PrivacyChoiceMessage.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="10" column="41" selection-start-line="10" selection-start-column="41" selection-end-line="10" selection-end-column="41" />
<state relative-caret-position="36">
<caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplication.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.1.6.RELEASE/dfb9e2cce0376ed468b6988b88a08fa7fb43f355/spring-web-5.1.6.RELEASE-sources.jar!/org/springframework/web/multipart/MultipartFile.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="14" column="1" lean-forward="true" selection-start-line="14" selection-start-column="1" selection-end-line="14" selection-end-column="1" />
<state relative-caret-position="1118">
<caret line="88" column="11" selection-start-line="88" selection-start-column="11" selection-end-line="88" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="461">
<caret line="38" column="1" selection-start-line="38" selection-start-column="1" selection-end-line="38" selection-end-column="1" />
<state relative-caret-position="594">
<caret line="35" column="30" selection-start-line="35" selection-start-column="30" selection-end-line="35" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.1.4.RELEASE/fc28861fbd06b8aa6d151f8810a7748a86f1f155/spring-boot-2.1.4.RELEASE-sources.jar!/org/springframework/boot/SpringApplication.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="24" column="53" selection-start-line="24" selection-start-column="41" selection-end-line="24" selection-end-column="53" />
<state relative-caret-position="165">
<caret line="803" column="21" selection-start-line="803" selection-start-column="21" selection-end-line="803" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/5.1.6.RELEASE/8835ea6a3a75e4efc37f417d4a25353a8198768d/spring-test-5.1.6.RELEASE-sources.jar!/org/springframework/mock/web/MockMultipartFile.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="429">
<caret line="70" column="5" lean-forward="true" selection-start-line="70" selection-start-column="5" selection-end-line="70" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="165">
<caret line="78" column="11" selection-start-line="78" selection-start-column="11" selection-end-line="78" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="881">
<caret line="53" column="78" selection-start-line="53" selection-start-column="47" selection-end-line="53" selection-end-column="78" />
<state relative-caret-position="801">
<caret line="52" column="33" lean-forward="true" selection-start-line="52" selection-start-column="33" selection-end-line="52" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyChoice.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/FunctionalInterface.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="22" column="19" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="19" />
<state relative-caret-position="545">
<caret line="67" column="18" selection-start-line="67" selection-start-column="18" selection-end-line="67" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Device.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/function/Supplier.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<state relative-caret-position="306">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="31" column="18" selection-start-line="31" selection-start-column="18" selection-end-line="31" selection-end-column="18" />
<state relative-caret-position="537">
<caret line="70" column="5" selection-start-line="70" selection-start-column="5" selection-end-line="70" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="11" column="46" selection-start-line="11" selection-start-column="34" selection-end-line="11" selection-end-column="46" />
<state relative-caret-position="1">
<caret line="125" column="58" lean-forward="true" selection-start-line="125" selection-start-column="22" selection-end-line="125" selection-end-column="58" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyPolicyReportRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="29" column="13" selection-start-line="29" selection-start-column="13" selection-end-line="29" selection-end-column="13" />
<caret line="12" column="37" selection-start-line="12" selection-start-column="37" selection-end-line="12" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DocumentRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216">
<caret line="20" column="32" selection-start-line="20" selection-start-column="32" selection-end-line="20" selection-end-column="32" />
<state relative-caret-position="162">
<caret line="9" column="73" selection-start-line="9" selection-start-column="69" selection-end-line="9" selection-end-column="73" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345">
<caret line="210" column="45" selection-start-line="210" selection-start-column="45" selection-end-line="210" selection-end-column="45" />
<state relative-caret-position="324">
<caret line="18" column="20" lean-forward="true" selection-start-line="18" selection-start-column="20" selection-end-line="18" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="472">
<caret line="38" column="5" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
<state relative-caret-position="306">
<caret line="25" column="1" lean-forward="true" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/.gitignore">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/cloud/gradle/wrapper/gradle-wrapper.properties">
<provider selected="true" editor-type-id="text-editor" />
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DeviceService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/RuntimeException.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="213">
<caret line="78" column="11" selection-start-line="78" selection-start-column="11" selection-end-line="78" selection-end-column="11" />
<folding>
<element signature="e#2364#2365#0" expanded="true" />
<element signature="e#2401#2402#0" expanded="true" />
</folding>
<state relative-caret-position="252">
<caret line="22" selection-start-line="22" selection-end-line="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/resources/application.properties">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="11" selection-start-line="11" selection-end-line="11" selection-end-column="16" />
<state relative-caret-position="180">
<caret line="15" selection-start-line="15" selection-end-line="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/CloudApplication.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="8" selection-start-line="8" selection-end-line="8" />
<state relative-caret-position="289">
<caret line="23" column="33" lean-forward="true" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#262#263#0" expanded="true" />
<element signature="e#329#330#0" expanded="true" />
<element signature="e#686#687#0" expanded="true" />
<element signature="e#738#739#0" expanded="true" />
<element signature="e#1724#1725#0" expanded="true" />
<element signature="e#1790#1791#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="11" column="78" selection-start-line="11" selection-start-column="78" selection-end-line="11" selection-end-column="78" />
<state relative-caret-position="576">
<caret line="38" column="5" lean-forward="true" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
<folding>
<element signature="e#550#551#0" expanded="true" />
<element signature="e#588#589#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/DeviceRepository.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" />
<state relative-caret-position="421">
<caret line="58" column="4" selection-start-line="58" selection-start-column="4" selection-end-line="66" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/Document.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/URLEncoder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="23" column="1" selection-start-line="23" selection-start-column="1" selection-end-line="23" selection-end-column="1" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="200">
<caret line="199" column="25" selection-start-line="199" selection-start-column="25" selection-end-line="199" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/UnsupportedEncodingException.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="18" column="26" selection-start-line="18" selection-start-column="26" selection-end-line="18" selection-end-column="26" />
<state relative-caret-position="414">
<caret line="48" column="11" selection-start-line="48" selection-start-column="11" selection-end-line="48" selection-end-column="11" />
<folding>
<element signature="e#599#600#0" expanded="true" />
<element signature="e#642#643#0" expanded="true" />
<element signature="e#830#831#0" expanded="true" />
<element signature="e#854#855#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="450">
<caret line="27" column="5" selection-start-line="27" selection-start-column="5" selection-end-line="27" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378">
<caret line="21" column="33" selection-start-line="21" selection-start-column="30" selection-end-line="21" selection-end-column="33" />
<state relative-caret-position="455">
<caret line="44" column="5" lean-forward="true" selection-start-line="44" selection-start-column="5" selection-end-line="44" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/nio/file/Path.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/function/Function.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="203">
<caret line="597" column="9" selection-start-line="597" selection-start-column="9" selection-end-line="597" selection-end-column="9" />
<state relative-caret-position="200">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/storage/StorageService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="137">
<caret line="52" column="67" lean-forward="true" selection-start-line="52" selection-start-column="67" selection-end-line="52" selection-end-column="67" />
<state relative-caret-position="72">
<caret line="4" selection-start-line="4" selection-end-line="4" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#920#941#1" expanded="true" />
<element signature="e#2049#2050#0" expanded="true" />
<element signature="e#2102#2103#0" expanded="true" />
<element signature="e#2737#2738#0" expanded="true" />
<element signature="e#2809#2810#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="389">
<caret line="45" selection-start-line="45" selection-end-line="45" />
</state>
</provider>
</entry>
</component>
<component name="gradleExecuteTaskHistory">
<option value="" />
......
package edu.prlab.tyler.iotgateway.cloud.config;
import edu.prlab.tyler.iotgateway.cloud.pojo.Document;
import edu.prlab.tyler.iotgateway.cloud.pojo.device.Device;
import edu.prlab.tyler.iotgateway.cloud.pojo.device.Manufacturer;
import edu.prlab.tyler.iotgateway.cloud.pojo.device.Model;
......@@ -7,10 +8,12 @@ import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicy;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.p3p.*;
import edu.prlab.tyler.iotgateway.cloud.services.DeviceService;
import edu.prlab.tyler.iotgateway.cloud.services.DocumentService;
import edu.prlab.tyler.iotgateway.cloud.services.PrivacyPolicyReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Component;
import static java.util.Arrays.asList;
......@@ -20,13 +23,15 @@ public class DefaultData implements ApplicationRunner {
private DeviceService deviceService;
private PrivacyPolicyReportService privacyPolicyReportService;
private DocumentService documentService;
@Autowired
public DefaultData(DeviceService deviceService,
PrivacyPolicyReportService privacyPolicyReportService) {
PrivacyPolicyReportService privacyPolicyReportService,
DocumentService documentService) {
this.deviceService = deviceService;
this.privacyPolicyReportService = privacyPolicyReportService;
this.documentService = documentService;
}
@Override
......@@ -102,12 +107,17 @@ public class DefaultData implements ApplicationRunner {
))
.build();
Document document = documentService.add(new MockMultipartFile("file", "test.txt",
"text/plain", "testFileStirng".getBytes()))
.orElse(Document.builder().build());
PrivacyPolicyReport oxygenPrivacyPolicyReport = PrivacyPolicyReport.builder()
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a")
.version("1.0")
.description("本APP會蒐集使用者周遭溫度、濕度及空氣品質作為第三方資料之地區環境分析資料。")
.device(oxygenDevice)
.policies(asList(oxygenPrivacyPolicy))
.document(document)
.build();
privacyPolicyReportService.add(oxygenPrivacyPolicyReport);
......@@ -229,12 +239,17 @@ public class DefaultData implements ApplicationRunner {
.build()))
.build();
document = documentService.add(new MockMultipartFile("file", "test.txt",
"text/plain", "testFileStirng".getBytes()))
.orElse(Document.builder().build());
PrivacyPolicyReport sensorPrivacyPolicyReport = PrivacyPolicyReport.builder()
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a")
.version("1.0")
.description("本APP會蒐集使用者周遭溫度、濕度及空氣品質作為第三方資料之地區環境分析資料。")
.device(sensorDevice)
.policies(asList(sensorPrivacyPolicy1,sensorPrivacyPolicy2,sensorPrivacyPolicy3))
.policies(asList(sensorPrivacyPolicy1, sensorPrivacyPolicy2, sensorPrivacyPolicy3))
.document(document)
.build();
privacyPolicyReportService.add(sensorPrivacyPolicyReport);
......
......@@ -2,7 +2,11 @@ package edu.prlab.tyler.iotgateway.cloud.controllers;
import edu.prlab.tyler.iotgateway.cloud.pojo.Document;
import edu.prlab.tyler.iotgateway.cloud.services.DocumentService;
import org.springframework.core.io.InputStreamResource;
import edu.prlab.tyler.iotgateway.cloud.services.PrivacyPolicyReportService;
import edu.prlab.tyler.iotgateway.cloud.util.CodeTools;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......@@ -14,21 +18,30 @@ import java.io.IOException;
public class DocumentController {
private DocumentService documentService;
private PrivacyPolicyReportService privacyPolicyReportService;
public DocumentController(DocumentService documentService) {
public DocumentController(DocumentService documentService, PrivacyPolicyReportService privacyPolicyReportService) {
this.documentService = documentService;
this.privacyPolicyReportService = privacyPolicyReportService;
}
@PostMapping
public ResponseEntity<Document> uploadFile(@RequestPart MultipartFile file) throws IOException {
System.out.println(file.getName());
return documentService.add(file)
.map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build());
}
// @GetMapping("/{id}")
// public ResponseEntity<InputStreamResource> getFile(@PathVariable(value = "id") Long id) {
// return
// }
@GetMapping("/{udn}")
public ResponseEntity<ByteArrayResource> findFile(@PathVariable String udn) {
return privacyPolicyReportService.readByDevice(udn)
.map(privacyReport->privacyReport.getDocument().getId())
.flatMap(id->documentService.readFile(id))
.map(document -> ResponseEntity.ok()
.contentType(MediaType.parseMediaType(document.getFileType()))
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename* = UTF-8''" + CodeTools.encode(document.getFileName()))
.body(new ByteArrayResource(document.getBytes())))
.orElseGet(() -> ResponseEntity.noContent().build());
}
}
......@@ -10,31 +10,31 @@ import java.util.Optional;
@RestController
public class GatewayController {
private PrivacyChoiceService privacyChoiceService;
private PrivacyChoiceService service;
@Autowired
public GatewayController(PrivacyChoiceService privacyChoiceService) {
this.privacyChoiceService = privacyChoiceService;
public GatewayController(PrivacyChoiceService service) {
this.service = service;
}
@PostMapping("/choice")
public ResponseEntity<PrivacyChoice> setPrivacyChoice(@RequestBody PrivacyChoice privacyChoice) {
return privacyChoiceService.add(privacyChoice)
return service.add(privacyChoice)
.map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build());
}
@GetMapping("/choice")
public ResponseEntity<Iterable<PrivacyChoice>> readPrivacyChoice() {
return Optional.of(privacyChoiceService.readll())
return Optional.of(service.readll())
.map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build());
}
@GetMapping("/choice/{udn}")
public ResponseEntity<Iterable<PrivacyChoice>> readPrivacyChoiceByDevice(@PathVariable String udn) {
return Optional.ofNullable(privacyChoiceService.readPrivacyChoiceByDevice(udn))
return Optional.ofNullable(service.readPrivacyChoiceByDevice(udn))
.map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build());
}
}
}
\ No newline at end of file
package edu.prlab.tyler.iotgateway.cloud.model;
public class PrivacyChoiceMessage {
}
package edu.prlab.tyler.iotgateway.cloud.pojo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.*;
@Data
@Builder
......@@ -19,6 +16,11 @@ import javax.persistence.Id;
public class Document {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
private Long id;
private String fileName;
private String fileType;
@Column(length=10000000)
@JsonIgnore
private byte[] bytes;
}
......@@ -6,7 +6,6 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Cascade;
import javax.persistence.*;
import java.util.List;
......@@ -32,7 +31,6 @@ public class PrivacyPolicyReport {
@JoinColumn(name = "policy_id")
@ElementCollection(targetClass = PrivacyPolicy.class)
private List<PrivacyPolicy> policies ;
@OneToOne
@JoinColumn(name = "document_id")
private Document document;
......
......@@ -4,6 +4,8 @@ import edu.prlab.tyler.iotgateway.cloud.pojo.Document;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface DocumentRepository extends CrudRepository<Document, Long> {
}
package edu.prlab.tyler.iotgateway.cloud.repositories;
import edu.prlab.tyler.iotgateway.cloud.pojo.Document;
import edu.prlab.tyler.iotgateway.cloud.pojo.device.Device;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import org.springframework.data.repository.CrudRepository;
......
......@@ -12,7 +12,7 @@ public abstract class CrudService<T, ID> {
}
public Optional<T> add(T pojo) {
System.out.println("save" + pojo.toString());
System.out.println("save " + pojo.toString());
return Optional.of(repository.save(pojo));
}
......
......@@ -2,28 +2,38 @@ package edu.prlab.tyler.iotgateway.cloud.services;
import edu.prlab.tyler.iotgateway.cloud.pojo.Document;
import edu.prlab.tyler.iotgateway.cloud.repositories.DocumentRepository;
import edu.prlab.tyler.iotgateway.cloud.services.storage.StorageService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.Optional;
@Service
public class DocumentService {
private DocumentRepository documentRepository;
private StorageService storageService;
public DocumentService(DocumentRepository repository,
StorageService storageService) {
public DocumentService(DocumentRepository repository) {
this.documentRepository = repository;
this.storageService = storageService;
}
public Optional<Document> add(MultipartFile file) {
return Optional.ofNullable(storageService.store(file))
.map(filename -> Document.builder()
.fileName(filename)
return Optional.of(Document.builder()
.fileName(file.getOriginalFilename())
.fileType(file.getContentType())
.bytes(getBytes(file))
.build())
.map(document->documentRepository.save(document));
}
public Optional<Document> readFile(Long id){
return documentRepository.findById(id);
}
private byte[] getBytes(MultipartFile file) {
try{
return file.getBytes();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
package edu.prlab.tyler.iotgateway.cloud.services.storage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.core.io.UrlResource;
import org.springframework.stereotype.Service;
import org.springframework.util.FileSystemUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.PostConstruct;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.stream.Stream;
@Service
public class StorageService {
private final Path rootLocation;
@Autowired
public StorageService(@Value("${storage.location}") String rootLocation) {
this.rootLocation = Paths.get(rootLocation);
}
@PostConstruct
public void init() {
try {
deleteAll();
Files.createDirectories(rootLocation);
} catch (IOException e) {
throw new RuntimeException("Could not initialize storage location", e);
}
}
public String store(MultipartFile file) {
String filename = StringUtils.cleanPath(file.getOriginalFilename());
try {
if (file.isEmpty()) {
throw new RuntimeException("Failed to store empty file " + filename);
}
if (filename.contains("..")) {
// This is a security check
throw new RuntimeException(
"Cannot store file with relative path outside current directory "
+ filename);
}
try (InputStream inputStream = file.getInputStream()) {
Files.copy(inputStream, this.rootLocation.resolve(filename),
StandardCopyOption.REPLACE_EXISTING);
}
} catch (IOException e) {
throw new RuntimeException("Failed to store file " + filename, e);
}
return filename;
}
public Stream<Path> loadAll() {
try {
return Files.walk(this.rootLocation, 1)
.filter(path -> !path.equals(this.rootLocation))
.map(this.rootLocation::relativize);
} catch (IOException e) {
throw new RuntimeException("Failed to read stored files", e);
}
}
public Path load(String filename) {
return rootLocation.resolve(filename);
}
public Resource loadAsResource(String filename) {
try {
Path file = load(filename);
Resource resource = new UrlResource(file.toUri());
if (resource.exists() || resource.isReadable()) {
return resource;
} else {
throw new RuntimeException(
"Could not read file: " + filename);
}
} catch (MalformedURLException e) {
throw new RuntimeException("Could not read file: " + filename, e);
}
}
public void deleteAll() {
FileSystemUtils.deleteRecursively(rootLocation.toFile());
}
}
package edu.prlab.tyler.iotgateway.cloud.util;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class CodeTools {
private CodeTools() {
}
public static String encode(String url) {
try {
String encodeURL = URLEncoder.encode(url, "UTF-8");
return encodeURL;
} catch (UnsupportedEncodingException e) {
return "Error: " + e.getMessage();
}
}
}
......@@ -3,6 +3,8 @@ spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.hikari.data-source-properties.useUnicode=true
spring.datasource.hikari.data-source-properties.characterEncoding=UTF-8
spring.h2.console.enabled=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.generate-ddl=true
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment