package org.springframework.flex.samples.rest; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.flex.samples.contact.Contact; import org.springframework.flex.samples.contact.IContactDAO; import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; 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; @Controller @RequestMapping("/contacts") public class ContactsController { @Autowired private IContactDAO contactDAO; @RequestMapping(method=RequestMethod.GET) public List<Contact> find(@RequestParam(required=false) String searchStr) { if (StringUtils.hasText(searchStr)) { return contactDAO.findByName(searchStr); } else { return contactDAO.findAll(); } } @RequestMapping(method=RequestMethod.POST) public Contact create(@RequestBody Contact contact) { return contactDAO.create(contact); } @RequestMapping(value="/{id}", method=RequestMethod.PUT) public void update(@PathVariable int id, @RequestBody Contact contact) { if (id != contact.getId()) { //Should actually set an appropriate status code here return; } contactDAO.update(contact); } @RequestMapping(value="/{id}", method=RequestMethod.DELETE) public void delete(@PathVariable int id) { contactDAO.removeById(id); } public void setContactDAO(IContactDAO contactDAO) { this.contactDAO = contactDAO; } }