no message

This commit is contained in:
annabakouli 2017-12-21 12:38:18 +02:00
parent 173345ed17
commit b722e5d886
4 changed files with 64 additions and 5 deletions

View File

@ -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());
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -1,7 +1,9 @@
package eu.eudat.managers;
import eu.eudat.dao.entities.DatasetDao;
import eu.eudat.dao.entities.ProjectDao;
import eu.eudat.dao.entities.*;
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.DatasetTableRequest;
import eu.eudat.models.helpers.DataTableData;
@ -35,4 +37,50 @@ public class DatasetManager {
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);
}
}
}
}

View File

@ -27,8 +27,8 @@ const appRoutes: Routes = [
{ path: 'dmps/new', component: DataManagementPlanEditorComponent, canActivate: [AuthGuard] },
{ path: 'datasets', component: DatasetListingComponent, canActivate: [AuthGuard] },
{ path: 'dataset/new', component: DatasetWizardComponent, canActivate: [AuthGuard] },
{ path: 'dataset/:id', component: DatasetEditorComponent, canActivate: [AuthGuard] },
{ path: 'datasets/new', component: DatasetEditorComponent, canActivate: [AuthGuard] },
{ path: 'dataset/:id', component: DatasetWizardComponent, canActivate: [AuthGuard] },
{ path: 'datasets/new', component: DatasetWizardComponent, canActivate: [AuthGuard] },
{ path: 'login', component: LoginComponent },
{ path: "unauthorized", loadChildren: './unauthorized/unauthorized.module#UnauthorizedModule' },

View File

@ -35,6 +35,6 @@ export class DatasetService {
}
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 });
}
}