content: package com.ctrip.framework.apollo.portal.controller;
  
  import com.ctrip.framework.apollo.portal.entity.po.Favorite;
  import com.ctrip.framework.apollo.portal.service.FavoriteService;
  
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.data.domain.Pageable;
  import org.springframework.web.bind.annotation.PathVariable;
  import org.springframework.web.bind.annotation.RequestBody;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RequestMethod;
  import org.springframework.web.bind.annotation.RequestParam;
  import org.springframework.web.bind.annotation.RestController;
  
  import java.util.List;
  
  @RestController
  public class FavoriteController {
  
    @Autowired
    private FavoriteService favoriteService;
  
  
    @RequestMapping(value = "/favorites", method = RequestMethod.POST)
    public Favorite addFavorite(@RequestBody Favorite favorite) {
      return favoriteService.addFavorite(favorite);
    }
  
  
    @RequestMapping(value = "/favorites", method = RequestMethod.GET)
    public List<Favorite> findFavorites(@RequestParam(value = "userId", required = false) String userId,
                                        @RequestParam(value = "appId", required = false) String appId,
                                        Pageable page) {
      return favoriteService.search(userId, appId, page);
    }
  
  
    @RequestMapping(value = "/favorites/{favoriteId}", method = RequestMethod.DELETE)
    public void deleteFavorite(@PathVariable long favoriteId) {
      favoriteService.deleteFavorite(favoriteId);
    }
  
  
    @RequestMapping(value = "/favorites/{favoriteId}", method = RequestMethod.PUT)
    public void toTop(@PathVariable long favoriteId) {
      favoriteService.adjustFavoriteToFirst(favoriteId);
    }
  
  }
  