Laravel repository to fetch reports from the Clockify.me reports API.
Official clockify API: https://clockify.me/developers-api
-
You can install the package via composer:
composer require pingsrl/laravel-clockify-api
Optional: The service provider will automatically get registered. Or you may manually add the service provider in your config/app.php file:
'providers' => [ // ... Ping\LaravelClockifyApi\LaravelClockifyApiServiceProvider::class, ];
-
You should publish the config/clockify.php config file with:
php artisan vendor:publish --provider="Ping\LaravelClockifyApi\LaravelClockifyApiServiceProvider"
-
Configure
.env
Add your clockify attributes to your
.env
CLOCKIFY_API_KEY=1234567890 CLOCKIFY_WORKSPACE_ID=1234567890
You can get a report by creating a report and calling the get()
function.
$summaryResponseBody = ClockifyRepository::makeSummaryReport()->get();
$detailedResponseBody = ClockifyRepository::makeDetailedReport()->get();
You can further specify the request data by calling the corresponding functions.
The order of the function calls does not matter, except the get()
-function call. This function has to be the last function which gets called. It represents the executer function and executes the request itself.
The following example requests an summary report for user USER_ID_1 and USER_ID_2, from two days ago until today. The results will be sorted ascending.
$summaryResponseBody = ClockifyRepository::makeSummaryReport()
->users([USER_ID_1, USER_ID_2])
->from(now()->subDays(2))
->to(now())
->sortOrder('ASCENDING')
->get();
| Attribute | function | default behaviour or value
(when not set) | possible for reports |
| -------------------- | ----------------------------------- | ----------------------------------------------- | ---------------------- | --- | ------- | ----------------------- | --- | --- |
| users
| users(array $userIds)
| all | ALL |
| tasks
| tasks(array $taskIds)
| all | ALL |
| containsTags
| containsTags(array $tagIds)
| CONTAINS
| ALL |
| containsOnlyTags
| containsOnlyTags(array $tagIds)
| CONTAINS
| ALL |
| doesNotContainTags
| doesNotContainTags(array $tagIds)
| CONTAINS
| ALL | | tasks
| tasks(array $taskIds)
| all | ALL |
| from
| from(Carbon $fromDate)
| start of current year | ALL |
| to
| to(Carbon $endDate)
| end of current year | ALL |
| sortOrder
| sortOrder(string $sortOrder)
| DESCENDING
| ALL |
| filterGroups
| filterGroups(array $filterGroups)
| ['USER', 'PROJECT', 'TIMEENTRY']
| ClockifySummaryReport |
| page
| page(int $page)
| 1 | ClockifyDetailedReport |
| pageSize
| pageSize(int $pageSize)
| 50 | ClockifyDetailedReport |
Check releases for all notable changes.
The MIT License (MIT). Please see License File for more information.