users.php 4.54 KB
<?php
class Flora_Api_Service_Users extends Flora_Api_Service
{
    const API_LOGIN = 'users/login';
    const API_CHECKPASSWORD = 'users/checkpassword';
    const API_RESETPASSWORD = 'users/resetpassword';
    const API_LOGGED = 'users/logged';
    const API_LOGOUT = 'users/logout';
    const API_EXISTS = 'users/exists';
    const API_UPDATE = 'users/update';
    const API_ADDRESS_LIST = 'users/address/list';
    const API_ADDRESS_PROCESS = 'users/address/process';
    const API_ADDRESS_DELETE = 'users/address/delete';
    const API_REGISTRATION = 'users/registration';
    const API_SOCIAL_SIGNIN = 'users/social/signin';
    const API_SOCIAL_LOGIN = 'users/social/login';
    const API_SOCIAL_LIST = 'users/social/list';
    const API_SOCIAL_RELATED = 'users/social/related';

    /**
     * @param $email
     * @return Flora_Model_User
     */
    public function registration($email)
    {
        return $this->call(self::API_REGISTRATION, array('email' => $email));
    }

    /**
     * @param $email
     * @param $password
     * @param bool $remember
     * @param bool $checkip
     * @return Flora_Model_User
     */
    public function login($email, $password, $remember = false, $checkip = true)
    {
        return $this->call(self::API_LOGIN, array(
            'email' => $email,
            'password' => $password,
            'remember' => $remember ? 1 : 0,
            'checkip' => $checkip ? 1 : 0
        ));
    }

    /**
     * @param $email
     * @param $password
     * @return bool
     */
    public function checkPassword($email, $password)
    {
        return $this->call(self::API_CHECKPASSWORD, array(
            'email' => $email,
            'password' => $password,
        ));
    }

    /**
     * @param $email
     * @return Flora_Model_User
     */
    public function resetPassword($email)
    {
        return $this->call(self::API_RESETPASSWORD, array(
            'email' => $email
        ));
    }

    /**
     * @return Flora_Model_User|bool
     */
    public function getLoggedUser()
    {
        return $this->call(self::API_LOGGED);
    }

    /**
     * @return bool
     */
    public function logout()
    {
        return $this->call(self::API_LOGOUT);
    }

    /**
     * @param $email
     * @return bool
     */
    public function exists($email)
    {
        return $this->call(self::API_EXISTS, array('email' => $email));
    }

    /**
     * @param string $password
     * @param string $name
     * @param string $phone
     * @param string $country
     * @param string $city
     * @param int $birthday
     * @param string $flowers
     * @return Flora_Model_User
     */
    public function updateInfo($password = '', $name = '', $phone = '', $country = '', $city = '', $birthday = 0, $flowers = '')
    {
        return $this->call(self::API_UPDATE, array(
            'password' => $password,
            'name' => $name,
            'phone' => $phone,
            'country' => $country,
            'city' => $city,
            'birthday' => (int)$birthday,
            'flowers' => $flowers
        ));
    }

    /**
     * @return Flora_Collection|Flora_Model_User_Address[]
     */
    public function addressList()
    {
        return $this->call(self::API_ADDRESS_LIST);
    }

    /**
     * @param Flora_Validation_User_Address $record
     * @return Flora_Model_User_Address
     */
    public function addressProcess(Flora_Validation_User_Address $record)
    {
        return $this->call(self::API_ADDRESS_PROCESS, array(), $record);
    }

    /**
     * @param $id
     * @return int
     */
    public function addressDelete($id)
    {
        return $this->call(self::API_ADDRESS_DELETE, array('id' => $id));
    }

    /**
     * @param $service
     * @param $redirect_success
     * @param $redirect_fail
     * @return string
     */
    public function socialSignin($service, $redirect_success, $redirect_fail)
    {
        return $this->call(self::API_SOCIAL_SIGNIN, array(
            'service' => $service,
            'redirect_success' => $redirect_success,
            'redirect_fail' => $redirect_fail,
        ));
    }

    /**
     * @param $token
     * @return Flora_Model_User
     */
    public function socialLogin($token)
    {
        return $this->call(self::API_SOCIAL_LOGIN, array(
            'token' => $token
        ));
    }

    /**
     * @return stdClass
     */
    public function socialList()
    {
        return $this->call(self::API_SOCIAL_LIST);
    }

    /**
     * @return stdClass
     */
    public function socialRelated()
    {
        return $this->call(self::API_SOCIAL_RELATED);
    }
}