@@ -10,9 +10,10 @@ import AppNetwork
1010
1111protocol AuthDataSource {
1212 func signin( req: SigninRequestParams ) -> Single < TokenDTO >
13- func signup( req: SignupRequestParams ) -> Completable
13+ func signup( req: SignupRequestParams ) -> Single < TokenDTO >
1414 func passwordChange( req: PasswordChangeRequestParams ) -> Completable
1515 func logout( )
16+ func resign( ) -> Completable
1617 func refreshToken( ) -> Single < TokenDTO >
1718}
1819
@@ -31,10 +32,10 @@ class AuthDataSourceImpl: BaseDataSource<AuthAPI>, AuthDataSource {
3132 . map ( TokenDTO . self)
3233 }
3334
34- func signup( req: SignupRequestParams ) -> Completable {
35+ func signup( req: SignupRequestParams ) -> Single < TokenDTO > {
3536 return request ( . signup( req: req) )
3637 . filterSuccessfulStatusCodes ( )
37- . asCompletable ( )
38+ . map ( TokenDTO . self )
3839 }
3940
4041 func passwordChange( req: PasswordChangeRequestParams ) -> Completable {
@@ -51,6 +52,20 @@ class AuthDataSourceImpl: BaseDataSource<AuthAPI>, AuthDataSource {
5152 UserDefaultStorage . shared. remove ( forKey: . userInfoData)
5253 }
5354
55+ func resign( ) -> Completable {
56+ return request ( . resign)
57+ . filterSuccessfulStatusCodes ( )
58+ . asCompletable ( )
59+ . do ( onCompleted: { [ weak self] in
60+ guard let self else { return }
61+ self . keychain. delete ( type: . accessToken)
62+ self . keychain. delete ( type: . refreshToken)
63+ self . keychain. delete ( type: . id)
64+ self . keychain. delete ( type: . password)
65+ UserDefaultStorage . shared. remove ( forKey: . userInfoData)
66+ } )
67+ }
68+
5469 func refreshToken( ) -> Single < TokenDTO > {
5570 return request ( . refreshToken)
5671 . filterSuccessfulStatusCodes ( )
0 commit comments