ivanwitzke/agendor-php

v1.1.5 2016-07-23 04:23 UTC

This package is auto-updated.

Last update: 2024-09-16 03:01:05 UTC


README

#agendor-php #

Code Climate

###关于###

这是一个用于与 Agendor API 一起使用的 php 库。要使用它,您首先需要一个 API Token,可以在 这里 找到

###安装### 使用 Composer 安装

composer require ivanwitzke/agendor-php

或者下载最新的 zip 文件 并将其解压到您的项目文件夹中,然后引入 agendor-php/Agendor.php 文件。

<?php
    require("PATH_TO_PROJECT_FOLDER/agendor-php/Agendor.php");

然后在控制器(您将使用它的地方)中设置 API Key / Token

Ivanwitzke\Agendor\Agendor::setApiKey('YOURTOKEN');

###模型###

Agendor API 支持对 "People","Organization","Task" 和 "Deal" 的请求。这些中的一个都由这个库中同名类的类表示,并且具有与在 Api 文档 中定义的相同的属性。

###方法### 请求所有项目(分页)

$page 是要返回的页面;$limit 是每页的项目数量;

$peopleList = Ivanwitzke\Agendor\People::all($page, $limit);
$orgsList = Ivanwitzke\Agendor\Organization::all($page, $limit);
$dealsList = Ivanwitzke\Agendor\Deal::all($page, $limit);
$tasksList = Ivanwitzke\Agendor\Task::all($page, $limit);

请求一个项目

$person = Ivanwitzke\Agendor\People::findById($peopleId);
$org = Ivanwitzke\Agendor\Organization::findById($organizationId);
$deal = Ivanwitzke\Agendor\Deal::findById($dealId);
$task = Ivanwitzke\Agendor\Task::findById($taskId);

创建一个新的项目

通过传递一个包含所需所有信息的数组来创建一个新的对象实例,然后运行 $object->create();

示例

$personData = array(
    "name" => "Person Name",
    "role" => "Manager",
    "emails" => array(
	    "mail1@mail.com",
		"mail2@mail.com"
		"mailN@mail.com"
    ),
    "address" => array(
		"postalCode" => 12345678, // numbers only
		"streetName" => "Example Street",
		"streetNumber" => 9999 // numbers only
    );
);

$person = new Ivanwitzke\Agendor\People($personData);

try {
	$person->create();
} catch (Exception $e) {
	die($e->getMessage());
}

或者使用 "set" 方法:set + 属性名称驼峰式(例如:Ex: $object->setName("项目名称");

示例

$person = new Ivanwitzke\Agendor\People();
$person->setName("Person Name");
$person->setCategoryId(123);

$mobilePhone = new Ivanwitzke\Agendor\Object();
$mobilePhone->setType('mobile');
$mobilePhone->setNumber("1198765432");

$workPhone = new Ivanwitzke\Agendor\Object();
$workPhone->setType('work');
$workPhone->setNumber("1198765432");

$person->setPhones(array($mobilePhone, $workPhone));

$address = new Ivanwitzke\Agendor\Object();
$address->setStreetName("Street");
$address->setStreetNumber(999); // Must be number
$address->setCountry("Country");

$person->setAddress($address);

try {
	$person->create();
} catch (Exception $e) {
	die($e->getMessage());
}

如果一切顺利,响应将是对象实例,否则将抛出 API 发送的错误。

对于必须作为对象传递给 API 的属性(如 Ivanwitzke\Agendor\People->address),有一个通用的 Ivanwitzke\Agendor\Object 类,您可以实例化并像使用任何主类一样设置其值。

注意:它们也可以设置为数组。

更新数据

首先找到要更新的内容

$organization = Ivanwitzke\Agendor\Organization::findById($id);

然后更新所需的内容并保存

if ($organization) { // We update only if the item was found
    $organization->setNickname("New nickname");
    $organization->setLegalName("New Legal Name");
    $organization->setEmails(array($newEmail));
    // Address property can be an Array or an Agendor\Object() instance;
    $organization->setAddress(array(
        'postalCode' => $newPostalCode, // numbers only;
        'streetName' => $newStreetName,
        'streetNumber' => $newStreetNumber // Also only numbers;
    ));
    try {
        $organization->save(); // Save the changes
    } catch (Exception $e) {
        return $response->withStatus($e->getCode())->write($e->getMessage());
    }
}

create() 方法相同,save() 将在成功更新时返回对象,并抛出 API 发送的任何错误。

删除对象

调用 Ivanwitzke\Agendor\<Object>::delete($id) 方法。

示例

$response = Ivanwitzke\Agendor\Task::delete($taskId);

如果成功,则返回 true 并抛出 API 发送的错误。