mirror of
https://github.com/danieldemus/openhab-core.git
synced 2026-07-29 12:34:22 +02:00
Adjust REST HTTP response status codes (#5236)
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
This commit is contained in:
+4
-3
@@ -131,7 +131,8 @@ public class ThingActionsResource implements RESTResource {
|
||||
if (actionUIDs.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
thingActionsMap.computeIfAbsent(thingUID, thingUid -> new ConcurrentHashMap<>()).put(scope, actionUIDs);
|
||||
Objects.requireNonNull(thingActionsMap.computeIfAbsent(thingUID, thingUid -> new ConcurrentHashMap<>()))
|
||||
.put(scope, actionUIDs);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +166,7 @@ public class ThingActionsResource implements RESTResource {
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Operation(operationId = "getAvailableActionsForThing", summary = "Get all available actions for provided thing UID", responses = {
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(array = @ArraySchema(schema = @Schema(implementation = ThingActionDTO.class), uniqueItems = true))),
|
||||
@ApiResponse(responseCode = "404", description = "No actions found.") })
|
||||
@ApiResponse(responseCode = "204", description = "No actions found") })
|
||||
public Response getActions(@PathParam("thingUID") @Parameter(description = "thingUID") String thingUID,
|
||||
@HeaderParam(HttpHeaders.ACCEPT_LANGUAGE) @Parameter(description = "language") @Nullable String language) {
|
||||
Locale locale = localeService.getLocale(language);
|
||||
@@ -174,7 +175,7 @@ public class ThingActionsResource implements RESTResource {
|
||||
List<ThingActionDTO> actions = new ArrayList<>();
|
||||
Map<String, List<String>> thingActionsMap = this.thingActionsMap.get(aThingUID);
|
||||
if (thingActionsMap == null) {
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
return Response.noContent().build();
|
||||
}
|
||||
|
||||
// inspect ThingActions
|
||||
|
||||
+4
-1
@@ -155,8 +155,11 @@ public class ConfigurationService {
|
||||
* @return old config or null if no old config existed
|
||||
* @throws IOException if configuration can not be removed
|
||||
*/
|
||||
public Configuration delete(String configId) throws IOException {
|
||||
public @Nullable Configuration delete(String configId) throws IOException {
|
||||
org.osgi.service.cm.Configuration serviceConfiguration = configurationAdmin.getConfiguration(configId, null);
|
||||
if (serviceConfiguration == null) {
|
||||
return null;
|
||||
}
|
||||
Configuration oldConfiguration = toConfiguration(serviceConfiguration.getProperties());
|
||||
serviceConfiguration.delete();
|
||||
return oldConfiguration;
|
||||
|
||||
+4
-3
@@ -140,8 +140,9 @@ public class ChannelTypeResource implements RESTResource {
|
||||
@Path("/{channelTypeUID}")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Operation(operationId = "getChannelTypeByUID", summary = "Gets channel type by UID.", responses = {
|
||||
@ApiResponse(responseCode = "200", description = "Channel type with provided channelTypeUID does not exist.", content = @Content(schema = @Schema(implementation = ChannelTypeDTO.class))),
|
||||
@ApiResponse(responseCode = "404", description = "No content") })
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ChannelTypeDTO.class))),
|
||||
@ApiResponse(responseCode = "400", description = "Bad request"),
|
||||
@ApiResponse(responseCode = "404", description = "Channel type with provided channelTypeUID does not exist.") })
|
||||
public Response getByUID(
|
||||
@PathParam("channelTypeUID") @Parameter(description = "channelTypeUID") String channelTypeUID,
|
||||
@HeaderParam(HttpHeaders.ACCEPT_LANGUAGE) @Parameter(description = "language") @Nullable String language) {
|
||||
@@ -150,7 +151,7 @@ public class ChannelTypeResource implements RESTResource {
|
||||
if (channelType != null) {
|
||||
return Response.ok(convertToChannelTypeDTO(channelType, locale)).build();
|
||||
} else {
|
||||
return Response.noContent().build();
|
||||
return Response.status(Status.NOT_FOUND).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-3
@@ -150,7 +150,7 @@ public class ConfigurableServiceResource implements RESTResource {
|
||||
if (configurableService != null) {
|
||||
return Response.ok(configurableService).build();
|
||||
} else {
|
||||
return Response.status(404).build();
|
||||
return Response.status(Status.NOT_FOUND).build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,8 +275,7 @@ public class ConfigurableServiceResource implements RESTResource {
|
||||
public Response deleteConfiguration(
|
||||
@PathParam("serviceId") @Parameter(description = "service ID") String serviceId) {
|
||||
try {
|
||||
Configuration oldConfiguration = configurationService.get(serviceId);
|
||||
configurationService.delete(serviceId);
|
||||
Configuration oldConfiguration = configurationService.delete(serviceId);
|
||||
return oldConfiguration != null ? Response.ok(oldConfiguration).build() : Response.noContent().build();
|
||||
} catch (IOException ex) {
|
||||
logger.error("Cannot delete configuration for service {}: {}", serviceId, ex.getMessage(), ex);
|
||||
|
||||
+4
-3
@@ -28,6 +28,7 @@ import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.HttpHeaders;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.eclipse.jdt.annotation.Nullable;
|
||||
@@ -151,8 +152,8 @@ public class ThingTypeResource implements RESTResource {
|
||||
@Path("/{thingTypeUID}")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Operation(operationId = "getThingTypeById", summary = "Gets thing type by UID.", responses = {
|
||||
@ApiResponse(responseCode = "200", description = "Thing type with provided thingTypeUID does not exist.", content = @Content(schema = @Schema(implementation = ThingTypeDTO.class))),
|
||||
@ApiResponse(responseCode = "404", description = "No content") })
|
||||
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = ThingTypeDTO.class))),
|
||||
@ApiResponse(responseCode = "404", description = "Thing type not found.") })
|
||||
public Response getByUID(@PathParam("thingTypeUID") @Parameter(description = "thingTypeUID") String thingTypeUID,
|
||||
@HeaderParam(HttpHeaders.ACCEPT_LANGUAGE) @Parameter(description = "language") @Nullable String language) {
|
||||
Locale locale = localeService.getLocale(language);
|
||||
@@ -160,7 +161,7 @@ public class ThingTypeResource implements RESTResource {
|
||||
if (thingType != null) {
|
||||
return Response.ok(convertToThingTypeDTO(thingType, locale)).build();
|
||||
} else {
|
||||
return Response.noContent().build();
|
||||
return Response.status(Status.NOT_FOUND).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user