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 eu.eudat.services.ApiContext; 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 extends BaseController{ @Autowired public DatasetWizardController(ApiContext apiContext) { super(apiContext); } @RequestMapping(method = RequestMethod.POST, value = { "/userDmps" }, produces="application/json") public @ResponseBody ResponseItem> getUserDmps(@RequestBody DatasetWizardAutocompleteRequest datasetWizardAutocompleteRequest, Principal principal) { try { List dataManagementPlans = DatasetWizardManager.getUserDmps(this.getApiContext().getDatabaseRepository().getDmpDao(),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(this.getApiContext().getDatabaseRepository().getDmpDao(),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(this.getApiContext().getDatabaseRepository().getDatasetDao(), id); return new ResponseItem().status(HttpStatus.OK).payload(dataset); } catch (Exception ex) { ex.printStackTrace(); return new ResponseItem().status(HttpStatus.BAD_REQUEST).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(this.getApiContext(),profile); return new ResponseItem().status(HttpStatus.OK).payload(dataset); } catch (Exception ex) { ex.printStackTrace(); return new ResponseItem().status(HttpStatus.BAD_REQUEST).message(ex.getMessage()); } } }