All files / client/methods login.js

100% Statements 7/7
100% Branches 2/2
100% Functions 3/3
100% Lines 7/7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21            19x 1x 1x 1x   1x         1x 1x      
/* @flow */
 
import invariant from "invariant";
import type { MethodApi } from "../types";
import { isEmail } from "../../utils";
 
export default ({ client, setToken }: MethodApi) => (email: string, password: string): Promise<string> => {
  invariant(typeof email === "string" && isEmail(email), "`email` must be provided.");
  invariant(password, "`password` is required.");
  invariant(password.length, "`password` is required.");
 
  return client
    .api("userinfo", {
      params: { username: email, password: password, getauth: 1, logout: 1 }
    })
    .then(({ auth }) => {
      setToken(auth);
      return auth;
    });
};