From 0eb486a8d44953d6784d0e4cc982c6e7abb5ee38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miroslav=20Rou=C4=8Da?= <xrouca@fi.muni.cz>
Date: Fri, 14 Apr 2023 10:54:38 +0200
Subject: [PATCH] DeviceFacade and Company

---
 .../cz/muni/fi/pa165/core/company/Company.java   |  5 +++++
 .../muni/fi/pa165/core/device/DeviceFacade.java  | 16 +++++++++++++++-
 .../pa165/core/company/UnitTestCompanyJPA.java   |  2 +-
 emailmicroservice/pom.xml                        |  7 -------
 .../pa165/model/dto/device/DeviceCreateDto.java  |  2 ++
 5 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/core/src/main/java/cz/muni/fi/pa165/core/company/Company.java b/core/src/main/java/cz/muni/fi/pa165/core/company/Company.java
index 4d1097b..0a296da 100644
--- a/core/src/main/java/cz/muni/fi/pa165/core/company/Company.java
+++ b/core/src/main/java/cz/muni/fi/pa165/core/company/Company.java
@@ -2,6 +2,7 @@ package cz.muni.fi.pa165.core.company;
 
 import cz.muni.fi.pa165.core.common.DomainObject;
 import cz.muni.fi.pa165.core.device.Device;
+import cz.muni.fi.pa165.core.house.House;
 import cz.muni.fi.pa165.core.user.roles.CompanyRole;
 import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
@@ -27,4 +28,8 @@ public class Company extends DomainObject {
 
 	@OneToMany(mappedBy = "company")
 	private List<Device> deviceList;
+
+	@OneToMany
+	@JoinColumn(name = "domain_company_id")
+	private List<House> houseList;
 }
diff --git a/core/src/main/java/cz/muni/fi/pa165/core/device/DeviceFacade.java b/core/src/main/java/cz/muni/fi/pa165/core/device/DeviceFacade.java
index 3084375..b3652f2 100644
--- a/core/src/main/java/cz/muni/fi/pa165/core/device/DeviceFacade.java
+++ b/core/src/main/java/cz/muni/fi/pa165/core/device/DeviceFacade.java
@@ -1,10 +1,14 @@
 package cz.muni.fi.pa165.core.device;
 
 import cz.muni.fi.pa165.core.common.DomainFacade;
+import cz.muni.fi.pa165.core.company.CompanyService;
 import cz.muni.fi.pa165.core.helpers.exceptions.EntityDeletionException;
+import cz.muni.fi.pa165.core.smartmeter.SmartMeter;
 import cz.muni.fi.pa165.model.dto.device.DeviceCreateDto;
 import cz.muni.fi.pa165.model.dto.device.DeviceDto;
 import cz.muni.fi.pa165.model.dto.device.DeviceUpdateDto;
+import cz.muni.fi.pa165.model.dto.smartDevice.SmartMeterCreateDto;
+import cz.muni.fi.pa165.model.dto.smartDevice.SmartMeterDto;
 import lombok.SneakyThrows;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -14,10 +18,20 @@ public class DeviceFacade extends DomainFacade<Device, DeviceDto, DeviceCreateDt
 
 	private final DeviceService deviceService; // For the "DeviceService" specific methods
 
+	private final CompanyService companyService;
+
 	@Autowired
-	public DeviceFacade(DeviceService deviceService, DeviceMapper deviceMapper) {
+	public DeviceFacade(DeviceService deviceService, DeviceMapper deviceMapper, CompanyService companyService) {
 		super(deviceService, deviceMapper);
 		this.deviceService = deviceService;
+		this.companyService = companyService;
+	}
+
+	@Override
+	public DeviceDto create(DeviceCreateDto deviceCreateDto){
+		Device device = mapper.fromCreateDto(deviceCreateDto);
+		device.setCompany(companyService.findById(deviceCreateDto.getCompanyId()));
+		return mapper.toDto(deviceService.create(device));
 	}
 
 	@SneakyThrows
diff --git a/core/src/test/java/cz/muni/fi/pa165/core/company/UnitTestCompanyJPA.java b/core/src/test/java/cz/muni/fi/pa165/core/company/UnitTestCompanyJPA.java
index 4f738cf..5442c63 100644
--- a/core/src/test/java/cz/muni/fi/pa165/core/company/UnitTestCompanyJPA.java
+++ b/core/src/test/java/cz/muni/fi/pa165/core/company/UnitTestCompanyJPA.java
@@ -47,7 +47,7 @@ public class UnitTestCompanyJPA {
     }
 
     private Company helperRegister() {
-        return companyRepository.save(new Company("Tesla", new ArrayList<>(), new ArrayList<>()));
+        return companyRepository.save(new Company("Tesla", new ArrayList<>(), new ArrayList<>(), new ArrayList<>()));
     }
 
     @Test
diff --git a/emailmicroservice/pom.xml b/emailmicroservice/pom.xml
index 990589d..da19b79 100644
--- a/emailmicroservice/pom.xml
+++ b/emailmicroservice/pom.xml
@@ -17,11 +17,4 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-mail</artifactId>
-        </dependency>
-    </dependencies>
-
 </project>
\ No newline at end of file
diff --git a/model/src/main/java/cz/muni/fi/pa165/model/dto/device/DeviceCreateDto.java b/model/src/main/java/cz/muni/fi/pa165/model/dto/device/DeviceCreateDto.java
index b8ceeae..834d233 100644
--- a/model/src/main/java/cz/muni/fi/pa165/model/dto/device/DeviceCreateDto.java
+++ b/model/src/main/java/cz/muni/fi/pa165/model/dto/device/DeviceCreateDto.java
@@ -9,4 +9,6 @@ import lombok.Setter;
 public class DeviceCreateDto extends DomainObjectDto {
 
   private String name;
+
+  private String companyId;
 }
-- 
GitLab