Commit de22d29d authored by 0Tyler's avatar 0Tyler

getPrivacyPolicyReportResponse

parent 1a3f8353
......@@ -7,17 +7,27 @@
</component>
<component name="ChangeListManager">
<list default="true" id="d3a5f2c9-d22f-4974-88fb-d506b4e5feaf" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" 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$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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/DeviceController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.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/util/CodeTools.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.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/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/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" beforeDir="false" afterPath="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/production/classes/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/test/classes/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/test/classes/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/out/test/classes/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.class" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/out/test/classes/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
......@@ -142,11 +152,11 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="483">
<caret line="66" column="55" selection-start-line="66" selection-start-column="55" selection-end-line="66" selection-end-column="55" />
<state relative-caret-position="389">
<caret line="65" column="5" lean-forward="true" selection-start-line="65" selection-start-column="5" selection-end-line="65" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
......@@ -155,67 +165,68 @@
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.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="810">
<caret line="57" column="122" lean-forward="true" selection-start-line="57" selection-start-column="122" selection-end-line="57" selection-end-column="122" />
<state relative-caret-position="288">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<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/pojo/privacy/PrivacyContent.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="328">
<caret line="119" column="38" selection-start-line="119" selection-start-column="38" selection-end-line="119" selection-end-column="38" />
<state relative-caret-position="468">
<caret line="34" column="20" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="92" column="58" lean-forward="true" selection-start-line="92" selection-start-column="58" selection-end-line="92" selection-end-column="58" />
<state relative-caret-position="162">
<caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
</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/privacy/PrivacyChoice.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/stream/Collectors.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
<state relative-caret-position="365">
<caret line="1209" column="30" selection-start-line="1209" selection-start-column="30" selection-end-line="1209" selection-end-column="30" />
<folding>
<element signature="e#33990#33991#0" expanded="true" />
<element signature="e#34045#34046#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/privacy/PrivacyContent.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="303">
<caret line="27" column="16" selection-start-line="27" selection-start-column="12" selection-end-line="27" selection-end-column="16" />
<state relative-caret-position="72">
<caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1440">
<caret line="125" column="8" lean-forward="true" selection-start-line="125" selection-start-column="8" selection-end-line="125" selection-end-column="8" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="255">
<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>
</file>
<file pinned="false" current-in-tab="false">
<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/util/CodeTools.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="180" column="34" selection-start-line="180" selection-start-column="30" selection-end-line="180" selection-end-column="34" />
<state relative-caret-position="72">
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
</state>
</provider>
</entry>
......@@ -223,17 +234,17 @@
<file pinned="false" current-in-tab="false">
<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="342">
<caret line="47" column="30" selection-start-line="47" selection-start-column="30" selection-end-line="47" selection-end-column="30" />
<state relative-caret-position="272">
<caret line="42" column="41" selection-start-line="42" selection-start-column="41" selection-end-line="42" selection-end-column="41" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/Streams.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="492">
<caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" />
<state relative-caret-position="95">
<caret line="356" column="45" selection-start-line="356" selection-start-column="33" selection-end-line="356" selection-end-column="45" />
</state>
</provider>
</entry>
......@@ -250,17 +261,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>transactionReceipt</find>
<find>ClientTransactionManager</find>
<find>DeviceManager</find>
<find>Wallet</find>
<find>getGas</find>
<find>gas</find>
<find>personalunlock</find>
<find>the</find>
<find>PrivacyPolicyReport</find>
<find>exchange</find>
<find>readByUDN</find>
<find>SensitiveUser</find>
<find>PrivacyChoiceIndexRepository</find>
<find>TypeReference</find>
......@@ -280,6 +280,17 @@
<find>DeviceIndexRepository</find>
<find>existsByAccount</find>
<find>user</find>
<find>Collectors</find>
<find>readPrivacyChoices</find>
<find>getPrivacyPolicyChoicesByAccount</find>
<find>setPrivacyPolicyChoice</find>
<find>PrivacyChoiceResponse</find>
<find>choice</find>
<find>Policy</find>
<find>hash</find>
<find>collection</find>
<find>HashMap</find>
<find>List&lt;Boolean&gt;</find>
</findStrings>
<replaceStrings>
<replace>cloud</replace>
......@@ -290,6 +301,8 @@
<replace>DeviceContract</replace>
<replace>Account</replace>
<replace>service</replace>
<replace>List</replace>
<replace>HashMap&lt;Integer, Boolean&gt;</replace>
</replaceStrings>
</component>
<component name="Git.Settings">
......@@ -298,12 +311,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/privacy/PrivacyContent.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/PrivacyChoiceIndexRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/auth/User.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/auth/SensitiveUser.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/UserRepository.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/UserService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/device/Device.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java" />
......@@ -318,37 +325,43 @@
<option value="$PROJECT_DIR$/contract/build.gradle" />
<option value="$PROJECT_DIR$/build.gradle" />
<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/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/resources/application.properties" />
<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/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/config/DefaultData.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/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/ThrowingFunction.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/GatewayContractTester.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/DeviceContractTester.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.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/services/PrivacyService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.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/services/PrivacyPolicyReportService.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/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.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/pojo/privacy/PrivacyContent.java" />
<option value="$PROJECT_DIR$/gateway/build.gradle" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyResponse.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceIndex.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java" />
<option value="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" />
</list>
</option>
</component>
......@@ -426,7 +439,7 @@
<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="controllers" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -437,86 +450,93 @@
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="privacy" 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="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<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" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<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="device" 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="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<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="privacy" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" 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="privacy" type="462c0819:PsiDirectoryNode" />
<item name="p3p" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" 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="repositories" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" 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="contract" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="services" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" 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="resources" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="util" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
......@@ -524,11 +544,11 @@
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="contract" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="contract" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -585,6 +605,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="model" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
......@@ -848,8 +878,8 @@
<recent_temporary>
<list>
<item itemvalue="JUnit.GatewayHttpApiTest" />
<item itemvalue="JUnit.DeviceContractTester" />
<item itemvalue="JUnit.CloudHttpApiTest" />
<item itemvalue="JUnit.DeviceContractTester" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="Gradle.iotgateway:cloud [test]" />
</list>
......@@ -872,7 +902,7 @@
<workItem from="1557365602468" duration="84502000" />
<workItem from="1557987857812" duration="17623000" />
<workItem from="1558076620952" duration="30942000" />
<workItem from="1558531083647" duration="16287000" />
<workItem from="1558531083647" duration="61544000" />
</task>
<task id="LOCAL-00001" summary="git init">
<created>1556204675975</created>
......@@ -1021,43 +1051,50 @@
<option name="project" value="LOCAL" />
<updated>1558351290198</updated>
</task>
<option name="localTasksCounter" value="22" />
<task id="LOCAL-00022" summary="gateway:DeviceService:addfilter &amp; gateway:PrivacyService:addfilter">
<created>1558604238984</created>
<option name="number" value="00022" />
<option name="presentableId" value="LOCAL-00022" />
<option name="project" value="LOCAL" />
<updated>1558604238984</updated>
</task>
<option name="localTasksCounter" value="23" />
<servers />
</component>
<component name="TestHistory">
<history-entry file="CloudHttpApiTest - 2019.05.22 at 21h 55m 06s.xml">
<configuration name="CloudHttpApiTest" configurationId="JUnit" />
<history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 02m 38s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="DeviceContractTester - 2019.05.23 at 14h 41m 23s.xml">
<configuration name="DeviceContractTester" configurationId="JUnit" />
<history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 06m 24s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="DeviceContractTester - 2019.05.23 at 14h 42m 56s.xml">
<configuration name="DeviceContractTester" configurationId="JUnit" />
<history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 07m 01s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayContractTester - 2019.05.23 at 15h 17m 09s.xml">
<configuration name="GatewayContractTester" configurationId="JUnit" />
<history-entry file="GatewayHttpApiTest - 2019.05.27 at 16h 31m 05s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayContractTester - 2019.05.23 at 15h 17m 53s.xml">
<configuration name="GatewayContractTester" configurationId="JUnit" />
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 13h 54m 15s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="DeviceContractTester - 2019.05.23 at 15h 36m 13s.xml">
<configuration name="DeviceContractTester" configurationId="JUnit" />
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 07m 53s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="ContractTester - 2019.05.23 at 15h 38m 16s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 36m 33s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.23 at 17h 14m 20s.xml">
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 36m 57s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.23 at 17h 32m 02s.xml">
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 14h 43m 43s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="GatewayHttpApiTest - 2019.05.23 at 17h 32m 39s.xml">
<history-entry file="GatewayHttpApiTest - 2019.05.28 at 15h 24m 06s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="247269000" />
<option name="totallyTimeSpent" value="292526000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -1070,18 +1107,19 @@
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2228145" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.19189766" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Designer" order="2" />
<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" weight="0.41759464" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" weight="0.30734965" />
<window_info anchor="bottom" id="Messages" order="1" sideWeight="0.49733475" weight="0.2806236" />
<window_info anchor="bottom" id="Message" order="2" />
<window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.43541202" />
<window_info anchor="bottom" id="Run" order="4" sideWeight="0.49840087" visible="true" weight="0.33296213" />
<window_info active="true" anchor="bottom" id="Run" order="4" sideWeight="0.49840087" visible="true" weight="0.19042316" />
<window_info anchor="bottom" id="Debug" order="5" weight="0.2962138" />
<window_info anchor="bottom" id="Cvs" order="6" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="7" weight="0.4" />
......@@ -1125,7 +1163,8 @@
<MESSAGE value="getPrivacyPolicyChoices function change" />
<MESSAGE value="RemoteService" />
<MESSAGE value="document controller" />
<option name="LAST_COMMIT_MESSAGE" value="document controller" />
<MESSAGE value="gateway:DeviceService:addfilter &amp; gateway:PrivacyService:addfilter" />
<option name="LAST_COMMIT_MESSAGE" value="gateway:DeviceService:addfilter &amp; gateway:PrivacyService:addfilter" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
......@@ -1152,273 +1191,258 @@
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<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/repositories/DocumentRepository.java">
<provider selected="true" editor-type-id="text-editor">
<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 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$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.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="486">
<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 relative-caret-position="432">
<caret line="29" selection-start-line="29" selection-end-line="29" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/function/Function.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="306">
<caret line="40" column="17" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
<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" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/UnsupportedEncodingException.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/UserController.java">
<provider selected="true" editor-type-id="text-editor">
<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>
<caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/CrudService.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="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 relative-caret-position="357">
<caret line="222" selection-start-line="222" selection-end-line="222" />
</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$/gateway/build.gradle">
<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 relative-caret-position="99">
<caret line="39" selection-start-line="39" selection-end-line="39" />
</state>
</provider>
</entry>
<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/controllers/DeviceController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="23" column="33" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" />
<state relative-caret-position="448">
<caret line="63" column="5" lean-forward="true" selection-start-line="63" selection-start-column="5" selection-end-line="63" 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/PrivacyChoiceService.java">
<provider selected="true" editor-type-id="text-editor">
<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/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyPolicyReportService.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="180">
<caret line="15" selection-start-line="15" selection-end-line="15" />
<state relative-caret-position="320">
<caret line="43" column="5" lean-forward="true" selection-start-line="43" selection-start-column="5" selection-end-line="43" selection-end-column="5" />
</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/http/ResponseEntity.java">
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="137">
<caret line="72" column="13" selection-start-line="72" selection-start-column="13" selection-end-line="72" selection-end-column="13" />
<state relative-caret-position="108">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</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/http/CacheControl.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/Iterables.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="126" column="42" selection-start-line="126" selection-start-column="30" selection-end-line="126" selection-end-column="42" />
<state relative-caret-position="217">
<caret line="987" column="36" lean-forward="true" selection-start-line="987" selection-start-column="36" selection-end-line="987" selection-end-column="36" />
<folding>
<element signature="e#33819#33820#0" expanded="true" />
<element signature="e#33861#33862#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DeviceController.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceIndex.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-474">
<caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="180">
<caret line="16" column="7" lean-forward="true" selection-start-line="16" selection-start-column="7" selection-end-line="16" selection-end-column="7" />
</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/pojo/auth/User.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504">
<caret line="43" column="1" lean-forward="true" selection-start-line="43" selection-start-column="1" selection-end-line="43" selection-end-column="1" />
<folding>
<element signature="e#550#551#0" expanded="true" />
<element signature="e#588#589#0" expanded="true" />
</folding>
<state relative-caret-position="302">
<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="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/net/URLEncoder.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/String.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="182">
<caret line="199" column="25" selection-start-line="199" selection-start-column="25" selection-end-line="199" selection-end-column="25" />
<state relative-caret-position="311">
<caret line="989" column="24" lean-forward="true" selection-start-line="989" selection-start-column="24" selection-end-line="989" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Throwable.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1492">
<caret line="113" column="13" selection-start-line="113" selection-start-column="13" selection-end-line="113" selection-end-column="13" />
<state relative-caret-position="90">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/ThrowingFunction.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/RemoteConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="17" lean-forward="true" selection-start-line="17" selection-end-line="17" />
<state relative-caret-position="90">
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/UserService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="10" column="31" selection-start-line="10" selection-start-column="25" selection-end-line="10" selection-end-column="31" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="278">
<caret line="28" column="14" lean-forward="true" selection-start-line="28" selection-start-column="14" selection-end-line="28" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/ContractApplication.java">
<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="90">
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
<caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/DeviceContract.java">
<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 relative-caret-position="-1099">
<caret line="40" column="50" lean-forward="true" selection-start-line="40" selection-start-column="50" selection-end-line="40" selection-end-column="50" />
<state relative-caret-position="108">
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/java/edu/prlab/tyler/iotgateway/contract/GatewayContract.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/2.1.6.RELEASE/d6c2a24d22131dd891c73ebc3c9ab3ee00fcbb8f/spring-data-commons-2.1.6.RELEASE-sources.jar!/org/springframework/data/repository/CrudRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="215">
<caret line="35" column="13" selection-start-line="35" selection-start-column="13" selection-end-line="35" selection-end-column="13" />
<state relative-caret-position="158">
<caret line="53" column="16" selection-start-line="53" selection-start-column="16" selection-end-line="53" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contract/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/PrivacyChoiceIndexRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="572">
<caret line="47" lean-forward="true" selection-start-line="47" selection-end-line="47" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="90">
<caret line="7" column="75" lean-forward="true" selection-start-line="7" selection-start-column="75" selection-end-line="7" selection-end-column="75" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/tx/ClientTransactionManager.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="126">
<caret line="13" column="54" selection-start-line="13" selection-start-column="54" selection-end-line="13" selection-end-column="54" />
<state relative-caret-position="1638">
<caret line="115" lean-forward="true" selection-start-line="115" selection-end-line="115" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/GatewayContractTester.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="388">
<caret line="31" selection-start-line="31" selection-end-line="31" />
<state relative-caret-position="252">
<caret line="125" column="58" selection-start-line="125" selection-start-column="22" selection-end-line="125" selection-end-column="58" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/protocol/core/Response.java">
<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="-1061">
<caret line="16" column="21" lean-forward="true" selection-start-line="16" selection-start-column="21" selection-end-line="16" selection-end-column="21" />
<state relative-caret-position="311">
<caret line="35" column="18" selection-start-line="35" selection-start-column="18" selection-end-line="35" selection-end-column="18" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/protocol/core/methods/response/EthGetTransactionReceipt.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="126">
<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="162">
<caret line="15" column="13" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.web3j/core/4.0.4/f5bd332fb36b9e947967c930de1177a404ca1b2d/core-4.0.4-sources.jar!/org/web3j/protocol/core/methods/response/TransactionReceipt.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="-990">
<caret line="26" column="28" selection-start-line="26" selection-start-column="19" selection-end-line="26" selection-end-column="28" />
<state relative-caret-position="342">
<caret line="27" column="5" selection-start-line="27" selection-start-column="5" selection-end-line="27" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudApplicationTests.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
<state relative-caret-position="198">
<caret line="18" column="20" lean-forward="true" selection-start-line="18" selection-start-column="20" selection-end-line="18" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/Builder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
<state relative-caret-position="199">
<caret line="114" column="17" selection-start-line="114" selection-start-column="8" selection-end-line="114" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/2.1.6.RELEASE/d6c2a24d22131dd891c73ebc3c9ab3ee00fcbb8f/spring-data-commons-2.1.6.RELEASE-sources.jar!/org/springframework/data/repository/CrudRepository.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/Data.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="35" column="20" selection-start-line="35" selection-start-column="20" selection-end-line="35" selection-end-column="20" />
<state relative-caret-position="306">
<caret line="40" column="15" selection-start-line="40" selection-start-column="15" selection-end-line="40" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/PrivacyChoiceIndexRepository.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/EqualsAndHashCode.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
<state relative-caret-position="181">
<caret line="59" column="85" selection-start-line="59" selection-start-column="77" selection-end-line="59" selection-end-column="85" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/DeviceIndex.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/Collection.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="15" column="20" lean-forward="true" selection-start-line="15" selection-start-column="20" selection-end-line="15" selection-end-column="20" />
<state relative-caret-position="408">
<caret line="579" column="15" selection-start-line="579" selection-start-column="15" selection-end-line="579" selection-end-column="15" />
<folding>
<element signature="e#26957#26958#0" expanded="true" />
<element signature="e#27022#27023#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/MapMaker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
<state relative-caret-position="-108">
<caret line="88" column="19" selection-start-line="88" selection-start-column="19" selection-end-line="88" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/RemoteConfig.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/TreeMap.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
<state relative-caret-position="272">
<caret line="110" column="13" selection-start-line="110" selection-start-column="13" selection-end-line="110" selection-end-column="13" />
<folding>
<element signature="e#5767#5768#0" expanded="true" />
<element signature="e#5800#5801#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/config/DefaultData.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/stream/Stream.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
<state relative-caret-position="261">
<caret line="806" column="13" selection-start-line="806" selection-start-column="13" selection-end-line="806" selection-end-column="13" />
</state>
</provider>
</entry>
......@@ -1429,114 +1453,150 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/UserController.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="414">
<caret line="31" column="5" lean-forward="true" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
<state relative-caret-position="439">
<caret line="73" column="5" selection-start-line="73" selection-start-column="5" selection-end-line="73" 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/pojo/auth/User.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/HashMap.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
<state relative-caret-position="251">
<caret line="783" column="16" selection-start-line="783" selection-start-column="16" selection-end-line="783" selection-end-column="16" />
<folding>
<element signature="e#19327#19328#0" expanded="true" />
<element signature="e#19410#19411#0" expanded="true" />
<element signature="e#31056#31057#0" expanded="true" />
<element signature="e#31094#31095#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/DeviceIndexRepository.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Integer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
<state relative-caret-position="209">
<caret line="51" column="19" selection-start-line="51" selection-start-column="19" selection-end-line="51" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/repositories/UserRepository.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/ImmutableBiMap.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="8" column="27" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="27" />
<state relative-caret-position="209">
<caret line="69" column="44" selection-start-line="69" selection-start-column="44" selection-end-line="69" selection-end-column="44" />
<folding>
<element signature="e#2853#2854#0" expanded="true" />
<element signature="e#2907#2908#0" expanded="true" />
</folding>
</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$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="267">
<caret line="23" column="74" selection-start-line="23" selection-start-column="16" selection-end-line="23" selection-end-column="74" />
<state relative-caret-position="522">
<caret line="37" selection-start-line="37" selection-end-line="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/lang/Long.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="492">
<caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" />
<state relative-caret-position="276">
<caret line="990" column="15" selection-start-line="990" selection-start-column="15" selection-end-line="990" selection-end-column="15" />
<folding>
<element signature="e#37238#37239#0" expanded="true" />
<element signature="e#37271#37272#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<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/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/ImmutableMap.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="47" column="30" selection-start-line="47" selection-start-column="30" selection-end-line="47" selection-end-column="30" />
<state relative-caret-position="-8804">
<caret line="64" column="22" selection-start-line="64" selection-start-column="22" selection-end-line="64" selection-end-column="22" />
<folding>
<element signature="e#5105#5106#0" expanded="true" />
<element signature="e#5147#5148#0" 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="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyChoiceResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
<state relative-caret-position="72">
<caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/Streams.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="303">
<caret line="27" column="16" selection-start-line="27" selection-start-column="12" selection-end-line="27" selection-end-column="16" />
<state relative-caret-position="95">
<caret line="356" column="45" selection-start-line="356" selection-start-column="33" selection-end-line="356" selection-end-column="45" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.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="186">
<caret line="180" column="34" selection-start-line="180" selection-start-column="30" selection-end-line="180" selection-end-column="34" />
<state relative-caret-position="272">
<caret line="42" column="41" selection-start-line="42" selection-start-column="41" selection-end-line="42" selection-end-column="41" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/stream/Collectors.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1440">
<caret line="125" column="8" lean-forward="true" selection-start-line="125" selection-start-column="8" selection-end-line="125" selection-end-column="8" />
<state relative-caret-position="365">
<caret line="1209" column="30" selection-start-line="1209" selection-start-column="30" selection-end-line="1209" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#33990#33991#0" expanded="true" />
<element signature="e#34045#34046#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="483">
<caret line="66" column="55" selection-start-line="66" selection-start-column="55" selection-end-line="66" selection-end-column="55" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="255">
<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$/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/util/CodeTools.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="328">
<caret line="119" column="38" selection-start-line="119" selection-start-column="38" selection-end-line="119" selection-end-column="38" />
<state relative-caret-position="72">
<caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
</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$/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="810">
<caret line="57" column="122" lean-forward="true" selection-start-line="57" selection-start-column="122" selection-end-line="57" selection-end-column="122" />
<state relative-caret-position="288">
<caret line="22" column="18" lean-forward="true" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<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="72">
<caret line="92" column="58" lean-forward="true" selection-start-line="92" selection-start-column="58" selection-end-line="92" selection-end-column="58" />
<state relative-caret-position="468">
<caret line="34" column="20" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="389">
<caret line="65" column="5" lean-forward="true" selection-start-line="65" selection-start-column="5" selection-end-line="65" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
......
......@@ -56,9 +56,9 @@ public class DeviceController {
}
//透過UDN讀取PrivacyPolicyReport
@GetMapping("/privacy/{UDN}")
public ResponseEntity<PrivacyPolicyReport> readPrivacyPolicyReportByDevice(@PathVariable(value = "UDN") String UDN) {
return privacyPolicyReportService.readByDevice(UDN)
@GetMapping("/privacy/{udn}")
public ResponseEntity<PrivacyPolicyReport> readPrivacyPolicyReportByDevice(@PathVariable(value = "udn") String udn) {
return privacyPolicyReportService.readByDevice(udn)
.map(ResponseEntity::ok)
.orElseGet(()->ResponseEntity.noContent().build());
}
......
package edu.prlab.tyler.iotgateway.cloud.controllers;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyContent;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicy;
import edu.prlab.tyler.iotgateway.cloud.services.PrivacyChoiceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
......
......@@ -20,7 +20,6 @@ public class PrivacyContent {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@OneToOne(cascade = CascadeType.ALL)
......
package edu.prlab.tyler.iotgateway.cloud.repositories;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyContent;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface PrivacyChoiceRepository extends CrudRepository<PrivacyChoice, Long> {
Optional<Iterable<PrivacyChoice>> findPrivacyChoicesByPrivacyContent(PrivacyContent privacyContent);
}
package edu.prlab.tyler.iotgateway.cloud.services;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicy;
import edu.prlab.tyler.iotgateway.cloud.repositories.PrivacyChoiceRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Service;
......@@ -9,16 +11,19 @@ import java.util.Optional;
import java.util.stream.StreamSupport;
@Service
public class PrivacyChoiceService extends CrudService<PrivacyChoice, Long>{
public class PrivacyChoiceService extends CrudService<PrivacyChoice, Long> {
private PrivacyChoiceRepository privacyChoiceRepository;
@Autowired
public PrivacyChoiceService(CrudRepository<PrivacyChoice, Long> repository) {
public PrivacyChoiceService(CrudRepository<PrivacyChoice, Long> repository,
PrivacyChoiceRepository privacyChoiceRepository) {
super(repository);
this.privacyChoiceRepository = privacyChoiceRepository;
}
public Iterable<PrivacyChoice> readPrivacyChoiceByDevice(String udn) {
return ()-> StreamSupport.stream(readll().spliterator(),false)
.filter(choice->choice.getPrivacyContent().getDevice().getUdn().equals(udn))
return () -> StreamSupport.stream(readll().spliterator(), false)
.filter(choice -> choice.getPrivacyContent().getDevice().getUdn().equals(udn))
.iterator();
}
}
......@@ -220,5 +220,6 @@ public class CloudHttpApiTest {
new TypeReference<Iterable<PrivacyChoice>>(){});
Assert.assertNotNull(privacyChoices);
}
}
......@@ -71,27 +71,6 @@ public class ContractTester {
String privacyPolicy = deviceContract.privacypolicy().send();
Assert.assertNotNull(privacyPolicy);
System.out.println(privacyPolicy);
//TODO CANNOT BIND
//Gateway
// GatewayContract gatewayContract = GatewayContract.deploy(quorum, manager, DEFAULT_GAS_PROVIDER).send();
// Assert.assertNotNull(gatewayContract);
// gateWayContractAddress = gatewayContract.getContractAddress();
// System.out.println("gatewayContract Address:" + gateWayContractAddress);
//
// receipt = deviceContract.setBuyer(gatewayContract.getContractAddress()).send();
// Assert.assertNotNull(receipt);
//
// Quorum quorum1 = Quorum.build(new HttpService(rpcUrl));
// String userAddress1 = quorum1.ethAccounts().send().getAccounts().get(quorum1.ethAccounts().send().getAccounts().size() - 1);
// ClientTransactionManager manager1 = new ClientTransactionManager(quorum1, userAddress1);
//
// System.out.println("deviceContractAddress" + deviceContractAddress);
// DeviceContract deviceContract1 = DeviceContract.load(deviceContractAddress, quorum1, manager1, DEFAULT_GAS_PROVIDER);
// System.out.println("deviceContractAddress" + gateWayContractAddress);
// receipt = deviceContract1.bindReq(gateWayContractAddress).send();
// Assert.assertNotNull(receipt);
//
// String bindedString = deviceContract1.getBondDevice().send();
// Assert.assertNotNull(bindedString);
......@@ -120,9 +99,20 @@ public class ContractTester {
Assert.assertNotNull(receipt);
System.out.println(receipt);
//綁定裝置
System.out.println("綁定裝置");
receipt = gatewayContract.bindRequest(deviceContractAddress).send();
Assert.assertNotNull(receipt);
System.out.println(receipt);
//取得綁定裝置個數
BigInteger deviceNum = gatewayContract.numDevices().send();
Assert.assertNotNull(deviceNum);
System.out.println(deviceNum);
//取得第i個裝置的Address
String deviceAddress = gatewayContract.getDeviceAddress(BigInteger.ONE).send();
Assert.assertNotNull(deviceAddress);
System.out.println(deviceAddress);
}
}
......@@ -2,6 +2,7 @@ buildscript {
ext {
springBootVersion = '2.1.4.RELEASE'
mapstructVersion = '1.3.0.Final'
guavaVersion = '27.1-jre'
}
repositories {
mavenCentral()
......@@ -34,6 +35,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation "org.mapstruct:mapstruct:${mapstructVersion}"
implementation "com.google.guava:guava:${guavaVersion}"
implementation project(":cloud")
compileOnly 'org.projectlombok:lombok'
......
......@@ -4,12 +4,15 @@ import edu.prlab.tyler.iotgateway.cloud.pojo.device.Device;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse;
import edu.prlab.tyler.iotgateway.gateway.services.DeviceService;
import edu.prlab.tyler.iotgateway.gateway.services.PrivacyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Optional;
@RestController
public class GatewayController {
......@@ -44,10 +47,11 @@ public class GatewayController {
.orElseGet(() -> ResponseEntity.noContent().build());
}
//透過裝置UDN取得裝置資訊與隱私政策
@GetMapping("/privacy/{udn}")
public ResponseEntity<PrivacyPolicyReport> readPrivacyPolicyReportByDevice(@PathVariable(value = "udn") String udn) {
return privacyService.getRelatedPrivacyPolicies(udn)
@GetMapping("/privacy/{udn}/{account}")
public ResponseEntity<PrivacyPolicyReportResponse> readPrivacyPolicyReportByDevice(@PathVariable String udn, @PathVariable String account) {
return privacyService.getRelatedPrivacyPolicyByUdn(udn, account)
.map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build());
}
......@@ -64,8 +68,9 @@ public class GatewayController {
//根據使用者取得在此gateway上該使用者的隱私選擇列表
@GetMapping("/choice/{account}")
public ResponseEntity<Iterable<PrivacyChoiceResponse>> readPrivacyChoiceRecordsByUser(@PathVariable String account) {
return privacyService.getPrivacyPolicyChoicesByAccount(account)
return Optional.of(privacyService.getPrivacyPolicyChoicesByAccount(account))
.map(ResponseEntity::ok)
.orElseGet(() -> ResponseEntity.noContent().build());
}
}
package edu.prlab.tyler.iotgateway.gateway.model;
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.PrivacyPolicy;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.HashMap;
import java.util.List;
@Getter
@Setter
@EqualsAndHashCode
@NoArgsConstructor
public class PrivacyPolicyReportResponse extends PrivacyPolicyReport {
private HashMap<Integer, Boolean> choices ;
@Builder(builderMethodName = "responseBuilder")
public PrivacyPolicyReportResponse(String id, String version, String description, Device device, List<PrivacyPolicy> policies, Document document, HashMap<Integer, Boolean> choices) {
super(id, version, description, device, policies, document);
this.choices = choices;
}
}
package edu.prlab.tyler.iotgateway.gateway.services;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.collect.Streams;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicy;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse;
import edu.prlab.tyler.iotgateway.gateway.pojo.PrivacyChoiceIndex;
import edu.prlab.tyler.iotgateway.gateway.repositories.PrivacyChoiceIndexRepository;
import edu.prlab.tyler.iotgateway.gateway.repositories.UserRepository;
......@@ -10,8 +15,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@Service
......@@ -28,34 +37,68 @@ public class PrivacyService {
this.remoteService = remoteService;
}
public Optional<PrivacyPolicyReport> getRelatedPrivacyPolicies(String udn) {
return remoteService.readRelatedPrivacyPolicies(udn);
// TODO 如果此User有表達過則回傳表達隱私政策與其表達,
public Optional<PrivacyPolicyReportResponse> getRelatedPrivacyPolicyByUdn(String udn, String account) {
return remoteService.readRelatedPrivacyPolicyReport(udn)
.flatMap(report -> Optional.ofNullable(this.findChoicesByPolicies(report.getPolicies(), udn, account))
.map(this::choicesToMap)
.map(choices -> PrivacyPolicyReportResponse.responseBuilder()
.id(report.getId())
.version(report.getVersion())
.description(report.getDescription())
.device(report.getDevice())
.policies(report.getPolicies())
.choices(choices)
.build()));
}
private List<Boolean> findChoicesByPolicies(List<PrivacyPolicy> privacyPolicies, String udn, String account) {
return privacyPolicies.stream()
.map(policy -> this.findPrivacyChoiceByPrivacyPolicy(policy, udn, account))
.map(choices -> (Iterables.isEmpty(choices)) ? Boolean.valueOf(false) : Iterables.getLast(choices).isAccepted())
.collect(Collectors.toList());
}
private HashMap<Integer, Boolean> choicesToMap(List<Boolean> choices) {
return Streams.mapWithIndex(choices.stream(),
(choice, index) -> Maps.newHashMap(ImmutableMap.of(Long.valueOf(index).intValue(), choice)))
.collect(HashMap::new, HashMap::putAll, HashMap::putAll);
}
private Iterable<PrivacyChoice> findPrivacyChoiceByPrivacyPolicy(PrivacyPolicy privacyPolicy, String udn, String account) {
return () -> StreamSupport.stream(remoteService.readPrivacyChoices().spliterator(), false)
.filter(choice -> choice.getPrivacyContent().getPolicy().getId().equals(privacyPolicy.getId()) &
choice.getPrivacyContent().getUser().getAccount().equals(account) &
choice.getPrivacyContent().getDevice().getUdn().equals(udn))
.collect(Collectors.toList()).iterator();
}
public Optional<PrivacyChoiceResponse> setPrivacyChoice(PrivacyChoice privacyChoice) {
System.out.println("setPrivacyPolicyChoice : " + privacyChoice.toString());
return Optional.of(privacyChoice)
.flatMap(choice -> remoteService.setPrivacyChoice(choice))
.flatMap(choice -> Optional.of(privacyChoiceIndexRepository.save(PrivacyChoiceIndex.builder()
.flatMap(choice -> this.addPrivacyChoiceIndex(PrivacyChoiceIndex.builder()
.id(choice.getId())
.localDateTime(LocalDateTime.now())
.build()))
.build())
.map(choiceIndex -> PrivacyChoiceResponse.builder()
.id(choice.getId())
.localDateTime(LocalDateTime.now())
.localDateTime(choiceIndex.getLocalDateTime())
.privacyChoice(choice)
.build()));
}
private Optional<PrivacyChoiceIndex> addPrivacyChoiceIndex(PrivacyChoiceIndex choiceIndex) {
return Optional.ofNullable(privacyChoiceIndexRepository.save(choiceIndex));
}
// public Optional<Iterable<PrivacyChoice>> getPrivacyPolicyChoices() {
// return Optional.ofNullable(template.exchange(cloudAddress + "/choice", HttpMethod.GET, null,
// new ParameterizedTypeReference<Iterable<PrivacyChoice>>() { }).getBody());
// }
public Optional<Iterable<PrivacyChoiceResponse>> getPrivacyPolicyChoicesByAccount(String account) {
return remoteService.readPrivacyChoices()
.map(choices -> StreamSupport.stream(choices.spliterator(), false)
.filter(privacyChoice -> privacyChoice.getPrivacyContent().getUser().getAccount().equals(account))
public Iterable<PrivacyChoiceResponse> getPrivacyPolicyChoicesByAccount(String account) {
return () -> StreamSupport.stream(remoteService.readPrivacyChoices().spliterator(), false)
.filter(choice -> choice.getPrivacyContent().getUser().getAccount().equals(account))
.map(choice -> privacyChoiceIndexRepository.findById(choice.getId())
.map(choiceIndex -> PrivacyChoiceResponse.builder()
.id(choiceIndex.getId())
......@@ -63,6 +106,7 @@ public class PrivacyService {
.privacyChoice(choice)
.build())
.orElseGet(() -> new PrivacyChoiceResponse()))
.collect(Collectors.toList()));
.collect(Collectors.toList())
.iterator();
}
}
......@@ -40,7 +40,7 @@ public class RemoteService {
}).getBody(), "Read devices error");
}
public Optional<PrivacyPolicyReport> readRelatedPrivacyPolicies(String udn) {
public Optional<PrivacyPolicyReport> readRelatedPrivacyPolicyReport(String udn) {
return tryCatch(() -> template.exchange(cloudAddress + "/privacy/" + udn, HttpMethod.GET, null,
PrivacyPolicyReport.class).getBody(), "Read privacyPolicyReport error");
}
......@@ -50,10 +50,11 @@ public class RemoteService {
new HttpEntity(choice), PrivacyChoice.class).getBody(), "Set privacyChoice error");
}
public Optional<Iterable<PrivacyChoice>> readPrivacyChoices() {
public Iterable<PrivacyChoice> readPrivacyChoices() {
return tryCatch(() -> template.exchange(cloudAddress + "/choice", HttpMethod.GET, null,
new ParameterizedTypeReference<Iterable<PrivacyChoice>>() {
}).getBody(), "Read privacyChoice error");
}).getBody(), "Read privacyChoice error")
.orElse(null);
}
public <T> Optional<T> tryCatch(Supplier<T> supplier, String errorMessage) {
......
......@@ -7,6 +7,7 @@ import edu.prlab.tyler.iotgateway.cloud.pojo.device.Device;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyContent;
import edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyPolicyReport;
import edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse;
import edu.prlab.tyler.iotgateway.gateway.pojo.auth.SensitiveUser;
import org.junit.Assert;
import org.junit.Before;
......@@ -66,7 +67,7 @@ public class GatewayHttpApiTest {
.andDo(print())
.andExpect(status().isOk())
.andReturn();
Device device= mapper.readValue(result.getResponse().getContentAsString(), Device.class);
Device device = mapper.readValue(result.getResponse().getContentAsString(), Device.class);
Assert.assertNotNull(device);
//取得裝置清單
......@@ -83,12 +84,12 @@ public class GatewayHttpApiTest {
//拿取隱私政策
result = mvc.perform(MockMvcRequestBuilders
.get("/privacy/" + "a1252c49-4188-4e6d-a32e-66604c664fb8")
.get("/privacy/" + "a1252c49-4188-4e6d-a32e-66604c664fb8/" + "test")
.accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print())
.andExpect(status().isOk())
.andReturn();
PrivacyPolicyReport report = mapper.readValue(result.getResponse().getContentAsString(), PrivacyPolicyReport.class);
PrivacyPolicyReport report = mapper.readValue(result.getResponse().getContentAsString(), PrivacyPolicyReportResponse.class);
Assert.assertNotNull(report);
//表達隱私偏好
......@@ -115,9 +116,18 @@ public class GatewayHttpApiTest {
Assert.assertNotNull(result);
result = mvc.perform(MockMvcRequestBuilders
.get("/privacy/" + "a1252c49-4188-4e6d-a32e-66604c664fb8/" + "test")
.accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print())
.andExpect(status().isOk())
.andReturn();
report = mapper.readValue(result.getResponse().getContentAsString(), PrivacyPolicyReportResponse.class);
Assert.assertNotNull(report);
//取得所有隱私偏好
result = mvc.perform(MockMvcRequestBuilders
.get("/choice"+"/test1")
.get("/choice/" + privacyChoice.getPrivacyContent().getUser().getAccount())
.accept(MediaType.APPLICATION_JSON_UTF8))
.andDo(print())
.andExpect(status().isOk())
......
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