@@ -18,6 +18,15 @@ type OcsResponse<T = unknown> = {
1818 }
1919}
2020
21+ type SignatureElementResponse = {
22+ elements ?: Array < {
23+ type : string
24+ file : {
25+ nodeId : number
26+ }
27+ } >
28+ }
29+
2130async function ocsRequest (
2231 request : APIRequestContext ,
2332 method : 'GET' | 'POST' | 'PUT' | 'DELETE' ,
@@ -44,7 +53,6 @@ async function ocsRequest(
4453 : body !== undefined ? { form : body } : { } ) ,
4554 failOnStatusCode : false ,
4655 } )
47-
4856 if ( ! response . ok ( ) && response . status ( ) !== 404 ) {
4957 throw new Error ( `OCS request failed: ${ method } ${ path } → ${ response . status ( ) } ${ await response . text ( ) } ` )
5058 }
@@ -56,6 +64,30 @@ async function ocsRequest(
5664 return JSON . parse ( text ) as OcsResponse
5765}
5866
67+ export async function clearSignatureElements (
68+ request : APIRequestContext ,
69+ userId = process . env . NEXTCLOUD_ADMIN_USER ?? 'admin' ,
70+ password = process . env . NEXTCLOUD_ADMIN_PASSWORD ?? 'admin' ,
71+ ) : Promise < void > {
72+ const result = await ocsRequest < SignatureElementResponse > (
73+ request ,
74+ 'GET' ,
75+ '/apps/libresign/api/v1/signature/elements' ,
76+ userId ,
77+ password ,
78+ )
79+
80+ for ( const element of result . ocs . data . elements ?? [ ] ) {
81+ await ocsRequest (
82+ request ,
83+ 'DELETE' ,
84+ `/apps/libresign/api/v1/signature/elements/${ element . file . nodeId } ` ,
85+ userId ,
86+ password ,
87+ )
88+ }
89+ }
90+
5991// ---------------------------------------------------------------------------
6092// Users
6193// ---------------------------------------------------------------------------
@@ -186,4 +218,6 @@ export async function configureOpenSsl(
186218 if ( result . ocs . meta . statuscode !== 200 ) {
187219 throw new Error ( `Failed to configure OpenSSL: ${ result . ocs . meta . message } ` )
188220 }
221+
222+ await clearSignatureElements ( request )
189223}
0 commit comments