@@ -2,20 +2,42 @@ use actix_web::web;
2
2
#[ cfg( all( feature = "olap" , feature = "kms" ) ) ]
3
3
use api_models:: verifications:: { self , ApplepayMerchantResponse } ;
4
4
use common_utils:: errors:: CustomResult ;
5
- use diesel_models:: business_profile:: { BusinessProfile , BusinessProfileUpdateInternal } ;
5
+ use diesel_models:: business_profile;
6
6
use error_stack:: { Report , ResultExt } ;
7
7
#[ cfg( feature = "kms" ) ]
8
8
use external_services:: kms;
9
9
10
10
use crate :: {
11
11
core:: errors:: { self , api_error_response} ,
12
+ db:: StorageInterface ,
12
13
headers, logger,
13
14
routes:: AppState ,
14
15
services, types, utils,
15
16
} ;
16
17
17
18
const APPLEPAY_INTERNAL_MERCHANT_NAME : & str = "Applepay_merchant" ;
18
19
20
+ pub async fn get_verified_apple_domains_with_business_profile_id (
21
+ db : & dyn StorageInterface ,
22
+ profile_id : String ,
23
+ ) -> CustomResult <
24
+ services:: ApplicationResponse < api_models:: verifications:: ApplepayVerifiedDomainsResponse > ,
25
+ api_error_response:: ApiErrorResponse ,
26
+ > {
27
+ let verified_domains = db
28
+ . find_business_profile_by_profile_id ( & profile_id)
29
+ . await
30
+ . change_context ( api_error_response:: ApiErrorResponse :: ResourceIdNotFound ) ?
31
+ . applepay_verified_domains
32
+ . unwrap_or_default ( ) ;
33
+ Ok ( services:: api:: ApplicationResponse :: Json (
34
+ api_models:: verifications:: ApplepayVerifiedDomainsResponse {
35
+ status_code : 200 ,
36
+ verified_domains,
37
+ } ,
38
+ ) )
39
+ }
40
+
19
41
pub async fn verify_merchant_creds_for_applepay (
20
42
state : & AppState ,
21
43
_req : & actix_web:: HttpRequest ,
@@ -94,14 +116,14 @@ pub async fn verify_merchant_creds_for_applepay(
94
116
. await
95
117
. change_context ( api_error_response:: ApiErrorResponse :: InternalServerError ) ?;
96
118
services:: api:: ApplicationResponse :: Json ( ApplepayMerchantResponse {
97
- status_code : " 200" . to_string ( ) ,
119
+ status_code : 200 ,
98
120
status_message : "Applepay verification Completed" . to_string ( ) ,
99
121
} )
100
122
}
101
123
Err ( error) => {
102
124
logger:: error!( ?error) ;
103
125
services:: api:: ApplicationResponse :: Json ( ApplepayMerchantResponse {
104
- status_code : " 200" . to_string ( ) ,
126
+ status_code : 200 ,
105
127
status_message : "Applepay verification Failed" . to_string ( ) ,
106
128
} )
107
129
}
@@ -113,7 +135,7 @@ async fn check_existence_and_add_domain_to_db(
113
135
state : & AppState ,
114
136
business_profile_id : String ,
115
137
domain_from_req : Vec < String > ,
116
- ) -> CustomResult < BusinessProfile , errors:: StorageError > {
138
+ ) -> CustomResult < business_profile :: BusinessProfile , errors:: StorageError > {
117
139
let business_profile = state
118
140
. store
119
141
. find_business_profile_by_profile_id ( & business_profile_id)
@@ -130,7 +152,7 @@ async fn check_existence_and_add_domain_to_db(
130
152
131
153
already_verified_domains. append ( & mut new_verified_domains) ;
132
154
133
- let update_business_profile = BusinessProfileUpdateInternal {
155
+ let update_business_profile = business_profile :: BusinessProfileUpdateInternal {
134
156
applepay_verified_domains : Some ( already_verified_domains) ,
135
157
profile_name : Some ( business_profile. profile_name ) ,
136
158
modified_at : Some ( business_profile. modified_at ) ,
@@ -154,6 +176,7 @@ async fn check_existence_and_add_domain_to_db(
154
176
. update_business_profile_by_profile_id ( business_profile_to_update, update_business_profile)
155
177
. await
156
178
}
179
+
157
180
fn log_applepay_verification_response_if_error (
158
181
response : & Result < Result < types:: Response , types:: Response > , Report < errors:: ApiClientError > > ,
159
182
) {
0 commit comments