@@ -17,12 +17,26 @@ use serde::{Deserialize, Serialize};
1717
1818use crate :: graph:: accounts:: AccountsAPI ;
1919use crate :: graph:: data:: Data ;
20+ use crate :: graph:: prelude:: Accounts ;
2021
2122/// This struct contain different data gotten as a response when a user sign in
2223#[ derive( Deserialize , Serialize ) ]
2324pub struct Me {
2425 name : String ,
25- user_id : String ,
26+ id : String ,
27+ first_name : String ,
28+ picture : FacebookPictureUserPicture ,
29+ email : String ,
30+ }
31+
32+ #[ derive( Deserialize , Serialize ) ]
33+ pub struct PictureData {
34+ data : FacebookPictureUserPicture
35+ }
36+
37+ #[ derive( Deserialize , Serialize ) ]
38+ pub struct FacebookPictureUserPicture {
39+ url : String ,
2640}
2741
2842#[ derive( Clone , Debug , Deserialize , Serialize ) ]
@@ -51,9 +65,11 @@ impl MeApi {
5165 /// retrieve a User's name and ID by using: The data in the response
5266 /// will depend on the "Fields" parameters you pass along the get request
5367 /// exmaple fields=id,name,email,picture.......
54- pub async fn get ( & self ) -> seed:: fetch:: Result < Data < Me > > {
55- log ! ( self . url) ;
56- let request = Request :: new ( & self . url ) . method ( Method :: Get ) ;
57- fetch ( request) . await ?. json :: < Data < Me > > ( ) . await
68+ pub async fn details ( & self ) -> seed:: fetch:: Result < Me > {
69+ let fields = "&fields=id,name,picture, email,first_name,last_name,about,birthday,gender,link" ;
70+ let base_ur = self . url . replace ( "EDGE" , "" ) ;
71+ let url = base_ur + fields;
72+ let request = Request :: new ( url) . method ( Method :: Get ) ;
73+ fetch ( request) . await ?. json :: < Me > ( ) . await
5874 }
5975}
0 commit comments