Exemplo n.º 1
0
        public WithingsClientTests()
        {
            _httpMessageHandler = new Mock <HttpMessageHandler>();

            _capturedRequest = new HttpRequestMessage();

            _httpClient = new HttpClient(_httpMessageHandler.Object);

            _config = new Mock <IConfig>();
            _config.Setup(x => x.WithingsClientId).Returns(withingsClientId);
            _config.Setup(x => x.WithingsClientSecret).Returns(withingsClientSecret);

            _config.Setup(x => x.WithingsAccountBaseUrl).Returns(baseAccountUrl);
            _config.Setup(x => x.WithingsApiBaseUrl).Returns(baseApiUrl);
            _config.Setup(x => x.WithingsRedirectUrl).Returns(redirectUrl);

            _withingsClient = new WithingsClient(_httpClient, _config.Object);
        }
Exemplo n.º 2
0
        public async Task <ActionResult> AccessTokenFlow()
        {
            //var accessToken = Request.QueryString["oauth_token"].ToString();

            //List<KeyValuePair<string, string>> parameters = new List<KeyValuePair<string, string>>();
            //parameters.Add(new KeyValuePair<string, string>("oauth_token", accessToken));

            var appCredentials = new WithingsAppCredentials()
            {
                ConsumerKey    = ConfigurationManager.AppSettings["WithingsConsumerKey"],
                ConsumerSecret = ConfigurationManager.AppSettings["WithingsConsumerSecret"]
            };

            //saving consumerKey and Secret into session
            Session["AppCredentials"] = appCredentials;

            //oAuthVerifier taken from url to string to be made into a Key Value pair
            var oAuthVerifier = Request.QueryString["oauth_verifier"].ToString();
            List <KeyValuePair <string, string> > parameters = new List <KeyValuePair <string, string> >();

            parameters.Add(new KeyValuePair <string, string>("oauth_verifier", oAuthVerifier));

            //Using AppCredentials in session into instanticiating WithingsAppAUthenticator
            var withingsAppConstructor = new WithingsAppAuthenticator((WithingsAppCredentials)Session["AppCredentials"]);

            //Calling request token from previous method to inject into new AccessToken Call
            var requestTokenSession = Session["requestToken"] as RequestToken;

            //Awaiting Method from WithingsAppAuthenticator Class to return
            AccessToken accessTokenResponse = await withingsAppConstructor.AccessTokenFlow(requestTokenSession, oAuthVerifier);

            Session["accessToken"] = accessTokenResponse;

            string userId = Request.QueryString["userid"];

            Session["UserId"] = userId;

            WithingsClient client = new WithingsClient(appCredentials, accessTokenResponse);

            return(View("AccessTokenFlow"));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> GetWithingsClient(string currentDate, string userid)
        {
            var accessToken    = Session["accessToken"] as AccessToken;
            var appCredentials = new WithingsAppCredentials()
            {
                ConsumerKey    = ConfigurationManager.AppSettings["WithingsConsumerKey"],
                ConsumerSecret = ConfigurationManager.AppSettings["WithingsConsumerSecret"]
            };

            var userId = Session["UserId"].ToString();

            string date = DateTime.Now.ToString("yyyy-MM-dd");

            WithingsClient client = new WithingsClient(appCredentials, accessToken);

            var response = await client.GetDayActivityAsync(date, userId);

            ViewBag.ResponseData = response;

            return(View("GetWithingsClient"));
        }
Exemplo n.º 4
0
        public async Task <ActionResult> GetWithingsBodyMeas(string userid, string devType)
        {
            var accessToken    = Session["accessToken"] as AccessToken;
            var appCredentials = new WithingsAppCredentials()
            {
                ConsumerKey    = ConfigurationManager.AppSettings["WithingsConsumerKey"],
                ConsumerSecret = ConfigurationManager.AppSettings["WithingsConsumerSecret"]
            };

            var userId     = Session["UserId"].ToString();
            var deviceType = "4";


            WithingsClient client = new WithingsClient(appCredentials, accessToken);

            var response = await client.GetBodyMeasureAsync(userId, deviceType);

            ViewBag.BloodPressueResponse = response;



            return(View("GetWithingsBodyMeas"));
        }
Exemplo n.º 5
0
        public IndexModule()
        {
            var _credentials = new OAuth1Credentials();

            _credentials.SetCallbackUrl(ConfigurationManager.AppSettings["WithingsCallbackUrl"]);
            _credentials.SetConsumerProperties(ConfigurationManager.AppSettings["WithingsConsumerKey"],
                                               ConfigurationManager.AppSettings["WithingsConsumerSecret"]);
            _credentials.SetParameterHandling(HttpParameterType.Querystring);

            var authenticator = new Authenticator(_credentials);

            Get["/"] = nothing => new RedirectResponse("api/oauth/authorize", RedirectResponse.RedirectType.Permanent);

            Get["api/oauth/authorize", true] = async(nothing, ct) =>
            {
                var requestToken = await authenticator.GetRequestToken();

                ConfigurationManager.AppSettings["RequestToken"] = JsonConvert.SerializeObject(requestToken);
                return(new RedirectResponse(authenticator.UserRequestUrl(requestToken)));
            };

            Get["api/oauth/callback", true] = async(parameters, ct) =>
            {
                var ps = HttpUtility.ParseQueryString(Request.Url.Query);
                ConfigurationManager.AppSettings["UserId"] = ps["userid"];
                var verifier    = ps["oauth_verifier"];
                var credentials = await authenticator.ExchangeRequestTokenForAccessToken(JsonConvert.DeserializeObject <RequestToken>(ConfigurationManager.AppSettings["RequestToken"]), verifier);

                ConfigurationManager.AppSettings["OAuthToken"]  = credentials.Key;
                ConfigurationManager.AppSettings["OAuthSecret"] = credentials.Secret;
                return(new JsonResponse(credentials, new DefaultJsonSerializer()));
            };

            Get["api/withings/activity"] = nothing =>
            {
                var client   = new WithingsClient(_credentials);
                var activity = client.GetActivityMeasures
                               (
                    DateTime.Parse("2017-01-01"),
                    DateTime.Parse("2017-03-30"),
                    ConfigurationManager.AppSettings["UserId"],
                    ConfigurationManager.AppSettings["OAuthToken"],
                    ConfigurationManager.AppSettings["OAuthSecret"]
                               );
                return(new JsonResponse <WithingsWeighInResponse>(activity, new DefaultJsonSerializer()));
            };

            Get["api/withings/dailyactivity"] = nothing =>
            {
                var client   = new WithingsClient(_credentials);
                var activity = client.GetActivityMeasures
                               (
                    DateTime.Today.AddDays(-30),
                    ConfigurationManager.AppSettings["UserId"],
                    ConfigurationManager.AppSettings["OAuthToken"],
                    ConfigurationManager.AppSettings["OAuthSecret"]
                               );
                return(new JsonResponse <WithingsWeighInResponse>(activity, new DefaultJsonSerializer()));
            };

            Get["api/withings/sleepsummary"] = nothing =>
            {
                var client   = new WithingsClient(_credentials);
                var activity = client.GetSleepSummary
                               (
                    "2017-01-01",
                    "2017-03-30",
                    ConfigurationManager.AppSettings["OAuthToken"],
                    ConfigurationManager.AppSettings["OAuthSecret"]
                               );
                return(new JsonResponse(JsonConvert.SerializeObject(activity), new DefaultJsonSerializer()));
            };

            Get["api/withings/workouts"] = nothing =>
            {
                var client   = new WithingsClient(_credentials);
                var activity = client.GetWorkouts
                               (
                    "2017-01-01",
                    "2017-03-30",
                    ConfigurationManager.AppSettings["OAuthToken"],
                    ConfigurationManager.AppSettings["OAuthSecret"]
                               );
                return(new JsonResponse(JsonConvert.SerializeObject(activity), new DefaultJsonSerializer()));
            };

            Get["api/withings/sleepmeasures"] = nothing =>
            {
                var client   = new WithingsClient(_credentials);
                var activity = client.GetSleepMeasures
                               (
                    ConfigurationManager.AppSettings["UserId"],
                    DateTime.Now.AddDays(-90),
                    DateTime.Now.AddDays(-1),
                    ConfigurationManager.AppSettings["OAuthToken"],
                    ConfigurationManager.AppSettings["OAuthSecret"]
                               );
                return(new JsonResponse(JsonConvert.SerializeObject(activity), new DefaultJsonSerializer()));
            };

            Get["api/withings/body"] = nothing =>
            {
                var client   = new WithingsClient(_credentials);
                var activity = client.GetBodyMeasures
                               (
                    ConfigurationManager.AppSettings["UserId"],
                    DateTime.Now.AddDays(-90),
                    DateTime.Now.AddDays(-1),
                    ConfigurationManager.AppSettings["OAuthToken"],
                    ConfigurationManager.AppSettings["OAuthSecret"]
                               );
                return(new JsonResponse <WithingsBody>(activity, new DefaultJsonSerializer()));
            };

            Get["api/withings/bodysince"] = nothing =>
            {
                var client   = new WithingsClient(_credentials);
                var activity = client.GetBodyMeasures
                               (
                    ConfigurationManager.AppSettings["UserId"],
                    DateTime.Now.AddDays(-90),
                    ConfigurationManager.AppSettings["OAuthToken"],
                    ConfigurationManager.AppSettings["OAuthSecret"]
                               );
                return(new JsonResponse <WithingsBody>(activity, new DefaultJsonSerializer()));
            };

            Get["api/oauth/requesttoken", true] = async(nothing, ct) =>
            {
                var token = await authenticator.GetRequestToken();

                return(new JsonResponse <RequestToken>(token, new DefaultJsonSerializer()));
            };
        }