|
@@ -551,15 +551,10 @@ export const createServer = (backendState: BackendState, serverParams = {} as Cr |
|
|
if (resourceReq.method === 'POST') { |
|
|
if (resourceReq.method === 'POST') { |
|
|
headers['Accept-Post'] = Array.from(resourceReq.backend.app.mediaTypes.keys()).join(','); |
|
|
headers['Accept-Post'] = Array.from(resourceReq.backend.app.mediaTypes.keys()).join(','); |
|
|
} else if (resourceReq.method === 'PATCH') { |
|
|
} else if (resourceReq.method === 'PATCH') { |
|
|
headers['Accept-Patch'] = Array.from(resourceReq.backend.app.mediaTypes.keys()).map((m) => { |
|
|
|
|
|
const [mimeType, mimeSubtype] = m.split('/'); |
|
|
|
|
|
|
|
|
|
|
|
// TODO accept only patch document type from request |
|
|
|
|
|
// TODO implement Vary header (which headers influenced the request) |
|
|
|
|
|
// TODO implement OPTIONS method for determining the accepted media types and languages |
|
|
|
|
|
// TODO configure strict and lax accept behavior for content negotiation |
|
|
|
|
|
return `${mimeType}/merge-patch+${mimeSubtype}`; |
|
|
|
|
|
}).join(','); |
|
|
|
|
|
|
|
|
headers['Accept-Patch'] = Array.from(Object.entries(PATCH_CONTENT_MAP_TYPE)) |
|
|
|
|
|
.filter(([, value]) => Object.keys(resourceReq.resource.state.canPatch).includes(value)) |
|
|
|
|
|
.map(([contentType]) => contentType) |
|
|
|
|
|
.join(','); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
handleError(new ErrorPlainResponse('unableToSerializeResponse', { |
|
|
handleError(new ErrorPlainResponse('unableToSerializeResponse', { |
|
|