Skip to content

Commit

Permalink
feat: Better use of HTTP status code.
Browse files Browse the repository at this point in the history
  • Loading branch information
peacekeeper committed Jun 16, 2021
1 parent 874f5fb commit db56458
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,6 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t

// write resolve result

ServletUtil.sendResponse(response, HttpServletResponse.SC_OK, ResolveResult.MEDIA_TYPE, HttpBindingUtil.toHttpBodyResolveResult(resolveResult));
ServletUtil.sendResponse(response, HttpBindingUtil.httpStatusCodeForResolveResult(resolveResult), ResolveResult.MEDIA_TYPE, HttpBindingUtil.toHttpBodyResolveResult(resolveResult));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import foundation.identity.did.representations.Representations;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
import org.apache.http.HttpStatus;
import org.apache.http.entity.ContentType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -77,6 +78,19 @@ public static ResolveResult fromHttpBodyDidDocument(byte[] httpBodyBytes, Conten
return resolveResult;
}

public static int httpStatusCodeForResolveResult(ResolveResult resolveResult) {
if (ResolveResult.Error.notFound.name().equals(resolveResult.getError()))
return HttpStatus.SC_NOT_FOUND;
else if (ResolveResult.Error.invalidDid.name().equals(resolveResult.getError()))
return HttpStatus.SC_BAD_REQUEST;
else if (ResolveResult.Error.representationNotSupported.name().equals(resolveResult.getError()))
return HttpStatus.SC_NOT_ACCEPTABLE;
else if (resolveResult.isErrorResult())
return HttpStatus.SC_INTERNAL_SERVER_ERROR;
else
return HttpStatus.SC_OK;
}

/*
* Helper methods
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t

if (acceptMediaType.includes(MediaType.valueOf(ResolveResult.MEDIA_TYPE))) {

ServletUtil.sendResponse(response, HttpServletResponse.SC_OK, ResolveResult.MEDIA_TYPE, HttpBindingUtil.toHttpBodyResolveResult(resolveResult));
ServletUtil.sendResponse(response, HttpBindingUtil.httpStatusCodeForResolveResult(resolveResult), ResolveResult.MEDIA_TYPE, HttpBindingUtil.toHttpBodyResolveResult(resolveResult));
return;
} else if (contentType != null && acceptMediaType.includes(MediaType.valueOf(contentType))) {

Expand All @@ -116,6 +116,5 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t
}

ServletUtil.sendResponse(response, HttpServletResponse.SC_NOT_ACCEPTABLE, null, "Not acceptable media type " + acceptHeaderString);
return;
}
}

0 comments on commit db56458

Please sign in to comment.