argos/dmp-backend/web/src/main/java/eu/eudat/migration/controllers/MigrateController.java

52 lines
2.0 KiB
Java

package eu.eudat.migration.controllers;
import eu.eudat.data.entities.DatasetProfile;
import eu.eudat.migration.dao.TemplateRepository;
import eu.eudat.migration.entities.Template;
import eu.eudat.migration.entities.User;
import eu.eudat.migration.services.DMPRoadmapService;
import eu.eudat.models.data.helpers.responses.ResponseItem;
import eu.eudat.types.ApiMessageCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.UUID;
@RestController
@RequestMapping("/")
@ConditionalOnProperty(prefix = "roadmap", name="database.url")
public class MigrateController {
private final DMPRoadmapService roadmapMigration;
@Autowired
public MigrateController(DMPRoadmapService roadmapMigration) {
this.roadmapMigration = roadmapMigration;
}
@GetMapping(path = "template/all", produces = "application/json")
public ResponseEntity<List<Template>> getAllTemplates() {
return ResponseEntity.ok(this.roadmapMigration.getTemplates());
}
@GetMapping(path = "template/argos/memory", produces = "application/json")
public ResponseEntity<List<eu.eudat.models.data.admin.composite.DatasetProfile>> getDatasetProfiles() {
return ResponseEntity.ok(this.roadmapMigration.getDatesetProfiles());
}
@GetMapping(path = "user/all", produces = "application/json")
public ResponseEntity<List<User>> getAllUsers() {
return ResponseEntity.ok(this.roadmapMigration.getUsers());
}
@GetMapping(path = "migration/execute", produces = "application/json")
public ResponseEntity<Object> migrate() {
this.roadmapMigration.migrate();
return ResponseEntity.ok(new ResponseItem<UUID>().status(ApiMessageCode.NO_MESSAGE));
}
}