no message
This commit is contained in:
parent
173345ed17
commit
b722e5d886
|
@ -88,6 +88,17 @@ public class Datasets {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.GET, value = { "/datasets/createOrUpdate" }, produces="application/json")
|
||||||
|
public @ResponseBody ResponseItem<eu.eudat.models.dataset.Dataset> createOrUpdate(@PathVariable eu.eudat.models.dataset.Dataset profile) {
|
||||||
|
try {
|
||||||
|
DatasetManager.createOrUpdate(datasetDao, dataRepositoryDao,serviceDao,registryDao,profile);
|
||||||
|
return new ResponseItem<eu.eudat.models.dataset.Dataset>().status(HttpStatus.OK);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
return new ResponseItem<eu.eudat.models.dataset.Dataset>().status(HttpStatus.BAD_REQUEST).message(ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package eu.eudat.managers;
|
package eu.eudat.managers;
|
||||||
|
|
||||||
import eu.eudat.dao.entities.DatasetDao;
|
import eu.eudat.dao.entities.*;
|
||||||
import eu.eudat.dao.entities.ProjectDao;
|
import eu.eudat.models.criteria.DataRepositoryCriteria;
|
||||||
|
import eu.eudat.models.criteria.RegistryCriteria;
|
||||||
|
import eu.eudat.models.criteria.ServiceCriteria;
|
||||||
import eu.eudat.models.dataset.Dataset;
|
import eu.eudat.models.dataset.Dataset;
|
||||||
import eu.eudat.models.dataset.DatasetTableRequest;
|
import eu.eudat.models.dataset.DatasetTableRequest;
|
||||||
import eu.eudat.models.helpers.DataTableData;
|
import eu.eudat.models.helpers.DataTableData;
|
||||||
|
@ -35,4 +37,50 @@ public class DatasetManager {
|
||||||
return dataset;
|
return dataset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void createOrUpdate(DatasetDao datatasetRepository, DataRepositoryDao dataRepositoryDao, ServiceDao serviceDao, RegistryDao registryDao, Dataset profile) throws InstantiationException, IllegalAccessException{
|
||||||
|
eu.eudat.entities.Dataset dataset = profile.toDataModel();
|
||||||
|
createRegistriesIfTheyDontExist(registryDao,dataset);
|
||||||
|
createDataRepositoriesIfTheyDontExist(dataRepositoryDao,dataset);
|
||||||
|
createServicesIfTheyDontExist(serviceDao,dataset);
|
||||||
|
datatasetRepository.createOrUpdate(dataset);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static void createRegistriesIfTheyDontExist(RegistryDao registryDao, eu.eudat.entities.Dataset dataset){
|
||||||
|
if(dataset.getRegistries()!=null&&!dataset.getRegistries().isEmpty()){
|
||||||
|
for(eu.eudat.entities.Registry registry : dataset.getRegistries()){
|
||||||
|
RegistryCriteria criteria = new RegistryCriteria();
|
||||||
|
criteria.setLike(registry.getReference());
|
||||||
|
List<eu.eudat.entities.Registry> entries = registryDao.listBy(criteria);
|
||||||
|
if(entries!=null&&!entries.isEmpty())registry.setId( entries.get(0).getId());
|
||||||
|
else registry = registryDao.create(registry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void createServicesIfTheyDontExist(ServiceDao serviceDao,eu.eudat.entities.Dataset dataset){
|
||||||
|
if(dataset.getServices()!=null&&!dataset.getServices().isEmpty()){
|
||||||
|
for(eu.eudat.entities.Service service : dataset.getServices()){
|
||||||
|
ServiceCriteria criteria = new ServiceCriteria();
|
||||||
|
criteria.setLike(service.getReference());
|
||||||
|
List<eu.eudat.entities.Service> entries = serviceDao.listBy(criteria);
|
||||||
|
if(entries!=null&&!entries.isEmpty())service.setId(entries.get(0).getId());
|
||||||
|
else service = serviceDao.create(service);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void createDataRepositoriesIfTheyDontExist(DataRepositoryDao dataRepositoryDao,eu.eudat.entities.Dataset dataset){
|
||||||
|
if(dataset.getDataRepositories()!=null&&!dataset.getDataRepositories().isEmpty()){
|
||||||
|
for(eu.eudat.entities.DataRepository dataRepo : dataset.getDataRepositories()){
|
||||||
|
DataRepositoryCriteria criteria = new DataRepositoryCriteria();
|
||||||
|
criteria.setLike(dataRepo.getReference());
|
||||||
|
List<eu.eudat.entities.DataRepository> entries = dataRepositoryDao.listBy(criteria);
|
||||||
|
if(entries!=null&&!entries.isEmpty())dataRepo.setId(entries.get(0).getId());
|
||||||
|
else dataRepo = dataRepositoryDao.createOrUpdate(dataRepo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,8 +27,8 @@ const appRoutes: Routes = [
|
||||||
{ path: 'dmps/new', component: DataManagementPlanEditorComponent, canActivate: [AuthGuard] },
|
{ path: 'dmps/new', component: DataManagementPlanEditorComponent, canActivate: [AuthGuard] },
|
||||||
{ path: 'datasets', component: DatasetListingComponent, canActivate: [AuthGuard] },
|
{ path: 'datasets', component: DatasetListingComponent, canActivate: [AuthGuard] },
|
||||||
{ path: 'dataset/new', component: DatasetWizardComponent, canActivate: [AuthGuard] },
|
{ path: 'dataset/new', component: DatasetWizardComponent, canActivate: [AuthGuard] },
|
||||||
{ path: 'dataset/:id', component: DatasetEditorComponent, canActivate: [AuthGuard] },
|
{ path: 'dataset/:id', component: DatasetWizardComponent, canActivate: [AuthGuard] },
|
||||||
{ path: 'datasets/new', component: DatasetEditorComponent, canActivate: [AuthGuard] },
|
{ path: 'datasets/new', component: DatasetWizardComponent, canActivate: [AuthGuard] },
|
||||||
|
|
||||||
{ path: 'login', component: LoginComponent },
|
{ path: 'login', component: LoginComponent },
|
||||||
{ path: "unauthorized", loadChildren: './unauthorized/unauthorized.module#UnauthorizedModule' },
|
{ path: "unauthorized", loadChildren: './unauthorized/unauthorized.module#UnauthorizedModule' },
|
||||||
|
|
|
@ -35,6 +35,6 @@ export class DatasetService {
|
||||||
}
|
}
|
||||||
|
|
||||||
createDataset(datasetModel: DatasetModel): Observable<DatasetModel> {
|
createDataset(datasetModel: DatasetModel): Observable<DatasetModel> {
|
||||||
return this.http.post<DatasetModel>(this.actionUrl + 'add', datasetModel, { headers: this.headers });
|
return this.http.post<DatasetModel>(this.actionUrl + 'createOrUpdate', datasetModel, { headers: this.headers });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue