Не удалось вернуть данные / ответ от запроса POST - PullRequest
0 голосов
/ 02 февраля 2020

Вот задачи, которые я хочу выполнить: 1) если пользовательский рейтинг отрицательный, я хочу вернуть код 422 статуса 2) если отзыв / заголовок клиента содержит такие слова, как (Корабль, Мисс, Утка, Пунт, Петух, Мать , биты), должен вернуть код состояния 422. 3) иначе я должен вернуть данные из модели.

вот мой класс контроллера

@RestController
public class CustomerReviewController {
    @Autowired
    private ProductDao productDao;

    @Autowired
    private UserDao userDao;

    @Autowired
    private CustomerReviewService customerReviewService;

    @GetMapping({ "products/{productId:\\d+}/reviews" })
    public List<CustomerReviewModel> getReviews(@PathVariable final Long productId,
            @RequestParam(required = false) final Double ratingFrom,
            @RequestParam(required = false) final Double ratingTo) {
        final ProductModel product = productDao.findOne(productId);
        if (product == null) {
            throw new ProductNotFoundException(productId);
        }
        List<CustomerReviewModel> abc = customerReviewService.getReviewsForProduct(product);
        List<CustomerReviewModel> abcd = new ArrayList<CustomerReviewModel>();

        Double start = 0.0d;
        Double end = 0.0d;

        for (int i = 0; i < abc.size(); i++) {
            CustomerReviewModel temp = abc.get(i);
            if (ratingFrom == null && ratingTo == null) {
                return abc;
            } else if (ratingFrom == null) {
                end = ratingTo;
                if (temp.getRating() <= end) {
                    abcd.add(temp);
                }

            }

            else if (ratingTo == null) {
                start = ratingFrom;
                if (temp.getRating() >= start) {
                    abcd.add(temp);
                }
            } else {

                if (ratingFrom < ratingTo) {
                    start = ratingFrom;
                    end = ratingTo;
                } else {
                    start = ratingTo;
                    end = ratingFrom;
                }
                if ((temp.getRating() >= start && temp.getRating() <= end)) {
                    abcd.add(temp);
                }
            }

        }
        return abcd;

    }

    ResponseEntity abc;

    @PostMapping({ "products/{productId:\\d+}/users/{userId:\\d+}/reviews" })
    public CustomerReviewModel createReview(@PathVariable final Long userId, @PathVariable final Long productId,
            @RequestBody final CustomerReviewForm customerReviewForm) {
        final ProductModel product = productDao.findOne(productId);
        if (product == null) {
            throw new ProductNotFoundException(productId);
        }

        final UserModel user = userDao.findOne(userId);
        if (user == null) {
            throw new UserNotFoundException(userId);
        }

        // return new ResponseEntity(HttpStatus.UNPROCESSABLE_ENTITY);

        Set<String> al1 = new HashSet<String>();
        al1.add("Ship");
        al1.add("Miss");
        al1.add("Duck");
        al1.add("Punt");
        al1.add("Rooster");
        al1.add("Mother");
        al1.add("Bits");

        for (String al2 : al1) {
            if ((customerReviewForm.getComment().toLowerCase().contains(al2.toLowerCase()))
                    || (customerReviewForm.getRating() < 0) ||(customerReviewForm.getHeadline().toLowerCase().contains(al2.toLowerCase()))) {
                // abc = getResponse();
                abc = new ResponseEntity(HttpStatus.UNPROCESSABLE_ENTITY);
                //return abc;
            }

        }

        //return abc;
        // return
        return customerReviewService.createCustomerReview(customerReviewForm.getRating(),
         customerReviewForm.getHeadline(), customerReviewForm.getComment(), product,
         user);
    }

    @PostMapping({ "products" })
    public ProductModel createProduct() {
        final ProductModel product = new ProductModel();
        productDao.save(product);
        return product;
    }

    @PostMapping({ "users" })
    public UserModel createUser() {
        final UserModel user = new UserModel();
        userDao.save(user);
        return user;
    }

    @DeleteMapping({ "reviews/{reviewId:\\d+}" })
    public void deleteReview(@PathVariable final Long reviewId) {
        customerReviewService.deleteCustomerReview(reviewId);
    }
}

CustomerReviewFormClass:

public class CustomerReviewForm implements Serializable
{
    private Double rating;
    private String headline;
    private String comment;

Обзор клиента Класс модели:

public class CustomerReviewModel implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String headline;
    private String comment;
    private Double rating;

Если я меняю тип возврата моего метода POST на ResponseEntity, как я могу вернуть данные, когда ответ равен 200.

1 Ответ

1 голос
/ 02 февраля 2020

вы можете сделать что-то вроде этого:

return new ResponseEntity<T>(data, HttpStatus.OK);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...