mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 15:05:44 +01:00
Expose conflict errors
This commit is contained in:
@@ -52,6 +52,13 @@ export class NotFoundError extends BackendError {
|
|||||||
super(content, "NotFoundError", statusCode);
|
super(content, "NotFoundError", statusCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class ConflictError extends BackendError {
|
||||||
|
constructor(content: BackendErrorContent, statusCode: number) {
|
||||||
|
super(content, "ConflictError", statusCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function createBackendError(
|
export function createBackendError(
|
||||||
content: BackendErrorContent,
|
content: BackendErrorContent,
|
||||||
statusCode: number
|
statusCode: number
|
||||||
@@ -59,6 +66,8 @@ export function createBackendError(
|
|||||||
switch (statusCode) {
|
switch (statusCode) {
|
||||||
case 404:
|
case 404:
|
||||||
return new NotFoundError(content, statusCode);
|
return new NotFoundError(content, statusCode);
|
||||||
|
case 409:
|
||||||
|
return new ConflictError(content, statusCode);
|
||||||
default:
|
default:
|
||||||
return new BackendError(content, "BackendError", statusCode);
|
return new BackendError(content, "BackendError", statusCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.webcohesion.enunciate.metadata.rs.ResponseCode;
|
|||||||
import com.webcohesion.enunciate.metadata.rs.StatusCodes;
|
import com.webcohesion.enunciate.metadata.rs.StatusCodes;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.http.HttpStatus;
|
import org.apache.http.HttpStatus;
|
||||||
|
import sonia.scm.ConcurrentModificationException;
|
||||||
import sonia.scm.repository.NamespaceAndName;
|
import sonia.scm.repository.NamespaceAndName;
|
||||||
import sonia.scm.repository.api.MergeCommandBuilder;
|
import sonia.scm.repository.api.MergeCommandBuilder;
|
||||||
import sonia.scm.repository.api.MergeCommandResult;
|
import sonia.scm.repository.api.MergeCommandResult;
|
||||||
@@ -73,7 +74,7 @@ public class MergeResource {
|
|||||||
if (mergeCommandResult.isMergeable()) {
|
if (mergeCommandResult.isMergeable()) {
|
||||||
return Response.noContent().build();
|
return Response.noContent().build();
|
||||||
} else {
|
} else {
|
||||||
return Response.status(HttpStatus.SC_CONFLICT).build();
|
throw new ConcurrentModificationException("revision", mergeCommand.getTargetRevision());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user