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.organizations.importer.ImportExecution;
|
||||
import eu.dnetlib.organizations.importer.ImportExecutor;
|
||||
import eu.dnetlib.organizations.model.PersistentOrganization;
|
||||
import eu.dnetlib.organizations.model.SystemConfiguration;
|
||||
import eu.dnetlib.organizations.model.utils.VocabularyTerm;
|
||||
import eu.dnetlib.organizations.model.view.PersistentOrganizationView;
|
||||
import eu.dnetlib.organizations.model.view.UserView;
|
||||
import eu.dnetlib.organizations.repository.PersistentOrganizationRepository;
|
||||
import eu.dnetlib.organizations.repository.SystemConfigurationRepository;
|
||||
import eu.dnetlib.organizations.repository.UserRepository;
|
||||
import eu.dnetlib.organizations.repository.readonly.PersistentOrganizationViewRepository;
|
||||
import eu.dnetlib.organizations.repository.readonly.UserViewRepository;
|
||||
import eu.dnetlib.organizations.utils.DatabaseUtils;
|
||||
import eu.dnetlib.organizations.utils.MailDispatcher;
|
||||
|
@ -42,12 +39,6 @@ public class AdminController extends AbstractDnetController {
|
|||
@Autowired
|
||||
private UserViewRepository userViewRepository;
|
||||
|
||||
@Autowired
|
||||
private PersistentOrganizationRepository persistentOrganizationRepository;
|
||||
|
||||
@Autowired
|
||||
private PersistentOrganizationViewRepository persistentOrganizationViewRepository;
|
||||
|
||||
@Autowired
|
||||
private SystemConfigurationRepository systemConfigurationRepository;
|
||||
|
||||
|
@ -215,19 +206,19 @@ public class AdminController extends AbstractDnetController {
|
|||
|
||||
@GetMapping("/api/persistentOrgs")
|
||||
public Iterable<PersistentOrganizationView> listPersistentOrgs() {
|
||||
return persistentOrganizationViewRepository.findAll();
|
||||
return dbUtils.listPersistentOrgs();
|
||||
}
|
||||
|
||||
@PostMapping("/api/persistentOrgs")
|
||||
public Iterable<PersistentOrganizationView> addPersistentOrgs(@RequestBody final List<String> ids) {
|
||||
ids.forEach(id -> persistentOrganizationRepository.save(new PersistentOrganization(id)));
|
||||
return persistentOrganizationViewRepository.findAll();
|
||||
ids.forEach(id -> dbUtils.addPersistentOrgs(id));
|
||||
return dbUtils.listPersistentOrgs();
|
||||
}
|
||||
|
||||
@DeleteMapping("/api/persistentOrgs")
|
||||
public Iterable<PersistentOrganizationView> deletePersistentOrgs(@RequestParam final String id) {
|
||||
persistentOrganizationRepository.deleteById(id);
|
||||
return persistentOrganizationViewRepository.findAll();
|
||||
dbUtils.deletePersistentOrgs(id);
|
||||
return dbUtils.listPersistentOrgs();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ import eu.dnetlib.organizations.model.OpenaireDuplicate;
|
|||
import eu.dnetlib.organizations.model.Organization;
|
||||
import eu.dnetlib.organizations.model.OtherIdentifier;
|
||||
import eu.dnetlib.organizations.model.OtherName;
|
||||
import eu.dnetlib.organizations.model.PersistentOrganization;
|
||||
import eu.dnetlib.organizations.model.Relationship;
|
||||
import eu.dnetlib.organizations.model.Url;
|
||||
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.VocabularyTerm;
|
||||
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.repository.AcronymRepository;
|
||||
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.OtherIdentifierRepository;
|
||||
import eu.dnetlib.organizations.repository.OtherNameRepository;
|
||||
import eu.dnetlib.organizations.repository.PersistentOrganizationRepository;
|
||||
import eu.dnetlib.organizations.repository.RelationshipRepository;
|
||||
import eu.dnetlib.organizations.repository.UrlRepository;
|
||||
import eu.dnetlib.organizations.repository.UserCountryRepository;
|
||||
import eu.dnetlib.organizations.repository.UserRepository;
|
||||
import eu.dnetlib.organizations.repository.readonly.OrganizationViewRepository;
|
||||
import eu.dnetlib.organizations.repository.readonly.PersistentOrganizationViewRepository;
|
||||
|
||||
@Component
|
||||
public class DatabaseUtils {
|
||||
|
@ -87,6 +91,10 @@ public class DatabaseUtils {
|
|||
private OrganizationViewRepository organizationViewRepository;
|
||||
@Autowired
|
||||
private JournalEntryRepository journalEntryRepository;
|
||||
@Autowired
|
||||
private PersistentOrganizationRepository persistentOrganizationRepository;
|
||||
@Autowired
|
||||
private PersistentOrganizationViewRepository persistentOrganizationViewRepository;
|
||||
|
||||
@Autowired
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
|
@ -585,4 +593,24 @@ public class DatabaseUtils {
|
|||
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