From 2e88b9ec72ddbcd47842a3cc2cfa4cc3699b5316 Mon Sep 17 00:00:00 2001 From: Tamas Bunth <tamas.bunth@collabora.co.uk> Date: Thu, 17 May 2018 17:41:37 +0200 Subject: [PATCH] Add batteryTemp, mobile and wifi usage, processes to Rest API and database. --- src/main/kotlin/mobildata/model/MobilData.kt | 8 ++++++++ .../kotlin/mobildata/model/MobileProcess.kt | 10 ++++++++++ .../mobildata/model/inout/MobilDataIn.kt | 18 ++++++++++++++++- .../kotlin/mobildata/web/MobilDataHandler.kt | 9 ++++++++- src/main/resources/application.properties | 2 ++ src/main/resources/schema.sql | 20 ++++++++++++++----- 6 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 src/main/kotlin/mobildata/model/MobileProcess.kt diff --git a/src/main/kotlin/mobildata/model/MobilData.kt b/src/main/kotlin/mobildata/model/MobilData.kt index b33dfef..ce39016 100644 --- a/src/main/kotlin/mobildata/model/MobilData.kt +++ b/src/main/kotlin/mobildata/model/MobilData.kt @@ -15,6 +15,14 @@ data class MobilData( var nfcOn: Boolean?, var mobilDataOn: Boolean?, var sleepTime: Int?, + var batteryTemp: Double?, + var mobileDataUsage: Int?, + var wifiDataUsage: Int?, + @ElementCollection + @CollectionTable( + name="process", + joinColumns = arrayOf(JoinColumn(name = "process_id", referencedColumnName = "id"))) + var processList: List<MobileProcess>?, @Id @GeneratedValue(strategy = GenerationType.AUTO) var id: Long = 0) { } \ No newline at end of file diff --git a/src/main/kotlin/mobildata/model/MobileProcess.kt b/src/main/kotlin/mobildata/model/MobileProcess.kt new file mode 100644 index 0000000..0958105 --- /dev/null +++ b/src/main/kotlin/mobildata/model/MobileProcess.kt @@ -0,0 +1,10 @@ +package mobildata.model + +import javax.persistence.Column +import javax.persistence.Embeddable + +@Embeddable +data class MobileProcess( + @Column(name="process") + val process: String +){} \ No newline at end of file diff --git a/src/main/kotlin/mobildata/model/inout/MobilDataIn.kt b/src/main/kotlin/mobildata/model/inout/MobilDataIn.kt index 23584fe..ebd4424 100644 --- a/src/main/kotlin/mobildata/model/inout/MobilDataIn.kt +++ b/src/main/kotlin/mobildata/model/inout/MobilDataIn.kt @@ -30,9 +30,21 @@ class MobilDataIn { @ApiModelProperty(example = "15", required = false) var sleepTime: Int? + @ApiModelProperty(example = "31.45", required = false) + var batteryTemp: Double? + + @ApiModelProperty(example = "2134231", required = false) + var mobileDataUsage: Int? + @ApiModelProperty(example = "342655", required = false) + var wifiDataUsage: Int? + + @ApiModelProperty(required = false) + var processList: ArrayList<String>? + constructor(location: LocationData? = null, battery: Int?, brightness: Int?, wifiOn: Boolean?, bluetoothOn: Boolean?, nfcOn: Boolean?, mobilDataOn: Boolean?, - sleepTime: Int?) { + sleepTime: Int?, batteryTemp: Double?, mobileDataUsage: Int?, wifiDataUsage: Int?, + processList: ArrayList<String>?) { this.location = location this.battery = battery this.brightness = brightness @@ -41,5 +53,9 @@ class MobilDataIn { this.nfcOn = nfcOn this.mobilDataOn = mobilDataOn this.sleepTime = sleepTime + this.batteryTemp = batteryTemp + this.mobileDataUsage = mobileDataUsage + this.wifiDataUsage = wifiDataUsage + this.processList = processList } } diff --git a/src/main/kotlin/mobildata/web/MobilDataHandler.kt b/src/main/kotlin/mobildata/web/MobilDataHandler.kt index 3088749..7c708ea 100644 --- a/src/main/kotlin/mobildata/web/MobilDataHandler.kt +++ b/src/main/kotlin/mobildata/web/MobilDataHandler.kt @@ -2,6 +2,7 @@ package mobildata.web import mobildata.jwt.ApiKeySecured import mobildata.model.MobilData +import mobildata.model.MobileProcess import mobildata.model.User import mobildata.model.inout.MobilDataIn import mobildata.repository.MobilDataRepository @@ -18,10 +19,16 @@ class MobilDataHandler (val mobilRepository: MobilDataRepository, val userRepo: UserRepository) { private fun inputToMobilData(input : MobilDataIn, user:User? ): MobilData { + var processes = ArrayList<MobileProcess>() + input.processList?.forEach { + processes.add(MobileProcess(it)) + } return MobilData(user_id = user!!.id, location_lat = input.location?.latitude, location_long = input.location?.longitude, battery = input.battery, brightness = input.brightness, wifiOn = input.wifiOn, bluetoothOn = input.bluetoothOn, - mobilDataOn = input.mobilDataOn, nfcOn = input.nfcOn, sleepTime = input.sleepTime) + mobilDataOn = input.mobilDataOn, nfcOn = input.nfcOn, sleepTime = input.sleepTime, + mobileDataUsage = input.mobileDataUsage, wifiDataUsage = input.wifiDataUsage, + processList = processes, batteryTemp = input.batteryTemp) } @ApiKeySecured diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index bce5f66..d14a7c7 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,3 +1,5 @@ +server.port = 8090 + spring.datasource.url = jdbc:postgresql://localhost:5432/mobildata spring.datasource.driverClassName=org.postgresql.Driver spring.datasource.username=postgres diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index 6907354..f88c791 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -1,5 +1,6 @@ drop table if exists "user" cascade; drop table if exists mobil_data cascade; +drop table if exists process cascade; drop sequence if exists hibernate_sequence; create sequence hibernate_sequence start 1 increment 1; @@ -15,6 +16,11 @@ create table "user" ( primary key (id) ); +create table process ( + id int8 not null, + process VARCHAR(255) +); + create table mobil_data ( id int8 not null, user_id int8 not null, @@ -22,11 +28,15 @@ create table mobil_data ( location_long DOUBLE PRECISION, battery INTEGER, brightness INTEGER, - is_wifi_on BOOLEAN, - is_mobil_data_on BOOLEAN, - is_bluetooth_on BOOLEAN, - is_nfc_on BOOLEAN, - sleep_time INTEGER + wifi_on BOOLEAN, + mobil_data_on BOOLEAN, + bluetooth_on BOOLEAN, + nfc_on BOOLEAN, + sleep_time INTEGER, + battery_temp DOUBLE PRECISION, + mobile_data_usage INTEGER, + wifi_data_usage INTEGER, + process_id INTEGER ); alter table mobil_data -- GitLab