Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/graphql / src / endpoints / user / loginParams.ts
Size: Mime:
// # .graphql
// input Login {
//   # google, facebook, twitter, optional
//   provider: String = 'skava'
//   authToken: String
//   # email or number or username
//   username: String
//   password: String
// }

interface LoginRequest {
  provider: string
  authToken: string
  username: string
  password: string
}

const fromSocialToLoginType = (type: string) => {
  switch (type) {
    case 'google':
      return 3
    case 'twitter':
      return 4
    case 'facebook':
      return 2
    case 'skava':
      return '0'
    default:
      return '0'
  }
}

const toUserLoginDefaultParams = () => {
  const commonParams = {
    // these come from defaults or env...
    partnerId,
    messageCampaignId: '',

    promocode: '',
    promocampaign: '',
  }


  const params = {
    locale: 'en_US',
    channel: '',
    ...commonParams,
  }

  return params
}

const fromInputToStreamCasing = (data: LoginRequest) => {
  const { username, password } = data
  return {
    userName: username,
    password,
  }
}
const toLogInParams = (data: LoginRequest) => {
  const userinfo = fromInputToStreamCasing(data)
  const defaultParams = toUserLoginDefaultParams()
  const type = fromSocialToLoginType(data.provider)

  const params = {
    ...defaultParams,
    // !! not sure if this is right for userinfo?
    userinfo,
    //
    customParams: {
      value: data.provider,
    },
    type,
  }

  if (data.authToken) {
    params.authToken = authToken
  }

  return params
}