getsno / relesys-users
为Laravel提供的Relesys用户管理API客户端
v2.0.0
2024-04-25 08:29 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.5
- illuminate/support: ^11.0
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^11.0
README
此Laravel包提供了一种简单清晰的方式来访问Relesys用户管理API端点、查询数据和更新现有条目。
安装
此版本需要PHP ^8.1并支持Laravel 10。
-
使用composer安装此包
composer require getsno/relesys-api
-
获取您的Relesys API访问凭证,方法请参阅他们的文档(要使用用户管理API,您必须有权访问
relesys.api.users
作用域)。 -
添加到您的.env文件中
RELESYS_CLIENT_ID="" RELESYS_CLIENT_SECRET=""
用法
该包支持“用户管理”文档部分中的所有端点(包括排序、过滤和分页)。
包的接口与文档部分非常相似(customFields
、departments
、userGroups
、users
、communication
),方法名称与端点名称相同。
示例
use \Relesys; use \Getsno\Relesys\Api\UserManagement\Entities\User; use \Getsno\Relesys\Api\UserManagement\Enums\UserStatus; use \Getsno\Relesys\Api\ApiQueryParams; use \Getsno\Relesys\Api\UserManagement\Entities\Patches\UserPatch; // create user $user = User::fromArray([ 'name' => 'Anton', 'primaryDepartmentId' => '0956339c-f3db-4a58-b6b3-d04a56dc85f6', 'phoneNumber' => [ 'countryCode' => 47, 'number' => '777777', ], 'userGroups' => [ [ 'id': 'bfab8670-b3a4-4a6b-bc3a-1d1c7c13a636', 'dataSource': 'RelesysAPI', ], [ 'id': 'a213e04f-0860-4449-80a3-5e19771ae57b', 'dataSource': 'RelesysAPI', ] ], ]); $newUser = Relesys::users()->createUser($newUser); // get user $user = Relesys::users()->getUser('1cb8e33e-32d6-4353-9b15-93115d96580a'); // change user status Relesys::users()->changeUserStatus(UserStatus::Disabled); // get users (with filtering, sorting and pagination) $queryParams = (new ApiQueryParams) ->addFilter('status', UserStatus::Activated->value) ->sortBy('name') ->limit(10); $usersBatchResponse = Relesys::users()->getUsers(queryParams: $queryParams, page: 2); // update user $userPatch = (new UserPatch()) ->title('Test title') ->birthDate(Carbon::parse('05-02-1991')) ->secondaryPhoneNumber(PhoneNumber::fromArray(['countryCode' => 47, 'number' => '777777'])); $user = Relesys::users()->updateUser('1cb8e33e-32d6-4353-9b15-93115d96580a', $userPatch); // get department Relesys::departments()->getDepartment('ef6a9dfe-b216-4303-829f-cf2e64bf72a1'); // get user group Relesys::userGroups()->getUserGroup('f2610cc5-8466-4c9f-aa07-0175290e4f37'); // get custom fields $customFieldsBatchResponse = Relesys::customFields()->getCustomFields();
您还可以通过检查/tests
目录中的包测试来找到更多用法示例。
测试
测试基于testbench包,这意味着测试可以直接运行,Laravel会自动引导。
测试支持两种模式:隔离模式(模拟请求)或使用真实凭证(对API的实时请求)。默认情况下,测试在隔离模式下运行,要使用真实请求:将phpunit.xml.dist
复制到phpunit.xml
,取消注释包含RELESYS_CLIENT_ID
RELESYS_CLIENT_SECRET
的行,并设置相应的值。
这里有一个可用的docker配置。我强烈建议使用它来运行测试。
cd docker docker compose up -d docker exec -it relesys bash # (optional) to debug a test with xdebug - there's an alias to activate it # call the alias again to disable it xdebug_cli_toggle composer test
变更日志
有关最近更改的更多信息,请参阅RELEASES。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。