Skip to content

Commit 7d21645

Browse files
committed
Collaborative Editing criterions and sort clauses
1 parent 23be66d commit 7d21645

31 files changed

+696
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
description: CreatedAt Search Criterion
3+
---
4+
5+
# CreatedAt Search Criterion
6+
7+
The `CreatedAt` Search Criterion searches for invitations based on the date they were created.
8+
9+
## Arguments
10+
11+
- `value` - date to be matched, provided as a DateTimeInterface object
12+
- `operator` - optional operator string (EQ, GT, GTE, LT, LTE)
13+
14+
## Example
15+
16+
```php
17+
$criteria = new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\CreatedAt(
18+
new DateTime('2025-05-01 14:07:02'),
19+
'GTE'
20+
);
21+
22+
$query = new InvitationQuery($criteria);
23+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
description: CreatedAt Sort Clause
3+
---
4+
5+
# CreatedAt Sort Clause
6+
7+
The `CreatedAt` Sort Clause sorts search results by the date and time of the creation of invitation.
8+
9+
## Arguments
10+
11+
- (optional) `direction` - SortDirection constant, either SortDirection::ASC or SortDirection::DESC.
12+
13+
## Example
14+
15+
```php
16+
$sortClause = [new \Ibexa\Contracts\Collaboration\Invitation\Query\SortClause\CreatedAt(SortDirection::DESC)]);
17+
18+
$query = new InvitationQuery($criteria, sortClause);
19+
```
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
description: Id Search Criterion
3+
---
4+
5+
# Id Criterion
6+
7+
The `Id` Search Criterion searches for invitations based on invitation ID.
8+
9+
## Arguments
10+
11+
- `value` - integer(s) representing the Invitation ID(s)
12+
13+
## Example
14+
15+
```php
16+
$criteria = new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Id(1);
17+
18+
OR
19+
20+
$criteria = new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Id([1, 2]);
21+
22+
$query = new SessionQuery($criteria);
23+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
description: InvitationId Sort Clause
3+
---
4+
5+
# InvitationId Sort Clause
6+
7+
The `InvitationId` Sort Clause sorts search results by invitation ID.
8+
9+
## Arguments
10+
11+
- (optional) `direction` - SortDirection constant, either SortDirection::ASC or SortDirection::DESC.
12+
13+
## Example
14+
15+
```php
16+
$sortClause = [new \Ibexa\Contracts\Collaboration\Invitation\Query\SortClause\Id(SortDirection::DESC)]);
17+
18+
$query = new InvitationQuery($criteria, sortClause);
19+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
description: InvitationStatus Sort Clause
3+
---
4+
5+
# InvitationStatus Sort Clause
6+
7+
The `InvitationStatus` Sort Clause sorts search results by invitation status.
8+
9+
## Arguments
10+
11+
- (optional) `direction` - SortDirection constant, either SortDirection::ASC or SortDirection::DESC.
12+
13+
## Example
14+
15+
```php
16+
$sortClause = [new \Ibexa\Contracts\Collaboration\Invitation\Query\SortClause\Status(SortDirection::DESC)]);
17+
18+
$query = new InvitationQuery($criteria, sortClause);
19+
```
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
description: LogicalAnd Search Criterion
3+
---
4+
5+
# LogicalAnd Criterion
6+
7+
The `LogicalAnd` Search Criterion matches combined invitations by the logical operator.
8+
9+
## Example
10+
11+
```php
12+
$currentUser = $this->permissionResolver->getCurrentUserReference();
13+
14+
$criteria = \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\LogicalAnd(
15+
new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Status('pending'),
16+
new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Sender($currentUser)
17+
);
18+
19+
$query = new InvitationQuery($criteria);
20+
```
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
description: LogicalOr Search Criterion
3+
---
4+
5+
# LogicalOr Criterion
6+
7+
The `LogicalOr` Search Criterion matches combined invitations by the logical operator.
8+
9+
## Example
10+
11+
```php
12+
$criteria = \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\LogicalOr( ,
13+
new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Id(1),
14+
new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Status('pending')
15+
);
16+
17+
$query = new InvitationQuery($criteria);
18+
```
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
description: Sender Search Criterion
3+
---
4+
5+
# Sender Search Criterion
6+
7+
The `Sender` Search Criterion searches for invitations based on invitation sender.
8+
9+
## Arguments
10+
11+
- `value` - user(s) to be matched, provided as a UserReference object
12+
13+
## Example
14+
15+
```php
16+
$user = $this->userService->loadUserByLogin('foo');
17+
$currentUser = $this->permissionResolver->getCurrentUserReference();
18+
19+
$criteria = new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Owner($user);
20+
21+
OR
22+
23+
$criteria = new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Owner([$user, $currentUser]);
24+
25+
$query = new InvitationQuery($criteria);
26+
```
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
description: Session Search Criterion
3+
---
4+
5+
# Session Search Criterion
6+
7+
The `Session` Search Criterion searches for invitations based on session.
8+
9+
## Arguments
10+
11+
- `value` - objects(s) representing the session(s) and implementing `\Ibexa\Contracts\Collaboration\Session\SessionInterface`
12+
13+
## Example
14+
15+
```php
16+
$firstSession = $this->sessionService->getSession(1);
17+
$secondSession = $this->sessionService->getSession(2);
18+
19+
$criteria = new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Session($firstSession);
20+
21+
OR
22+
23+
$criteria = new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Session([$firstSession, $secondSession]);
24+
25+
$query = new InvitationQuery($criteria);
26+
```
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
description: Status Search Criterion
3+
---
4+
5+
# Status Search Criterion
6+
7+
The `Status` Search Criterion searches for invitations based on status.
8+
9+
## Arguments
10+
11+
- `value` - string(s) representing the invitation status(es)
12+
13+
## Example
14+
15+
```php
16+
$criteria = new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Type('pending');
17+
18+
OR
19+
20+
$criteria = new \Ibexa\Contracts\Collaboration\Invitation\Query\Criterion\Type(['pending', 'accepted']);
21+
22+
$query = new InvitationQuery($criteria);
23+
```

0 commit comments

Comments
 (0)