126 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Ftp Api of AlternC, used by alternc-api package
 | 
						|
 */
 | 
						|
class Alternc_Api_Object_Ftp extends Alternc_Api_Legacyobject {
 | 
						|
 | 
						|
    protected $ftp; // m_ftp instance
 | 
						|
 | 
						|
    function __construct($service) {
 | 
						|
        global $ftp;
 | 
						|
        parent::__construct($service);
 | 
						|
        $this->ftp = $ftp;
 | 
						|
    }
 | 
						|
 | 
						|
    /** API Method from legacy class method ftp->add_ftp()
 | 
						|
     * @param $options a hash with parameters transmitted to legacy call
 | 
						|
     * mandatory parameters: prefix, login, pass, dir
 | 
						|
     * @return Alternc_Api_Response whose content is the newly created UID
 | 
						|
     */
 | 
						|
    function add($options) {
 | 
						|
        $mandatory = array("prefix", "login", "pass", "dir");
 | 
						|
        $missing = "";
 | 
						|
        foreach ($mandatory as $key) {
 | 
						|
            if (!isset($options[$key])) {
 | 
						|
                $missing.=$key . " ";
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if ($missing) {
 | 
						|
            return new Alternc_Api_Response(array("code" => self::ERR_INVALID_ARGUMENT, "message" => "Missing or invalid argument: " . $missing));
 | 
						|
        }
 | 
						|
        $ftpid = $this->ftp->add_ftp($options["prefix"], $options["login"], $options["pass"], $options["dir"]);
 | 
						|
        if (!$ftpid) {
 | 
						|
            return $this->alterncLegacyErrorManager();
 | 
						|
        } else {
 | 
						|
            return new Alternc_Api_Response(array("content" => $ftpid));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /** API Method from legacy class method ftp->put_ftp_details()
 | 
						|
     * @param $options a hash with parameters transmitted to legacy call
 | 
						|
     * mandatory parameters: id
 | 
						|
     * non-mandatory: prefix, login, pass, dir
 | 
						|
     * @return Alternc_Api_Response whose content is the updated UID
 | 
						|
     */
 | 
						|
    function update($options) {
 | 
						|
        $defaults = array("prefix", "login", "dir");
 | 
						|
        if (!isset($options["id"])) {
 | 
						|
            return new Alternc_Api_Response(array("code" => self::ERR_INVALID_ARGUMENT, "message" => "Missing or invalid argument: ID"));
 | 
						|
        }
 | 
						|
        $id = intval($options["id"]);
 | 
						|
        $old = $this->ftp->get_ftp_details($id);
 | 
						|
        if (!$old) {
 | 
						|
            return new Alternc_Api_Response(array("code" => self::ERR_NOT_FOUND, "message" => "FTP Account not found"));
 | 
						|
        }
 | 
						|
        foreach ($defaults as $key) {
 | 
						|
            if (!isset($options[$key])) {
 | 
						|
                $options[$key] = $old[$key];
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if (!isset($options["pass"]))
 | 
						|
            $options["pass"] = "";
 | 
						|
        $result = $this->ftp->put_ftp_details($id, $options["prefix"], $options["login"], $options["pass"], $options["dir"]);
 | 
						|
        if (!$result) {
 | 
						|
            return $this->alterncLegacyErrorManager();
 | 
						|
        } else {
 | 
						|
            return new Alternc_Api_Response(array("content" => $result));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /** API Method from legacy class method ftp->del_ftp()
 | 
						|
     * @param $options a hash with parameters transmitted to legacy call
 | 
						|
     * mandatory parameters: id
 | 
						|
     * @return Alternc_Api_Response TRUE if the FTP account has been deleted.
 | 
						|
     */
 | 
						|
    function del($options) {
 | 
						|
        if (!isset($options["id"])) {
 | 
						|
            return new Alternc_Api_Response(array("code" => self::ERR_ALTERNC_FUNCTION, "message" => "Missing or invalid argument: ID"));
 | 
						|
        }
 | 
						|
        $result = $this->ftp->delete_ftp(intval($options["id"]));
 | 
						|
        if (!$result) {
 | 
						|
            return $this->alterncLegacyErrorManager();
 | 
						|
        } else {
 | 
						|
            return new Alternc_Api_Response(array("content" => true));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /** API Method from legacy class method ftp->get_list()
 | 
						|
     * @param $options a hash with parameters transmitted to legacy call
 | 
						|
     * non-mandatory parameters: 
 | 
						|
     *  Any of: offset(int=0), count(int=+inf)
 | 
						|
     * @return Alternc_Api_Response An array with all matching FTP account informations as hashes
 | 
						|
     */
 | 
						|
    function find($options) {
 | 
						|
        $result = $this->ftp->get_list();
 | 
						|
        if (!$result) {
 | 
						|
            return $this->alterncLegacyErrorManager();
 | 
						|
        } else {
 | 
						|
            list($offset, $count) = $this->offsetAndCount($options, count($result));
 | 
						|
            if ($offset != -1 || $count != -1) {
 | 
						|
                $result = array_slice($result, $offset, $count);
 | 
						|
            }
 | 
						|
            return new Alternc_Api_Response(array("content" => $result));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /** API Method from legacy class method ftp->is_ftp()
 | 
						|
     * @param $options a hash with parameters transmitted to legacy call
 | 
						|
     * mandatory parameters: DIR
 | 
						|
     * @return Alternc_Api_Response Integer the ID of the account in this folder, or FALSE
 | 
						|
     */
 | 
						|
    function isFtp($options) {
 | 
						|
        if (!isset($options["dir"])) {
 | 
						|
            return new Alternc_Api_Response(array("code" => self::ERR_INVALID_ARGUMENT, "message" => "Missing or invalid argument: DIR"));
 | 
						|
        }
 | 
						|
        $result = $this->ftp->is_ftp($options["dir"]);
 | 
						|
        if (!$result) {
 | 
						|
            return $this->alterncLegacyErrorManager();
 | 
						|
        } else {
 | 
						|
            return new Alternc_Api_Response(array("content" => $result));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
// class Alternc_Api_Object_Ftp
 |