Service tabs updated
This commit is contained in:
@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.ServiceTile;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.HttpResponse;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.enumeration.ServiceTileCategory;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.service.ServiceTileService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@ -26,10 +27,11 @@ public class ServiceTileResource {
|
||||
public ResponseEntity<ServiceTile> addServiceTile(
|
||||
@RequestParam String title,
|
||||
@RequestParam(required = false) String description,
|
||||
@RequestParam ServiceTileCategory category,
|
||||
@RequestParam(required = false) Integer displayOrder) {
|
||||
|
||||
log.info("Adding new service tile with title: {}", title);
|
||||
ServiceTile serviceTile = serviceTileService.addServiceTile(title, description, displayOrder);
|
||||
log.info("Adding new service tile with title: {} and category: {}", title, category);
|
||||
ServiceTile serviceTile = serviceTileService.addServiceTile(title, description, category, displayOrder);
|
||||
return ResponseEntity.status(HttpStatus.CREATED).body(serviceTile);
|
||||
}
|
||||
|
||||
@ -39,10 +41,11 @@ public class ServiceTileResource {
|
||||
@PathVariable Long id,
|
||||
@RequestParam String title,
|
||||
@RequestParam(required = false) String description,
|
||||
@RequestParam ServiceTileCategory category,
|
||||
@RequestParam(required = false) Integer displayOrder) {
|
||||
|
||||
log.info("Updating service tile with id: {}", id);
|
||||
ServiceTile serviceTile = serviceTileService.updateServiceTile(id, title, description, displayOrder);
|
||||
ServiceTile serviceTile = serviceTileService.updateServiceTile(id, title, description, category, displayOrder);
|
||||
return ResponseEntity.ok(serviceTile);
|
||||
}
|
||||
|
||||
@ -83,7 +86,6 @@ public class ServiceTileResource {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@PutMapping("/{id}/toggle-active")
|
||||
@PreAuthorize("hasAnyAuthority('user:update')")
|
||||
public ResponseEntity<ServiceTile> toggleActiveStatus(@PathVariable Long id) {
|
||||
|
||||
@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.enumeration.ServiceTileCategory;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
@ -27,6 +28,10 @@ public class ServiceTile implements Serializable {
|
||||
@Column(length = 1000)
|
||||
private String description;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(nullable = false)
|
||||
private ServiceTileCategory category;
|
||||
|
||||
@JsonProperty("isActive")
|
||||
@Column(name = "is_active")
|
||||
private boolean isActive;
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
package net.shyshkin.study.fullstack.supportportal.backend.enumeration;
|
||||
|
||||
public enum ServiceTileCategory {
|
||||
TRAUMA_CARE("Trauma Care"),
|
||||
ACUTE_CARE_SURGERY("Acute Care Surgery");
|
||||
|
||||
private final String displayName;
|
||||
|
||||
ServiceTileCategory(String displayName) {
|
||||
this.displayName = displayName;
|
||||
}
|
||||
|
||||
public String getDisplayName() {
|
||||
return displayName;
|
||||
}
|
||||
}
|
||||
@ -1,14 +1,15 @@
|
||||
package net.shyshkin.study.fullstack.supportportal.backend.service;
|
||||
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.ServiceTile;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.enumeration.ServiceTileCategory;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ServiceTileService {
|
||||
|
||||
ServiceTile addServiceTile(String title, String description, Integer displayOrder);
|
||||
ServiceTile addServiceTile(String title, String description, ServiceTileCategory category, Integer displayOrder);
|
||||
|
||||
ServiceTile updateServiceTile(Long id, String title, String description, Integer displayOrder);
|
||||
ServiceTile updateServiceTile(Long id, String title, String description, ServiceTileCategory category, Integer displayOrder);
|
||||
|
||||
List<ServiceTile> getActiveServiceTiles();
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package net.shyshkin.study.fullstack.supportportal.backend.service.impl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.domain.ServiceTile;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.enumeration.ServiceTileCategory;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.exception.domain.ServiceTileNotFoundException;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.repository.ServiceTileRepository;
|
||||
import net.shyshkin.study.fullstack.supportportal.backend.service.ServiceTileService;
|
||||
@ -20,25 +21,27 @@ public class ServiceTileServiceImpl implements ServiceTileService {
|
||||
private final ServiceTileRepository serviceTileRepository;
|
||||
|
||||
@Override
|
||||
public ServiceTile addServiceTile(String title, String description, Integer displayOrder) {
|
||||
log.info("Adding new service tile with title: {}", title);
|
||||
public ServiceTile addServiceTile(String title, String description, ServiceTileCategory category, Integer displayOrder) {
|
||||
log.info("Adding new service tile with title: {} and category: {}", title, category);
|
||||
|
||||
ServiceTile serviceTile = new ServiceTile();
|
||||
serviceTile.setTitle(title);
|
||||
serviceTile.setDescription(description);
|
||||
serviceTile.setCategory(category);
|
||||
serviceTile.setDisplayOrder(displayOrder != null ? displayOrder : 0);
|
||||
serviceTile.setActive(true); // New tiles are active by default
|
||||
serviceTile.setActive(true);
|
||||
|
||||
return serviceTileRepository.save(serviceTile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServiceTile updateServiceTile(Long id, String title, String description, Integer displayOrder) {
|
||||
public ServiceTile updateServiceTile(Long id, String title, String description, ServiceTileCategory category, Integer displayOrder) {
|
||||
log.info("Updating service tile with id: {}", id);
|
||||
|
||||
ServiceTile serviceTile = getServiceTileById(id);
|
||||
serviceTile.setTitle(title);
|
||||
serviceTile.setDescription(description);
|
||||
serviceTile.setCategory(category);
|
||||
|
||||
if (displayOrder != null) {
|
||||
serviceTile.setDisplayOrder(displayOrder);
|
||||
|
||||
Reference in New Issue
Block a user