a control on the persistent orgs
This commit is contained in:
parent
75d002c8ba
commit
1ccb1c266f
|
@ -20,15 +20,12 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
import eu.dnetlib.common.controller.AbstractDnetController;
|
import eu.dnetlib.common.controller.AbstractDnetController;
|
||||||
import eu.dnetlib.organizations.importer.ImportExecution;
|
import eu.dnetlib.organizations.importer.ImportExecution;
|
||||||
import eu.dnetlib.organizations.importer.ImportExecutor;
|
import eu.dnetlib.organizations.importer.ImportExecutor;
|
||||||
import eu.dnetlib.organizations.model.PersistentOrganization;
|
|
||||||
import eu.dnetlib.organizations.model.SystemConfiguration;
|
import eu.dnetlib.organizations.model.SystemConfiguration;
|
||||||
import eu.dnetlib.organizations.model.utils.VocabularyTerm;
|
import eu.dnetlib.organizations.model.utils.VocabularyTerm;
|
||||||
import eu.dnetlib.organizations.model.view.PersistentOrganizationView;
|
import eu.dnetlib.organizations.model.view.PersistentOrganizationView;
|
||||||
import eu.dnetlib.organizations.model.view.UserView;
|
import eu.dnetlib.organizations.model.view.UserView;
|
||||||
import eu.dnetlib.organizations.repository.PersistentOrganizationRepository;
|
|
||||||
import eu.dnetlib.organizations.repository.SystemConfigurationRepository;
|
import eu.dnetlib.organizations.repository.SystemConfigurationRepository;
|
||||||
import eu.dnetlib.organizations.repository.UserRepository;
|
import eu.dnetlib.organizations.repository.UserRepository;
|
||||||
import eu.dnetlib.organizations.repository.readonly.PersistentOrganizationViewRepository;
|
|
||||||
import eu.dnetlib.organizations.repository.readonly.UserViewRepository;
|
import eu.dnetlib.organizations.repository.readonly.UserViewRepository;
|
||||||
import eu.dnetlib.organizations.utils.DatabaseUtils;
|
import eu.dnetlib.organizations.utils.DatabaseUtils;
|
||||||
import eu.dnetlib.organizations.utils.MailDispatcher;
|
import eu.dnetlib.organizations.utils.MailDispatcher;
|
||||||
|
@ -42,12 +39,6 @@ public class AdminController extends AbstractDnetController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserViewRepository userViewRepository;
|
private UserViewRepository userViewRepository;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PersistentOrganizationRepository persistentOrganizationRepository;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PersistentOrganizationViewRepository persistentOrganizationViewRepository;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SystemConfigurationRepository systemConfigurationRepository;
|
private SystemConfigurationRepository systemConfigurationRepository;
|
||||||
|
|
||||||
|
@ -215,19 +206,19 @@ public class AdminController extends AbstractDnetController {
|
||||||
|
|
||||||
@GetMapping("/api/persistentOrgs")
|
@GetMapping("/api/persistentOrgs")
|
||||||
public Iterable<PersistentOrganizationView> listPersistentOrgs() {
|
public Iterable<PersistentOrganizationView> listPersistentOrgs() {
|
||||||
return persistentOrganizationViewRepository.findAll();
|
return dbUtils.listPersistentOrgs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/api/persistentOrgs")
|
@PostMapping("/api/persistentOrgs")
|
||||||
public Iterable<PersistentOrganizationView> addPersistentOrgs(@RequestBody final List<String> ids) {
|
public Iterable<PersistentOrganizationView> addPersistentOrgs(@RequestBody final List<String> ids) {
|
||||||
ids.forEach(id -> persistentOrganizationRepository.save(new PersistentOrganization(id)));
|
ids.forEach(id -> dbUtils.addPersistentOrgs(id));
|
||||||
return persistentOrganizationViewRepository.findAll();
|
return dbUtils.listPersistentOrgs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("/api/persistentOrgs")
|
@DeleteMapping("/api/persistentOrgs")
|
||||||
public Iterable<PersistentOrganizationView> deletePersistentOrgs(@RequestParam final String id) {
|
public Iterable<PersistentOrganizationView> deletePersistentOrgs(@RequestParam final String id) {
|
||||||
persistentOrganizationRepository.deleteById(id);
|
dbUtils.deletePersistentOrgs(id);
|
||||||
return persistentOrganizationViewRepository.findAll();
|
return dbUtils.listPersistentOrgs();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ import eu.dnetlib.organizations.model.OpenaireDuplicate;
|
||||||
import eu.dnetlib.organizations.model.Organization;
|
import eu.dnetlib.organizations.model.Organization;
|
||||||
import eu.dnetlib.organizations.model.OtherIdentifier;
|
import eu.dnetlib.organizations.model.OtherIdentifier;
|
||||||
import eu.dnetlib.organizations.model.OtherName;
|
import eu.dnetlib.organizations.model.OtherName;
|
||||||
|
import eu.dnetlib.organizations.model.PersistentOrganization;
|
||||||
import eu.dnetlib.organizations.model.Relationship;
|
import eu.dnetlib.organizations.model.Relationship;
|
||||||
import eu.dnetlib.organizations.model.Url;
|
import eu.dnetlib.organizations.model.Url;
|
||||||
import eu.dnetlib.organizations.model.User;
|
import eu.dnetlib.organizations.model.User;
|
||||||
|
@ -46,6 +47,7 @@ import eu.dnetlib.organizations.model.utils.OrganizationConflict;
|
||||||
import eu.dnetlib.organizations.model.utils.TempBrowseEntry;
|
import eu.dnetlib.organizations.model.utils.TempBrowseEntry;
|
||||||
import eu.dnetlib.organizations.model.utils.VocabularyTerm;
|
import eu.dnetlib.organizations.model.utils.VocabularyTerm;
|
||||||
import eu.dnetlib.organizations.model.view.OrganizationView;
|
import eu.dnetlib.organizations.model.view.OrganizationView;
|
||||||
|
import eu.dnetlib.organizations.model.view.PersistentOrganizationView;
|
||||||
import eu.dnetlib.organizations.model.view.UserView;
|
import eu.dnetlib.organizations.model.view.UserView;
|
||||||
import eu.dnetlib.organizations.repository.AcronymRepository;
|
import eu.dnetlib.organizations.repository.AcronymRepository;
|
||||||
import eu.dnetlib.organizations.repository.JournalEntryRepository;
|
import eu.dnetlib.organizations.repository.JournalEntryRepository;
|
||||||
|
@ -54,11 +56,13 @@ import eu.dnetlib.organizations.repository.OpenaireDuplicateRepository;
|
||||||
import eu.dnetlib.organizations.repository.OrganizationRepository;
|
import eu.dnetlib.organizations.repository.OrganizationRepository;
|
||||||
import eu.dnetlib.organizations.repository.OtherIdentifierRepository;
|
import eu.dnetlib.organizations.repository.OtherIdentifierRepository;
|
||||||
import eu.dnetlib.organizations.repository.OtherNameRepository;
|
import eu.dnetlib.organizations.repository.OtherNameRepository;
|
||||||
|
import eu.dnetlib.organizations.repository.PersistentOrganizationRepository;
|
||||||
import eu.dnetlib.organizations.repository.RelationshipRepository;
|
import eu.dnetlib.organizations.repository.RelationshipRepository;
|
||||||
import eu.dnetlib.organizations.repository.UrlRepository;
|
import eu.dnetlib.organizations.repository.UrlRepository;
|
||||||
import eu.dnetlib.organizations.repository.UserCountryRepository;
|
import eu.dnetlib.organizations.repository.UserCountryRepository;
|
||||||
import eu.dnetlib.organizations.repository.UserRepository;
|
import eu.dnetlib.organizations.repository.UserRepository;
|
||||||
import eu.dnetlib.organizations.repository.readonly.OrganizationViewRepository;
|
import eu.dnetlib.organizations.repository.readonly.OrganizationViewRepository;
|
||||||
|
import eu.dnetlib.organizations.repository.readonly.PersistentOrganizationViewRepository;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class DatabaseUtils {
|
public class DatabaseUtils {
|
||||||
|
@ -87,6 +91,10 @@ public class DatabaseUtils {
|
||||||
private OrganizationViewRepository organizationViewRepository;
|
private OrganizationViewRepository organizationViewRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private JournalEntryRepository journalEntryRepository;
|
private JournalEntryRepository journalEntryRepository;
|
||||||
|
@Autowired
|
||||||
|
private PersistentOrganizationRepository persistentOrganizationRepository;
|
||||||
|
@Autowired
|
||||||
|
private PersistentOrganizationViewRepository persistentOrganizationViewRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private JdbcTemplate jdbcTemplate;
|
private JdbcTemplate jdbcTemplate;
|
||||||
|
@ -585,4 +593,24 @@ public class DatabaseUtils {
|
||||||
return jdbcTemplate.queryForList(sql, String.class);
|
return jdbcTemplate.queryForList(sql, String.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Iterable<PersistentOrganizationView> listPersistentOrgs() {
|
||||||
|
return persistentOrganizationViewRepository.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addPersistentOrgs(final String id) {
|
||||||
|
final boolean valid = organizationRepository.findById(id)
|
||||||
|
.map(Organization::getStatus)
|
||||||
|
.filter(s -> s.equals(OrganizationStatus.approved.toString()))
|
||||||
|
.isPresent();
|
||||||
|
if (valid) {
|
||||||
|
persistentOrganizationRepository.save(new PersistentOrganization(id));
|
||||||
|
} else {
|
||||||
|
throw new RuntimeException("The ID does not refer to an approved Organization");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deletePersistentOrgs(final String id) {
|
||||||
|
persistentOrganizationRepository.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue