defaultData
Showing
No preview for this file type
No preview for this file type
... | ... | @@ -11,11 +11,18 @@ import edu.prlab.tyler.iotgateway.cloud.services.DeviceService; |
import edu.prlab.tyler.iotgateway.cloud.services.DocumentService; | ||
import edu.prlab.tyler.iotgateway.cloud.services.PrivacyPolicyReportService; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.beans.factory.annotation.Value; | ||
import org.springframework.boot.ApplicationArguments; | ||
import org.springframework.boot.ApplicationRunner; | ||
import org.springframework.core.io.Resource; | ||
import org.springframework.mock.web.MockMultipartFile; | ||
import org.springframework.stereotype.Component; | ||
import java.io.File; | ||
import java.io.FileInputStream; | ||
import java.io.IOException; | ||
import java.util.Optional; | ||
import static java.util.Arrays.asList; | ||
@Component | ||
... | ... | @@ -34,22 +41,28 @@ public class DefaultData implements ApplicationRunner { |
this.documentService = documentService; | ||
} | ||
@Value("classpath:document/粉塵濃度感測器檢測報告.pdf") | ||
Resource dustResource; | ||
@Value("classpath:document/溫溼度感測器檢測報告.pdf") | ||
Resource tempResource; | ||
@Override | ||
public void run(ApplicationArguments args) { | ||
//心跳血氧機 | ||
Device oxygenDevice = Device.builder() | ||
.udn("a1252c49-4188-4e6d-a32e-66604c664fb8") | ||
.name("指尖式血氧機") | ||
.name("心跳血氧機") | ||
.type(Device.Type.Sensor) | ||
.manufacturer(Manufacturer.builder() | ||
.name("Facelake") | ||
.name("Maxim Integrated") | ||
.serialNumber("3176927193") | ||
.url("http://facelake.com") | ||
.url("https://www.maximintegrated.com/en.html") | ||
.build()) | ||
.model(Model.builder() | ||
.name("指尖式血氧機") | ||
.description("本設備是為符合不同領域及照護應用而設計,並把這些特色融入小如指節的分析儀中,可在數秒內量測出準確可靠的血氧及心跳值。") | ||
.url("https://www.amazon.com/Pulse-Oximeter-Blood-Oxygen-Monitor/dp/B00HXXO332") | ||
.name("心跳血氧機") | ||
.description("本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況") | ||
.url("https://www.maximintegrated.com/en/products/sensors/MAX30100.html") | ||
.build()) | ||
.upc("B00HXXO332") | ||
.location("25.013068, 121.541651") | ||
... | ... | @@ -58,9 +71,9 @@ public class DefaultData implements ApplicationRunner { |
deviceService.add(oxygenDevice); | ||
PrivacyPolicy oxygenPrivacyPolicy = PrivacyPolicy.builder() | ||
PrivacyPolicy oxygenPrivacyPolicy1 = PrivacyPolicy.builder() | ||
.id("abe5ca7b-780e-4857-87e6-014870fe0a3e") | ||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | ||
.description("本APP會蒐集使用者心跳作為第三方之分析資料。") | ||
.collector(Collector.builder() | ||
.name("AirRadio") | ||
.email("[email protected]") | ||
... | ... | @@ -74,14 +87,14 @@ public class DefaultData implements ApplicationRunner { |
.type(Remedy.Type.LAW) | ||
.build())) | ||
.statements(asList(Statement.builder() | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c664fb9") | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c664fl4") | ||
.purposes(asList(Purpose.builder() | ||
.type(Purpose.Type.PSEUDO_ANALYSIS) | ||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | ||
.description("本APP會蒐集使用者心跳作為第三方之分析資料。") | ||
.build())) | ||
.data(asList(Datum.builder() | ||
.type(Datum.Type.OTHER_CATEGORY) | ||
.description("室溫資料") | ||
.description("心跳健康資料") | ||
.build())) | ||
.recipients(asList(Recipient.builder() | ||
.entity("AirRadio") | ||
... | ... | @@ -89,14 +102,14 @@ public class DefaultData implements ApplicationRunner { |
.build())) | ||
.retention(Retention.STATED_PURPOSE) | ||
.build(), Statement.builder() | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c664fb9") | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c664f45") | ||
.purposes(asList(Purpose.builder() | ||
.type(Purpose.Type.PSEUDO_ANALYSIS) | ||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | ||
.description("本APP會蒐集使用者心跳作為第三方之分析資料。") | ||
.build())) | ||
.data(asList(Datum.builder() | ||
.type(Datum.Type.OTHER_CATEGORY) | ||
.description("室溫資料") | ||
.description("心跳健康資料") | ||
.build())) | ||
.recipients(asList(Recipient.builder() | ||
.entity("AirRadio") | ||
... | ... | @@ -107,34 +120,84 @@ public class DefaultData implements ApplicationRunner { |
)) | ||
.build(); | ||
Document document = documentService.add(new MockMultipartFile("file", "test.txt", | ||
"text/plain", "This is fake IOT Device testing file.".getBytes())) | ||
PrivacyPolicy oxygenPrivacyPolicy2 = PrivacyPolicy.builder() | ||
.id("abe5ca7b-780e-4857-87e6-014870fe0a3e") | ||
.description("本APP會蒐集使用者血氧作為第三方之分析資料。") | ||
.collector(Collector.builder() | ||
.name("AirRadio") | ||
.email("[email protected]") | ||
.phone("0987654177") | ||
.build()) | ||
.access(Access.NON_IDENT) | ||
.dispute(Dispute.builder() | ||
.relatedOrganization("地方法院") | ||
.type(Dispute.Type.LAW).build()) | ||
.remedies(asList(Remedy.builder() | ||
.type(Remedy.Type.LAW) | ||
.build())) | ||
.statements(asList(Statement.builder() | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c664f48") | ||
.purposes(asList(Purpose.builder() | ||
.type(Purpose.Type.PSEUDO_ANALYSIS) | ||
.description("本APP會蒐集使用者血氧作為第三方之分析資料。") | ||
.build())) | ||
.data(asList(Datum.builder() | ||
.type(Datum.Type.OTHER_CATEGORY) | ||
.description("血氧資料") | ||
.build())) | ||
.recipients(asList(Recipient.builder() | ||
.entity("AirRadio") | ||
.type(Recipient.Type.OURS) | ||
.build())) | ||
.retention(Retention.STATED_PURPOSE) | ||
.build(), Statement.builder() | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c664f89") | ||
.purposes(asList(Purpose.builder() | ||
.type(Purpose.Type.PSEUDO_ANALYSIS) | ||
.description("本APP會蒐集使用者血氧作為第三方之分析資料。") | ||
.build())) | ||
.data(asList(Datum.builder() | ||
.type(Datum.Type.OTHER_CATEGORY) | ||
.description("血氧資料") | ||
.build())) | ||
.recipients(asList(Recipient.builder() | ||
.entity("AirRadio") | ||
.type(Recipient.Type.OURS) | ||
.build())) | ||
.retention(Retention.STATED_PURPOSE) | ||
.build() | ||
)) | ||
.build(); | ||
Document document = resourceToMultipartFile(tempResource) | ||
.flatMap(documentService::add) | ||
.orElse(Document.builder().build()); | ||
PrivacyPolicyReport oxygenPrivacyPolicyReport = PrivacyPolicyReport.builder() | ||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | ||
.version("1.0") | ||
.description("本APP會蒐集使用者周遭溫度、濕度及空氣品質作為第三方資料之地區環境分析資料。") | ||
.description("本APP會蒐集使用者心跳、血氧作為第三方之分析資料。") | ||
.device(oxygenDevice) | ||
.policies(asList(oxygenPrivacyPolicy)) | ||
.policies(asList(oxygenPrivacyPolicy1, oxygenPrivacyPolicy2)) | ||
.document(document) | ||
.build(); | ||
privacyPolicyReportService.add(oxygenPrivacyPolicyReport); | ||
//紫外線傳感器 | ||
Device sensorDevice = Device.builder() | ||
.udn("40ceb1e7-6834-4e6a-9305-57348a2b8d0c") | ||
.name("AirRadio多功能空氣品質感測器") | ||
.name("UVM-30A紫外線傳感器") | ||
.type(Device.Type.Sensor) | ||
.manufacturer(Manufacturer.builder() | ||
.name("AirRadio") | ||
.name("台灣物聯科技") | ||
.serialNumber("1234532545") | ||
.url("http://www.airradio.cn/") | ||
.url("https://www.taiwaniot.com.tw/") | ||
.build()) | ||
.model(Model.builder() | ||
.name("AirRadio Multi-functional air quality monitor") | ||
.description("彩屏顯示、APP應用、多參數可選、本地歷史記錄、微信綁定、大屏顯示、遠程韌體升級、新版鐳射感測器、橫豎屏切換、綜合滿足用戶的多種需求。") | ||
.url("https://www.amazon.com/AirRadio-Multi-functional-Humidity-Temperature-detector/dp/B0744D6C8X?pd_rd_wg=EKVyv&pd_rd_r=6cc9cf6f-635c-4be8-b973-ccc269ad6312&pd_rd_w=CGN5l&ref_=pd_gw_simh&pf_rd_r=7K2X6MZBXT0Y27KV4M6Z&pf_rd_p=b841581f-e864-5164-afa6-4c18a8348879") | ||
.name("UVM-30A紫外線傳感器") | ||
.description("專為需要高可靠性和精確性測量紫外線指數(UVI)的場合所設計,且適合測量太陽光紫外線強度總量,適用於小尺寸裝置、行動電話等便攜產品。") | ||
.url("https://www.taiwaniot.com.tw/product/uvm-30a%E7%B4%AB%E5%A4%96%E7%B7%9A%E5%82%B3%E6%84%9F%E5%99%A8%E6%A8%A1%E7%B5%84/") | ||
.build()) | ||
.upc("B0744D6C8X") | ||
.location("25.013068, 121.541651") | ||
... | ... | @@ -145,7 +208,7 @@ public class DefaultData implements ApplicationRunner { |
PrivacyPolicy sensorPrivacyPolicy1 = PrivacyPolicy.builder() | ||
.id("abe5ca7b-780e-4857-87e6-014870fe0a3e") | ||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | ||
.description("本APP會蒐集使用者周遭紫外線強度作為第三方資料之地區環境分析資料。") | ||
.collector(Collector.builder() | ||
.name("AirRadio") | ||
.email("[email protected]") | ||
... | ... | @@ -161,11 +224,11 @@ public class DefaultData implements ApplicationRunner { |
.consequence("a1252c49-4188-4e6d-a32e-66604c664fb9") | ||
.purposes(asList(Purpose.builder() | ||
.type(Purpose.Type.PSEUDO_ANALYSIS) | ||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | ||
.description("本APP會蒐集使用者周遭紫外線強度作為第三方資料之地區環境分析資料。") | ||
.build())) | ||
.data(asList(Datum.builder() | ||
.type(Datum.Type.OTHER_CATEGORY) | ||
.description("室溫資料") | ||
.description("紫外線強度資料") | ||
.build())) | ||
.recipients(asList(Recipient.builder() | ||
.entity("AirRadio") | ||
... | ... | @@ -175,9 +238,44 @@ public class DefaultData implements ApplicationRunner { |
.build())) | ||
.build(); | ||
PrivacyPolicy sensorPrivacyPolicy2 = PrivacyPolicy.builder() | ||
.id("abe5ca7b-780e-4857-87e6-014870fe0a3f") | ||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | ||
PrivacyPolicyReport sensorPrivacyPolicyReport = PrivacyPolicyReport.builder() | ||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | ||
.version("1.0") | ||
.description("本APP會蒐集使用者周遭紫外線強度作為第三方資料之地區環境分析資料。") | ||
.device(sensorDevice) | ||
.policies(asList(sensorPrivacyPolicy1)) | ||
.document(document) | ||
.build(); | ||
privacyPolicyReportService.add(sensorPrivacyPolicyReport); | ||
//粉塵感測器 | ||
Device dustDevice = Device.builder() | ||
.udn("40ceb1e7-6834-4e6a-9305-57348a2b8asc") | ||
.name("G7 PMS7003 粉塵濃度感測器") | ||
.type(Device.Type.Sensor) | ||
.manufacturer(Manufacturer.builder() | ||
.name("台灣物聯科技") | ||
.serialNumber("1234532545") | ||
.url("https://www.taiwaniot.com.tw/") | ||
.build()) | ||
.model(Model.builder() | ||
.name("G7 PMS7003 粉塵濃度感測器") | ||
.description("最新推出G7,全稱 PMS7003,厚度僅12mm,專為便攜式檢測產品設計。" + | ||
"可兼容G1和G5,更小更薄,進出氣口在同一側,全金屬外殼。" + | ||
"PM1.0、PM2.5、PM10濃度以及顆粒物個數等12個參數輸出。") | ||
.url("https://www.taiwaniot.com.tw/product/%E6%94%80%E8%97%A4-g7-pms7003-pm1-0-pm2-5-pm10-%E7%B2%89%E5%A1%B5%E6%BF%83%E5%BA%A6%E6%84%9F%E6%B8%AC%E5%99%A8/") | ||
.build()) | ||
.upc("B0744D6C8X") | ||
.location("25.013068, 121.541651") | ||
.status(Device.Status.Disconnected) | ||
.build(); | ||
deviceService.add(dustDevice); | ||
PrivacyPolicy dustPrivacyPolicy1 = PrivacyPolicy.builder() | ||
.id("abe5ca7b-780e-4857-87e6-014870fe0a1j") | ||
.description("本APP會蒐集使用者周遭空氣品質作為第三方資料之地區環境分析資料。") | ||
.collector(Collector.builder() | ||
.name("AirRadio") | ||
.email("[email protected]") | ||
... | ... | @@ -190,14 +288,14 @@ public class DefaultData implements ApplicationRunner { |
.remedies(asList(Remedy.builder() | ||
.type(Remedy.Type.LAW).build())) | ||
.statements(asList(Statement.builder() | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c664fba") | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c66s1r9") | ||
.purposes(asList(Purpose.builder() | ||
.type(Purpose.Type.PSEUDO_ANALYSIS) | ||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | ||
.description("本APP會蒐集使用者周遭空氣品質作為第三方資料之地區環境分析資料。") | ||
.build())) | ||
.data(asList(Datum.builder() | ||
.type(Datum.Type.OTHER_CATEGORY) | ||
.description("室溫資料") | ||
.description("空氣品質資料") | ||
.build())) | ||
.recipients(asList(Recipient.builder() | ||
.entity("AirRadio") | ||
... | ... | @@ -207,9 +305,47 @@ public class DefaultData implements ApplicationRunner { |
.build())) | ||
.build(); | ||
PrivacyPolicy sensorPrivacyPolicy3 = PrivacyPolicy.builder() | ||
.id("abe5ca7b-780e-4857-87e6-014870fe0a3g") | ||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | ||
document = resourceToMultipartFile(dustResource) | ||
.flatMap(documentService::add) | ||
.orElse(Document.builder().build()); | ||
PrivacyPolicyReport dustPrivacyPolicyReport = PrivacyPolicyReport.builder() | ||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | ||
.version("1.0") | ||
.description("本APP會蒐集使用者周遭空氣品質作為第三方資料之地區環境分析資料。") | ||
.device(dustDevice) | ||
.policies(asList(dustPrivacyPolicy1)) | ||
.document(document) | ||
.build(); | ||
privacyPolicyReportService.add(dustPrivacyPolicyReport); | ||
//溫度模組 | ||
Device tempDevice = Device.builder() | ||
.udn("40ceb1e7-6834-4e6a-9305-57348as38asc") | ||
.name("DHT22 溫濕度模組") | ||
.type(Device.Type.Sensor) | ||
.manufacturer(Manufacturer.builder() | ||
.name("台灣物聯科技") | ||
.serialNumber("1234532545") | ||
.url("https://www.taiwaniot.com.tw/") | ||
.build()) | ||
.model(Model.builder() | ||
.name("DHT22 溫濕度模組") | ||
.description("DHT22溫濕度感測器是一款含有已校準數位信號輸出的溫濕度複合感測器," + | ||
"它應用專用的數位模組採集技術和溫濕度傳感技術,來確保產品具有極高的可靠性與卓越的長期穩定性") | ||
.url("https://www.taiwaniot.com.tw/product/dht22-%E6%BA%AB%E5%BA%A6%E6%A8%A1%E7%B5%84-%E6%BF%95%E5%BA%A6%E6%A8%A1%E7%B5%84-%E6%BA%AB%E6%BF%95%E5%BA%A6%E6%A8%A1%E7%B5%84-dht22/") | ||
.build()) | ||
.upc("B0744D6C8X") | ||
.location("25.013068, 121.541651") | ||
.status(Device.Status.Disconnected) | ||
.build(); | ||
deviceService.add(tempDevice); | ||
PrivacyPolicy tempPrivacyPolicy1 = PrivacyPolicy.builder() | ||
.id("abe5ca7b-780e-4857-87e6-014870fe00e1") | ||
.description("本APP會蒐集使用者周遭溫度、濕度作為第三方資料之地區環境分析資料。") | ||
.collector(Collector.builder() | ||
.name("AirRadio") | ||
.email("[email protected]") | ||
... | ... | @@ -222,36 +358,129 @@ public class DefaultData implements ApplicationRunner { |
.remedies(asList(Remedy.builder() | ||
.type(Remedy.Type.LAW).build())) | ||
.statements(asList(Statement.builder() | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c664fba") | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c6621f9") | ||
.purposes(asList(Purpose.builder() | ||
.type(Purpose.Type.PSEUDO_ANALYSIS) | ||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | ||
.build())) | ||
.data(asList(Datum.builder() | ||
.type(Datum.Type.OTHER_CATEGORY) | ||
.description("室溫資料") | ||
.description("溫度資料") | ||
.build())) | ||
.recipients(asList(Recipient.builder() | ||
.entity("AirRadio") | ||
.type(Recipient.Type.OURS) | ||
.build())) | ||
.retention(Retention.STATED_PURPOSE) | ||
.build())) | ||
.build(); | ||
.build(), Statement.builder() | ||
.consequence("a1252c49-4188-4e6d-a32e-6204c63s1r9") | ||
.purposes(asList(Purpose.builder() | ||
.type(Purpose.Type.PSEUDO_ANALYSIS) | ||
.description("本APP會蒐集使用者周遭濕度作為第三方資料之地區環境分析資料。") | ||
.build())) | ||
.data(asList(Datum.builder() | ||
.type(Datum.Type.OTHER_CATEGORY) | ||
.description("濕度資料") | ||
.build())) | ||
.recipients(asList(Recipient.builder() | ||
.entity("AirRadio") | ||
.type(Recipient.Type.OURS) | ||
.build())) | ||
.retention(Retention.STATED_PURPOSE) | ||
.build() | ||
)).build(); | ||
document = documentService.add(new MockMultipartFile("file", "test.txt", | ||
"text/plain", "This is fake IOT Device testing file.".getBytes())) | ||
document = resourceToMultipartFile(tempResource) | ||
.flatMap(documentService::add) | ||
.orElse(Document.builder().build()); | ||
PrivacyPolicyReport sensorPrivacyPolicyReport = PrivacyPolicyReport.builder() | ||
PrivacyPolicyReport tempPrivacyPolicyReport = PrivacyPolicyReport.builder() | ||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | ||
.version("1.0") | ||
.description("本APP會蒐集使用者周遭溫度、濕度及空氣品質作為第三方資料之地區環境分析資料。") | ||
.device(sensorDevice) | ||
.policies(asList(sensorPrivacyPolicy1, sensorPrivacyPolicy2, sensorPrivacyPolicy3)) | ||
.description("本APP會蒐集使用者周遭周遭溫度、濕度作為第三方資料之地區環境分析資料。") | ||
.device(tempDevice) | ||
.policies(asList(tempPrivacyPolicy1)) | ||
.document(document) | ||
.build(); | ||
privacyPolicyReportService.add(sensorPrivacyPolicyReport); | ||
privacyPolicyReportService.add(tempPrivacyPolicyReport); | ||
//氣體感測器 | ||
Device gasDevice = Device.builder() | ||
.udn("40ceb1e7-6834-4e6a-9305-57348ast5asc") | ||
.name("MQ-4 氣體感測器") | ||
.type(Device.Type.Sensor) | ||
.manufacturer(Manufacturer.builder() | ||
.name("台灣物聯科技") | ||
.serialNumber("1234532545") | ||
.url("https://www.taiwaniot.com.tw/") | ||
.build()) | ||
.model(Model.builder() | ||
.name("DHT22 溫濕度模組") | ||
.description("MQ-4氣體感測器所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫 (SnO2)。" + | ||
"MQ-4氣體感測器對甲烷的靈敏度高,對丙烷、丁烷也有較好的靈敏度。" + | ||
"這種感測器可檢測多種可燃性氣體,特別是天然氣,是一款適合多種應用的低成本感測器。") | ||
.url("https://www.taiwaniot.com.tw/product/mq-4-ch4-%E5%A4%A9%E7%84%B6%E6%B0%A3%E3%80%81%E7%94%B2%E7%83%B7%E6%84%9F%E6%B8%AC%E5%99%A8%E6%A8%A1%E7%B5%84/") | ||
.build()) | ||
.upc("B0744D6C8X") | ||
.location("25.013068, 121.541651") | ||
.status(Device.Status.Disconnected) | ||
.build(); | ||
deviceService.add(gasDevice); | ||
PrivacyPolicy gasPrivacyPolicy1 = PrivacyPolicy.builder() | ||
.id("abe5ca7b-780e-4857-87e6-014642fe00e1") | ||
.description("本APP會蒐集使用者周遭氣體作為第三方資料之地區環境分析資料。") | ||
.collector(Collector.builder() | ||
.name("AirRadio") | ||
.email("[email protected]") | ||
.phone("0987654177") | ||
.build()) | ||
.access(Access.NON_IDENT) | ||
.dispute(Dispute.builder() | ||
.relatedOrganization("地方法院") | ||
.type(Dispute.Type.LAW).build()) | ||
.remedies(asList(Remedy.builder() | ||
.type(Remedy.Type.LAW).build())) | ||
.statements(asList(Statement.builder() | ||
.consequence("a1252c49-4188-4e6d-a32e-66604c6621f9") | ||
.purposes(asList(Purpose.builder() | ||
.type(Purpose.Type.PSEUDO_ANALYSIS) | ||
.description("本APP會蒐集使用者周遭氣體作為第三方資料之地區環境分析資料。") | ||
.build())) | ||
.data(asList(Datum.builder() | ||
.type(Datum.Type.OTHER_CATEGORY) | ||
.description("氣體資料") | ||
.build())) | ||
.recipients(asList(Recipient.builder() | ||
.entity("AirRadio") | ||
.type(Recipient.Type.OURS) | ||
.build())) | ||
.retention(Retention.STATED_PURPOSE) | ||
.build())) | ||
.build(); | ||
PrivacyPolicyReport gasPrivacyPolicyReport = PrivacyPolicyReport.builder() | ||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | ||
.version("1.0") | ||
.description("本APP會蒐集使用者周遭周遭氣體作為第三方資料之地區環境分析資料。") | ||
.device(gasDevice) | ||
.policies(asList(gasPrivacyPolicy1)) | ||
.document(document) | ||
.build(); | ||
privacyPolicyReportService.add(gasPrivacyPolicyReport); | ||
} | ||
private Optional<MockMultipartFile> resourceToMultipartFile(Resource resource) { | ||
try { | ||
File file = resource.getFile(); | ||
return Optional.of(new MockMultipartFile(file.getName(), file.getName(), | ||
"application/pdf", new FileInputStream(file))); | ||
} catch (IOException e) { | ||
e.printStackTrace(); | ||
} | ||
return Optional.empty(); | ||
} | ||
} | ||
\ No newline at end of file |
File added
File added
No preview for this file type
File deleted
No preview for this file type
No preview for this file type
Please register or sign in to comment