From 03bf25856b60476c604ffc096f6fa168e0c1c8c8 Mon Sep 17 00:00:00 2001 From: hemahg Date: Tue, 10 Aug 2021 16:19:29 +0530 Subject: [PATCH] Creating ResourceRequest endpoint --- .../shareNwork/domain/ResourceRequest.java | 10 ++++- .../repository/ResourceRequestRepository.java | 36 ++++++++++++++++++ .../resource/ResourceRequestResource.java | 37 +++++++++++++++++++ 3 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/shareNwork/repository/ResourceRequestRepository.java create mode 100644 src/main/java/com/shareNwork/resource/ResourceRequestResource.java diff --git a/src/main/java/com/shareNwork/domain/ResourceRequest.java b/src/main/java/com/shareNwork/domain/ResourceRequest.java index 98d7d86..f198e6e 100644 --- a/src/main/java/com/shareNwork/domain/ResourceRequest.java +++ b/src/main/java/com/shareNwork/domain/ResourceRequest.java @@ -1,16 +1,22 @@ package com.shareNwork.domain; import com.shareNwork.domain.constants.ResourceRequestStatus; +import io.quarkus.hibernate.orm.panache.PanacheEntity; +import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.ManyToOne; @Entity @Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class ResourceRequest extends BaseEntity { +public class ResourceRequest extends PanacheEntity { private String requestName; @@ -19,7 +25,7 @@ public class ResourceRequest extends BaseEntity { @ManyToOne private Slot slot; - @ManyToOne + @ManyToOne(fetch = FetchType.LAZY) private Employee requester; private Integer requiredExperience; diff --git a/src/main/java/com/shareNwork/repository/ResourceRequestRepository.java b/src/main/java/com/shareNwork/repository/ResourceRequestRepository.java new file mode 100644 index 0000000..7a5e726 --- /dev/null +++ b/src/main/java/com/shareNwork/repository/ResourceRequestRepository.java @@ -0,0 +1,36 @@ +package com.shareNwork.repository; + +import com.shareNwork.domain.ResourceRequest; +import io.quarkus.hibernate.orm.panache.PanacheRepository; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.persistence.EntityManager; +import java.text.ParseException; +import javax.transaction.Transactional; + +@ApplicationScoped +public class ResourceRequestRepository implements PanacheRepository { + @Inject + EntityManager em; + + @Transactional + public ResourceRequest createOrUpdateResource(ResourceRequest resourceRequest) throws ParseException { + if(resourceRequest.id == null){ + persist(resourceRequest); + return resourceRequest; + } else { + return em.merge(resourceRequest); + } + } + + @Transactional + public ResourceRequest deleteResourceRequest(Long id) throws ParseException { + ResourceRequest p = findById(id); + if (p != null) { + deleteById(id); + } + return p; + } + +} diff --git a/src/main/java/com/shareNwork/resource/ResourceRequestResource.java b/src/main/java/com/shareNwork/resource/ResourceRequestResource.java new file mode 100644 index 0000000..3fb27fd --- /dev/null +++ b/src/main/java/com/shareNwork/resource/ResourceRequestResource.java @@ -0,0 +1,37 @@ +package com.shareNwork.resource; + +import com.shareNwork.domain.ResourceRequest; +import com.shareNwork.repository.ResourceRequestRepository; +import lombok.AllArgsConstructor; +import org.eclipse.microprofile.graphql.Description; +import org.eclipse.microprofile.graphql.GraphQLApi; +import org.eclipse.microprofile.graphql.Mutation; +import org.eclipse.microprofile.graphql.Query; + +import java.text.ParseException; +import java.util.List; + +@AllArgsConstructor +@GraphQLApi +public class ResourceRequestResource { + private ResourceRequestRepository resourceRequestRepository; + + @Mutation + @Description("Create a new ResourceRequest") + public ResourceRequest createOrUpdateResourceRequest(ResourceRequest resourceRequest) throws ParseException { + return this.resourceRequestRepository.createOrUpdateResource(resourceRequest); + } + + @Query + @Description("get all ResourceRequest") + public List getAllResourceRequest() { + return this.resourceRequestRepository.findAll().list(); + } + + @Mutation + @Description("Delete ResourceRequest") + public ResourceRequest deleteResourceRequest(Long id) throws ParseException { + return this.resourceRequestRepository.deleteResourceRequest(id); + } +} +