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 22 23 24 25              12x 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;
      });
  };