Last active
March 12, 2018 12:33
-
-
Save james-d/f5ab7472b471e8dc28d5 to your computer and use it in GitHub Desktop.
Rest controllers for the Laboratory information management system. See also https://gist.github.com/james-d/ab72b487b7b12bb7a3bc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package edu.marshall.genomics.lims.web; | |
import java.util.List; | |
import javax.inject.Inject; | |
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.RestController; | |
import edu.marshall.genomics.lims.entities.Investigator; | |
import edu.marshall.genomics.lims.service.LimsService; | |
@RestController | |
@RequestMapping("/investigators") | |
public class InvestigatorController { | |
private LimsService limsService ; | |
public LimsService getLimsService() { | |
return limsService; | |
} | |
@Inject | |
public void setLimsService(LimsService limsService) { | |
this.limsService = limsService; | |
} | |
@RequestMapping(method=RequestMethod.GET, produces="application/json") | |
public List<Investigator> getInvestigators() { | |
return limsService.getAllInvestigators() ; | |
} | |
@RequestMapping(method=RequestMethod.POST, consumes="application/json", produces="application/json") | |
public void addInvestigators(@RequestBody List<Investigator> investigators) { | |
limsService.addInvestigators(investigators); | |
} | |
@RequestMapping(method=RequestMethod.PUT, consumes="application/json") | |
public void updateInvestigator(@RequestBody Investigator investigator) { | |
limsService.updateInvestigator(investigator); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package edu.marshall.genomics.lims.web; | |
import java.util.List; | |
import java.util.stream.Collectors; | |
import javax.inject.Inject; | |
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.RestController; | |
import edu.marshall.genomics.lims.entities.Investigator; | |
import edu.marshall.genomics.lims.entities.Project; | |
import edu.marshall.genomics.lims.service.LimsService; | |
@RestController | |
@RequestMapping("/projects") | |
public class ProjectController { | |
private LimsService limsService ; | |
public LimsService getLimsService() { | |
return limsService; | |
} | |
@Inject | |
public void setLimsService(LimsService limsService) { | |
this.limsService = limsService; | |
} | |
@RequestMapping(method=RequestMethod.GET, produces="application/json") | |
public List<Project> getAllProjects() { | |
return limsService.getAllProjects() ; | |
} | |
@RequestMapping(value="/{investigatorId}", method=RequestMethod.GET, produces="application/json") | |
public List<Project> getProjectsByinvestigatorId( | |
@PathVariable("investigatorId") int investigatorId | |
) { | |
Investigator investigator = limsService.getInvestigatorById(investigatorId); | |
return limsService.getProjectsByInvestigator(investigator); | |
} | |
@RequestMapping(method=RequestMethod.POST, consumes="application/json") | |
public List<Integer> addProjects(@RequestBody List<Project> projects) { | |
limsService.addProjects(projects); | |
return projects.stream().map(Project::getId).collect(Collectors.toList()); | |
} | |
@RequestMapping(method=RequestMethod.PUT, consumes="application/json") | |
public void updateProject(@RequestBody Project project) { | |
limsService.updateProject(project); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package edu.marshall.genomics.lims.web; | |
import java.util.ArrayList; | |
import java.util.List; | |
import java.util.stream.Collectors; | |
import javax.inject.Inject; | |
import org.slf4j.Logger; | |
import org.slf4j.LoggerFactory; | |
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.RestController; | |
import edu.marshall.genomics.lims.entities.Project; | |
import edu.marshall.genomics.lims.entities.Sample; | |
import edu.marshall.genomics.lims.service.LimsService; | |
@RestController | |
@RequestMapping("/samples") | |
public class SampleController { | |
private LimsService limsService ; | |
private Logger logger = LoggerFactory.getLogger(getClass()); | |
public LimsService getLimsService() { | |
return limsService; | |
} | |
@Inject | |
public void setLimsService(LimsService limsService) { | |
this.limsService = limsService; | |
} | |
@RequestMapping(method=RequestMethod.GET, value="/{projectId}", produces="application/json") | |
public List<Sample> getSamplesByProject(@PathVariable("projectId") int projectId) { | |
Project project = limsService.getProjectById(projectId); | |
return limsService.getSamplesByProject(project); | |
} | |
@RequestMapping(method=RequestMethod.POST, consumes="application/json") | |
public List<Integer> addSamples(@RequestBody ArrayList<Sample> samples) { | |
System.out.println("adding "+samples); | |
logger.trace("adding "+samples); | |
limsService.addSamples(samples); | |
return samples.stream().map(Sample::getId).collect(Collectors.toList()); | |
} | |
@RequestMapping(method=RequestMethod.PUT, consumes="application/json") | |
public void updateSample(@RequestBody Sample sample) { | |
limsService.updateSample(sample); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment