Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { API_URL } from 'react-native-dotenv'
- import graphql from 'graphql-client'
- const LOGIN_URL = API_URL + "/accounts/login?provider=local"
- const SIGNUP_URL = API_URL + "/accounts/signup"
- const TIMEOUT = 5000
- //user = { nickname (or email), password }
- const login = (user) => {
- const userData = { password: user.password }
- if(/@/.test(user.nickname)){
- userData.email = user.nickname
- }
- else{
- userData.nickname = user.nickname
- }
- const requestData = {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify(userData)
- }
- return new Promise((resolve, reject) => {
- const timeout = setTimeout((reject) => {
- console.log("Login Timeout")
- reject('timeout')
- }, 1000, reject)
- fetch(LOGIN_URL, requestData).then(response => {
- clearTimeout(timeout)
- resolve(response.json())
- })
- })
- }
- const signup = (user) => {
- const requestData = {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify(user)
- }
- return fetch(SIGNUP_URL, requestData).then(response => response.json())
- }
- const getUserInfo = (token) => {
- graphqlCli = graphql({
- url: API_URL+"/graphql?token="+token
- })
- let query = `
- query user{
- user{
- user{
- id,
- nickname,
- verified,
- friends,
- avatar,
- email
- }
- errors{
- message
- }
- }
- }
- `
- let variables = {
- }
- return new Promise((resolve, reject) => {
- const timeout = setTimeout(() => {
- console.log("Get user info Timeout")
- reject('timeout')
- }, TIMEOUT)
- graphqlCli.query(query, variables).then(result => {
- clearTimeout(timeout)
- resolve(result)
- })
- })
- }
- export default {
- login,
- signup,
- getUserInfo
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement