public ResultViewModel Verify(LoginVerification verification) { if (verification == null) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, "Missing required parameters")); } Uri link = new Uri(verification.VerificationLink); NameValueCollection linkQueryParams = HttpUtility.ParseQueryString(link.Query); if (linkQueryParams["code"] == null) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, "Invalid verification link")); } FxSyncNet.SyncClient syncClient = new FxSyncNet.SyncClient(); try { syncClient.VerifyLogin(verification.UID, linkQueryParams["code"]); } catch (Exception ex) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, Utility.GetExceptionMessage(ex))); } return(new ResultViewModel()); }
public ResultViewModel Login(BookmarkBrowser.Api.Models.Credentials creds) { if (creds == null) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, "Missing required parameters")); } FxSyncNet.SyncClient syncClient = new FxSyncNet.SyncClient(); FxSyncNet.Models.LoginResponse response; try { response = syncClient.Login(creds.Username, creds.Password); } catch (Exception ex) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, Utility.GetExceptionMessage(ex))); } return(new ResultViewModel() { Content = JsonConvert.SerializeObject(response) }); }
public ResultViewModel GetData(string collection) { ResultViewModel result = new ResultViewModel(); Directory mainDir; var parms = Request.RequestUri.ParseQueryString(); int count; if (parms["username"] == null || parms["password"] == null) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, "You must supply Sync credentials")); } if (parms["keyFetchToken"] == null || parms["sessionToken"] == null) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, "You must supply the proper Sync tokens")); } FxSyncNet.SyncClient syncClient = new FxSyncNet.SyncClient(); switch (collection.ToLower()) { case "bookmark": try { syncClient.OpenSyncAccount(parms["userName"], parms["password"], parms["keyFetchToken"], parms["sessionToken"]); IEnumerable <FxSyncNet.Models.Bookmark> bookmarks = syncClient.GetBookmarks(); mainDir = Utility.BuildBookmarks(bookmarks); count = bookmarks.Where(x => x.Type == FxSyncNet.Models.BookmarkType.Bookmark).Count(); mainDir.Tag = count.ToString(); result.Content = JsonConvert.SerializeObject(mainDir); } catch (ServiceNotAvailableException ex) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.GatewayTimeout, Utility.GetExceptionMessage(ex))); } catch (InvalidOperationException ex) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, Utility.GetExceptionMessage(ex))); } catch (AuthenticationException ex) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, Utility.GetExceptionMessage(ex))); } catch (Exception ex) { throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, Utility.GetExceptionMessage(ex))); } break; default: throw new HttpResponseException(Request.CreateResponse( HttpStatusCode.BadRequest, "Unsupported collection type")); } return(result); }