package eu.eudat.controllers; import eu.eudat.dao.entities.*; import eu.eudat.managers.DatasetManager; import eu.eudat.managers.DatasetWizardManager; import eu.eudat.managers.UserManager; import eu.eudat.models.dataset.DatasetTableRequest; import eu.eudat.models.datasetwizard.DataManagentPlanListingModel; import eu.eudat.models.datasetwizard.DatasetProfileWizardAutocompleteRequest; import eu.eudat.models.datasetwizard.DatasetWizardAutocompleteRequest; import eu.eudat.models.datasetwizard.DatasetWizardModel; import eu.eudat.models.dmp.AssociatedProfile; import eu.eudat.models.dmp.DataManagementPlan; import eu.eudat.models.helpers.DataTableData; import eu.eudat.models.helpers.responses.ResponseItem; import eu.eudat.models.listingmodels.DatasetListingModel; import eu.eudat.models.security.Principal; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; import javax.transaction.Transactional; import java.util.List; import java.util.Map; /** * Created by ikalyvas on 12/20/2017. */ @RestController @CrossOrigin @RequestMapping( value = { "/datasetwizard" }) public class DatasetWizardController { @Autowired private DataRepositoryDao dataRepositoryDao; @Autowired private DatasetDao datasetDao; @Autowired private DatasetProfileDao datasetProfileDao; @Autowired private DatasetProfileRulesetDao datasetProfileRulesetDao; @Autowired private DatasetProfileViewstyleDao datasetProfileViewstyleDao; @Autowired private DMPDao dMPDao; @Autowired private DMPProfileDao dMPProfileDao; @Autowired private OrganisationDao organisationDao; @Autowired private ProjectDao projectDao; @Autowired private RegistryDao registryDao; @Autowired private ResearcherDao researcherDao; @Autowired private ServiceDao serviceDao; @Autowired private UserInfoDao userInfoDao; @RequestMapping(method = RequestMethod.POST, value = { "/userDmps" }, produces="application/json") public @ResponseBody ResponseItem> getUserDmps(@RequestBody DatasetWizardAutocompleteRequest datasetWizardAutocompleteRequest, Principal principal) { try { List dataManagementPlans = DatasetWizardManager.getUserDmps(dMPDao,datasetWizardAutocompleteRequest,principal); return new ResponseItem>().status(HttpStatus.OK).payload(dataManagementPlans); } catch (Exception ex) { ex.printStackTrace(); return new ResponseItem>().status(HttpStatus.BAD_REQUEST).message(ex.getMessage()); } } @RequestMapping(method = RequestMethod.POST, value = { "/getAvailableProfiles" }, produces="application/json") public @ResponseBody ResponseItem> getAvailableProfiles(@RequestBody DatasetProfileWizardAutocompleteRequest datasetProfileWizardAutocompleteRequest, Principal principal) { try { List dataManagementPlans = DatasetWizardManager.getAvailableProfiles(dMPDao,datasetProfileWizardAutocompleteRequest); return new ResponseItem>().status(HttpStatus.OK).payload(dataManagementPlans); } catch (Exception ex) { ex.printStackTrace(); return new ResponseItem>().status(HttpStatus.BAD_REQUEST).message(ex.getMessage()); } } @RequestMapping(method = RequestMethod.GET, value = { "/getSingle/{id}" }, produces="application/json") public @ResponseBody ResponseItem getPaged(@PathVariable String id) { try { DatasetWizardModel dataset = new DatasetManager().getSingle(datasetDao, id); return new ResponseItem().status(HttpStatus.OK).payload(dataset); } catch (Exception ex) { ex.printStackTrace(); return new ResponseItem().status(HttpStatus.OK).message(ex.getMessage()); } } @Transactional @RequestMapping(method = RequestMethod.POST, value = { "/createOrUpdate" }, produces="application/json") public @ResponseBody ResponseItem createOrUpdate(@RequestBody DatasetWizardModel profile) { try { eu.eudat.entities.Dataset dataset= DatasetManager.createOrUpdate(datasetDao, dataRepositoryDao,serviceDao,registryDao,profile); return new ResponseItem().status(HttpStatus.OK).payload(dataset); } catch (Exception ex) { ex.printStackTrace(); return new ResponseItem().status(HttpStatus.BAD_REQUEST).message(ex.getMessage()); } } }