users.php 3.43 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';

    /**
     * @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));
    }
}