1
- import type { PasskeyJSON , PasskeyResource , PasskeyVerificationResource } from '@clerk/types' ;
1
+ import type {
2
+ DeletedObjectJSON ,
3
+ DeletedObjectResource ,
4
+ PasskeyJSON ,
5
+ PasskeyResource ,
6
+ PasskeyVerificationResource ,
7
+ UpdatePasskeyParams ,
8
+ } from '@clerk/types' ;
2
9
3
10
import { unixEpochToDate } from '../../utils/date' ;
4
11
import type { PublicKeyCredentialWithAuthenticatorAttestationResponse } from '../../utils/passkeys' ;
@@ -7,7 +14,7 @@ import {
7
14
serializePublicKeyCredential ,
8
15
webAuthnCreateCredential ,
9
16
} from '../../utils/passkeys' ;
10
- import { BaseResource , ClerkRuntimeError , PasskeyVerification } from './internal' ;
17
+ import { BaseResource , ClerkRuntimeError , DeletedObject , PasskeyVerification } from './internal' ;
11
18
12
19
export class Passkey extends BaseResource implements PasskeyResource {
13
20
id ! : string ;
@@ -43,13 +50,6 @@ export class Passkey extends BaseResource implements PasskeyResource {
43
50
} ) . then ( res => new Passkey ( res ?. response as PasskeyJSON ) ) ;
44
51
}
45
52
46
- /**
47
- * TODO-PASSKEYS: Implement this later
48
- *
49
- * GET /v1/me/passkeys
50
- */
51
- static async get ( ) { }
52
-
53
53
/**
54
54
* Developers should not be able to create a new Passkeys from an already instanced object
55
55
*/
@@ -92,25 +92,26 @@ export class Passkey extends BaseResource implements PasskeyResource {
92
92
}
93
93
94
94
/**
95
- * TODO-PASSKEYS: Implement this later
96
- *
97
95
* PATCH /v1/me/passkeys/{passkeyIdentificationID}
98
96
*/
99
- update = ( ) : Promise < PasskeyResource > => this . _basePatch ( ) ;
97
+ update = ( params : UpdatePasskeyParams ) : Promise < PasskeyResource > =>
98
+ this . _basePatch ( {
99
+ body : params ,
100
+ } ) ;
100
101
101
102
/**
102
- * TODO-PASSKEYS: Implement this later
103
- *
104
103
* DELETE /v1/me/passkeys/{passkeyIdentificationID}
105
104
*/
106
- destroy = ( ) : Promise < void > => this . _baseDelete ( ) ;
107
-
108
- /**
109
- * TODO-PASSKEYS: Implement this later
110
- *
111
- * GET /v1/me/passkeys/{passkeyIdentificationID}
112
- */
113
- reload = ( ) => this . _baseGet ( ) ;
105
+ delete = async ( ) : Promise < DeletedObjectResource > => {
106
+ const json = (
107
+ await BaseResource . _fetch < DeletedObjectJSON > ( {
108
+ path : `${ this . path ( ) } /${ this . id } ` ,
109
+ method : 'DELETE' ,
110
+ } )
111
+ ) ?. response as unknown as DeletedObjectJSON ;
112
+
113
+ return new DeletedObject ( json ) ;
114
+ } ;
114
115
115
116
protected fromJSON ( data : PasskeyJSON | null ) : this {
116
117
if ( ! data ) {
0 commit comments