Kaynağa Gözat

Fix Accept-Patch in OPTIONS

Use resource allowed patches in OPTIONS.
master
TheoryOfNekomata 7 ay önce
ebeveyn
işleme
e554fee7bf
1 değiştirilmiş dosya ile 4 ekleme ve 9 silme
  1. +4
    -9
      packages/core/src/backend/servers/http/core.ts

+ 4
- 9
packages/core/src/backend/servers/http/core.ts Dosyayı Görüntüle

@@ -551,15 +551,10 @@ export const createServer = (backendState: BackendState, serverParams = {} as Cr
if (resourceReq.method === 'POST') {
headers['Accept-Post'] = Array.from(resourceReq.backend.app.mediaTypes.keys()).join(',');
} 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', {


Yükleniyor…
İptal
Kaydet