Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. import { API_URL } from 'react-native-dotenv'
  2. import graphql from 'graphql-client'
  3.  
  4. const LOGIN_URL = API_URL + "/accounts/login?provider=local"
  5. const SIGNUP_URL = API_URL + "/accounts/signup"
  6. const TIMEOUT = 5000
  7. //user = { nickname (or email), password }
  8. const login = (user) => {
  9. const userData = { password: user.password }
  10. if(/@/.test(user.nickname)){
  11. userData.email = user.nickname
  12. }
  13. else{
  14. userData.nickname = user.nickname
  15. }
  16. const requestData = {
  17. method: 'POST',
  18. headers: {
  19. 'Content-Type': 'application/json',
  20. },
  21. body: JSON.stringify(userData)
  22. }
  23.  
  24. return new Promise((resolve, reject) => {
  25. const timeout = setTimeout((reject) => {
  26. console.log("Login Timeout")
  27. reject('timeout')
  28. }, 1000, reject)
  29. fetch(LOGIN_URL, requestData).then(response => {
  30. clearTimeout(timeout)
  31. resolve(response.json())
  32. })
  33. })
  34.  
  35.  
  36. }
  37. const signup = (user) => {
  38. const requestData = {
  39. method: 'POST',
  40. headers: {
  41. 'Content-Type': 'application/json',
  42. },
  43. body: JSON.stringify(user)
  44. }
  45. return fetch(SIGNUP_URL, requestData).then(response => response.json())
  46.  
  47. }
  48. const getUserInfo = (token) => {
  49. graphqlCli = graphql({
  50. url: API_URL+"/graphql?token="+token
  51. })
  52. let query = `
  53. query user{
  54. user{
  55. user{
  56. id,
  57. nickname,
  58. verified,
  59. friends,
  60. avatar,
  61. email
  62. }
  63. errors{
  64. message
  65. }
  66. }
  67. }
  68. `
  69. let variables = {
  70. }
  71. return new Promise((resolve, reject) => {
  72. const timeout = setTimeout(() => {
  73. console.log("Get user info Timeout")
  74. reject('timeout')
  75. }, TIMEOUT)
  76. graphqlCli.query(query, variables).then(result => {
  77. clearTimeout(timeout)
  78. resolve(result)
  79. })
  80. })
  81.  
  82. }
  83. export default {
  84. login,
  85. signup,
  86. getUserInfo
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement