Skip to content

Commit 3d362e6

Browse files
committed
restore PUT on 404
1 parent 9ee704c commit 3d362e6

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/utils/keyHelpers/accessData.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,25 @@ export async function getKeyIfExists (webId: NamedNode, keyUrl: string, keyType:
6262
const key = store.any(webId, store.sym(CERT + keyType))
6363
return key?.value // as NamedNode
6464
} catch (err) {
65-
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)
66-
throw err
65+
if (err.response.status === 404) {
66+
debug.log(
67+
'createIfNotExists: doc does NOT exist, will create... ' + keyUrl
68+
)
69+
try {
70+
await store.fetcher.webOperation('PUT', keyUrl, {
71+
data: '',
72+
contentType: 'text/turtle'
73+
})
74+
} catch (err) {
75+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)
76+
throw err
77+
}
78+
delete store.fetcher.requested[keyUrl] // delete cached 404 error
79+
// debug.log('createIfNotExists doc created ok ' + doc)
80+
return undefined // response
81+
} else {
82+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)
83+
throw err
84+
}
6785
}
6886
}

0 commit comments

Comments
 (0)