opencv/src/main/java/pl/edu/amu/wmi/bookapi/repositories/BookRepositoryCustomImpl.java

32 lines
1.3 KiB
Java

package pl.edu.amu.wmi.bookapi.repositories;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.FindAndModifyOptions;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import pl.edu.amu.wmi.bookapi.api.dto.BookDto;
import pl.edu.amu.wmi.bookapi.models.BookDocument;
public class BookRepositoryCustomImpl implements BookRepositoryCustom {
@Autowired
MongoTemplate mongoTemplate;
@Override
public BookDocument updateBook(String bookId, String userId, BookDto bookDto) {
Update update = new Update();
if(bookDto.getAuthor() != null) update.set("author", bookDto.getAuthor());
if(bookDto.getEan() != null) update.set("ean", bookDto.getEan());
if(bookDto.getTitle() != null) update.set("title", bookDto.getTitle());
return mongoTemplate.findAndModify(
new Query(
Criteria
.where("ownerUsername").is(userId)
.and("id").is(bookId)
), update, FindAndModifyOptions.options().returnNew(true), BookDocument.class
);
}
}