Skip to content

Commit

Permalink
Updated code to capture EventAddress
Browse files Browse the repository at this point in the history
  • Loading branch information
dinesh19aug committed Jul 9, 2022
1 parent 93dd5be commit a4660ac
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 13 deletions.
34 changes: 34 additions & 0 deletions src/main/java/com/eventu/repository/AddressRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.eventu.repository;

import com.eventu.exception.BusinessException;
import com.eventu.vo.Address;
import com.eventu.vo.Event;
import io.quarkus.mongodb.panache.reactive.ReactivePanacheMongoRepository;
import io.smallrye.mutiny.Uni;

import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class AddressRepository implements ReactivePanacheMongoRepository<Address>, IRepository{
public Uni<Address> create(Event event){
Address address = createAddress(event);

return persistOrUpdate(address)
.onFailure().transform(f-> new BusinessException(createErrorMessage(f, "Error creatingAddress"), f)) ;

}

private Address createAddress(Event event) {
return Address.builder()
.addressLine_1(event.getAddressLine_1())
.addressLine_2(event.getAddressLine_2())
.floorNumber(event.getFloorNumber())
.suiteNumber(event.getSuiteNumber())
.city(event.getCity())
.state(event.getState())
.roomNumber(event.getRoomNumber())
.zipCode(event.getZipCode())
.countryCode(event.getCountryCode())
.build();
}
}
17 changes: 12 additions & 5 deletions src/main/java/com/eventu/repository/EventRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,20 @@ public Uni<Event> addEventSummary(Event event, SubEvent subEvent){
.onItem().transformToUni(e -> Uni.createFrom().item(e))
.onFailure().transform(f->
new BusinessException(createErrorMessage(f, "Cannot update the event"), f));

});




}
public Uni<Event> addAddress(Event event, Address address){
Uni<Event> uniEvent = this.findById(event.getId());
return uniEvent.onItem()
.transformToUni(eventObj->{
eventObj.setVenueAddress(address.getId());
return this.persistOrUpdate(eventObj)
.onItem().transformToUni(e -> Uni.createFrom().item(e))
.onFailure().transform(f->
new BusinessException(createErrorMessage(f, "Cannot update the address to event"), f));
});
}


private SubEventSummary createSubEventSummry(SubEvent subEvent) {
SubEventSummary subEventSummary = new SubEventSummary();
Expand Down
31 changes: 24 additions & 7 deletions src/main/java/com/eventu/resource/EventResource.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.eventu.resource;

import com.eventu.repository.AddressRepository;
import com.eventu.repository.EventRepository;
import com.eventu.repository.PersonRepository;
import com.eventu.vo.AStatus;
Expand All @@ -24,6 +25,9 @@ public class EventResource {
@Inject
PersonRepository personRepository;

@Inject
AddressRepository addressRepository;

@POST
@Path("/{person_id}/event")
public Uni<Response> create(Event event, @PathParam("person_id") String personId){
Expand All @@ -33,13 +37,7 @@ public Uni<Response> create(Event event, @PathParam("person_id") String personId
return uniPerson.onItem()
.transformToUni(person -> {
if( person != null){
return eventRepository.create(event, person.getId())
.onItem().transform(e -> Response.ok().entity(e).build())
.onFailure()
.recoverWithItem(failure -> {
AStatus status = createErrorStatus(failure.getMessage());
return Response.serverError().entity(status).build();
});
return createEvent(event, person);
}else {
AStatus status = createErrorStatus("Person does not exist");
return Uni.createFrom().item( Response.serverError().entity(status).build());
Expand All @@ -49,8 +47,27 @@ public Uni<Response> create(Event event, @PathParam("person_id") String personId

}

private Uni<Response> createEvent(Event event, Person person) {
return eventRepository.create(event, person.getId())
.onItem().transformToUni(e ->
addAddressToEvent(e)


.onFailure()
.recoverWithItem(failure -> {
AStatus status = createErrorStatus(failure.getMessage());
return Response.serverError().entity(status).build();
}));
}

private Uni<Response> addAddressToEvent(Event e) {
return addressRepository.create(e).onItem()
.transformToUni(address ->
eventRepository.addAddress(e,address).onItem()
.transform(updatedEvent -> Response.ok().entity(updatedEvent).build() )

);
}


private AStatus createErrorStatus(String statusDesc){
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/com/eventu/vo/Address.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
package com.eventu.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.mongodb.panache.common.MongoEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;


@Data
@MongoEntity(collection="Address")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Address {
public ObjectId id;
private String addressLine_1;
private String addressLine_2;
private String roomNumber;
Expand Down
22 changes: 21 additions & 1 deletion src/main/java/com/eventu/vo/Event.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import io.quarkus.mongodb.panache.reactive.ReactivePanacheMongoEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.codecs.pojo.annotations.BsonIgnore;
import org.bson.types.ObjectId;

import java.util.Map;
Expand All @@ -23,6 +24,25 @@ public class Event extends ReactivePanacheMongoEntity {
public String eventUrl;
public ObjectId personId;
public Map<String, SubEventSummary> subEventSummaryMap;
public ObjectId venueAddress;
@BsonIgnore
private String addressLine_1;
@BsonIgnore
private String addressLine_2;
@BsonIgnore
private String roomNumber;
@BsonIgnore
private String floorNumber;
@BsonIgnore
private String suiteNumber;
@BsonIgnore
private String city;
@BsonIgnore
private String state;
@BsonIgnore
private String zipCode;
@BsonIgnore
private String countryCode;
}


}

0 comments on commit a4660ac

Please sign in to comment.