/** * Suppression d'une talk * * @param event * @return */ @Override public DeletedEvent<Talk> deleteTalk(Talk event) { Preconditions.checkNotNull(event); Preconditions.checkNotNull(event.getId(), "talk is required to delete talk"); // Recherche de l'element par l'id Talk talk = talkRepository.findOne(event.getId()); DeletedEvent<Talk> eventReturned = null; if (talk != null) { talkRepository.delete(talk); eventReturned = new DeletedEvent(true, new TalkDetail(talk)); LOG.debug( String.format( "Suppression du talk ayant id=[%s] UUID:%s", event.getId(), eventReturned.getKey().toString())); } else { eventReturned = new DeletedEvent(false, null); LOG.debug( String.format( "Le talk ayant id=[%s] n'existe pas UUID:%s", event.getId(), eventReturned.getKey().toString())); } return eventReturned; }
/** * Recuperation d'un talk vi a son ID * * @param event * @return */ @Override public Talk getTalk(Talk event) { Preconditions.checkNotNull(event); Preconditions.checkNotNull(event.getId(), "id is required for search talk"); // Recherche de l'element par l'id return talkRepository.findOne(event.getId()); }
@Override public UpdatedEvent<Talk> updateTalk(Talk event) { Preconditions.checkNotNull(event); Preconditions.checkNotNull(event.getId(), "talk is required to update it"); Talk talkUpdated = transformAndSaveTalkDetailToTalk(event, false); UpdatedEvent<Talk> eventReturned = new UpdatedEvent(talkUpdated != null, talkUpdated); LOG.debug( String.format( "Modification du talk ayant id=[%d] name=[%s] UUID:%s", talkUpdated != null ? talkUpdated.getId() : null, talkUpdated != null ? talkUpdated.getName() : null, eventReturned.getKey().toString())); return eventReturned; }
/** * Permet de convertir la donnée reçue * * @param talk * @return */ private Talk transformAndSaveTalkDetailToTalk(Talk talk, boolean creation) { // Si pas en creation on regarde si enreg existe if (!creation) { Talk talkToPersist = talkRepository.findOne(talk.getId()); if (talkToPersist == null) { return null; } talkToPersist.setLevel(talk.getLevel()); talkToPersist.setNbpeoplemax(talk.getNbpeoplemax()); talkToPersist.setPlace(talk.getPlace()); talkToPersist.setDescription(talk.getDescription()); talkToPersist.setName(talk.getName()); return talkToPersist; } else { // On enregistre return talkRepository.save(talk); } }