@@ -52,22 +52,8 @@ impl InstagramApi {
5252 /// It accepts the instagram page id.
5353 /// for reference check <https://developers.facebook.com/docs/instagram-api/reference/ig-user>
5454 pub async fn account_details ( self ) -> seed:: fetch:: Result < InstagramAccount > {
55- log ! ( "the base url " , self . base_url) ;
56-
5755 let mut url = self . base_url . replace ( "EDGE" , "?" ) ;
58-
59- // add required filed needed to be returned
60- let fields_count = Fields :: default ( ) . fields . len ( ) ;
61- let mut url_fields = "" . to_string ( ) ;
62-
63- for ( count, field) in Fields :: default ( ) . fields . into_iter ( ) . enumerate ( ) {
64- if count < fields_count - 1 {
65- url_fields = url_fields+ & field + "," ;
66- } else {
67- url_fields= url_fields+ & field; // remove the comma in the last filed
68- }
69- }
70- url_fields = String :: from ( encode ( url_fields. as_str ( ) ) ) ; // encode the url
56+ let url_fields = Fields :: default ( ) . build_url_with_fields ( ) ; // build urlenconded url withe regired fields
7157
7258 let mut request_url = url
7359 + "fields="
@@ -138,3 +124,19 @@ impl Default for Fields {
138124 Self { fields }
139125 }
140126}
127+
128+ impl Fields {
129+ pub fn build_url_with_fields ( self ) -> String {
130+ let mut url_fields= "" . to_string ( ) ;
131+ let fields_count = Fields :: default ( ) . fields . len ( ) ;
132+ for ( count, field) in Fields :: default ( ) . fields . into_iter ( ) . enumerate ( ) {
133+ if count < fields_count - 1 {
134+ url_fields = url_fields+ & field + "," ;
135+ } else {
136+ url_fields= url_fields+ & field; // remove the comma in the last filed
137+ }
138+ }
139+ url_fields = String :: from ( encode ( url_fields. as_str ( ) ) ) ; // encode the url
140+ url_fields
141+ }
142+ }
0 commit comments