6
6
7
7
namespace Chamilo \CoreBundle \Entity ;
8
8
9
+ use ApiPlatform \Core \Serializer \Filter \GroupFilter ;
9
10
use ApiPlatform \Doctrine \Orm \Filter \OrderFilter ;
10
11
use ApiPlatform \Doctrine \Orm \Filter \SearchFilter ;
11
12
use ApiPlatform \Metadata \ApiFilter ;
35
36
#[ApiResource(
36
37
operations: [
37
38
new Get (
39
+ uriTemplate: '/sessions/{id} ' ,
38
40
normalizationContext: [
39
- 'groups ' => ['session:read ' , ' session:item:read ' ],
41
+ 'groups ' => ['session:basic ' ],
40
42
],
41
43
security: "is_granted('ROLE_ADMIN') or is_granted('VIEW', object) "
42
44
),
96
98
new Post (security: "is_granted('ROLE_ADMIN') " ),
97
99
new Delete (security: "is_granted('DELETE', object) " ),
98
100
],
99
- normalizationContext: ['groups ' => ['session:read ' ]],
101
+ normalizationContext: ['groups ' => ['session:basic ' ]],
100
102
denormalizationContext: ['groups ' => ['session:write ' ]],
101
103
security: "is_granted('ROLE_ADMIN') "
102
104
)]
105
107
#[ORM \EntityListeners([SessionListener::class])]
106
108
#[ORM \Entity(repositoryClass: SessionRepository::class)]
107
109
#[UniqueEntity('title ' )]
108
- #[ApiFilter(filterClass: SearchFilter::class, properties: ['title ' => 'partial ' ])]
109
- #[ApiFilter(filterClass: PropertyFilter::class)]
110
- #[ApiFilter(filterClass: OrderFilter::class, properties: ['id ' , 'title ' ])]
110
+ #[ApiFilter(SearchFilter::class, properties: ['title ' => 'partial ' ])]
111
+ #[ApiFilter(PropertyFilter::class)]
112
+ #[ApiFilter(OrderFilter::class, properties: ['id ' , 'title ' ])]
113
+ #[ApiFilter(GroupFilter::class, arguments: ['parameterName ' => 'groups ' ])]
111
114
class Session implements ResourceWithAccessUrlInterface, Stringable
112
115
{
113
116
public const READ_ONLY = 1 ;
@@ -123,6 +126,7 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
123
126
public const SESSION_ADMIN = 4 ;
124
127
125
128
#[Groups([
129
+ 'session:basic ' ,
126
130
'session:read ' ,
127
131
'session_rel_user:read ' ,
128
132
'session_rel_course_rel_user:read ' ,
@@ -149,6 +153,7 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
149
153
mappedBy: 'session ' ,
150
154
targetEntity: SessionRelCourse::class,
151
155
cascade: ['persist ' ],
156
+ fetch: 'EXTRA_LAZY ' ,
152
157
orphanRemoval: true
153
158
)]
154
159
protected Collection $ courses ;
@@ -163,6 +168,7 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
163
168
mappedBy: 'session ' ,
164
169
targetEntity: SessionRelUser::class,
165
170
cascade: ['persist ' , 'remove ' ],
171
+ fetch: 'EXTRA_LAZY ' ,
166
172
orphanRemoval: true
167
173
)]
168
174
protected Collection $ users ;
@@ -221,6 +227,7 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
221
227
222
228
#[Assert \NotBlank]
223
229
#[Groups([
230
+ 'session:basic ' ,
224
231
'session:read ' ,
225
232
'session:write ' ,
226
233
'session_rel_course_rel_user:read ' ,
@@ -235,6 +242,7 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
235
242
protected string $ title ;
236
243
237
244
#[Groups([
245
+ 'session:basic ' ,
238
246
'session:read ' ,
239
247
'session:write ' ,
240
248
])]
@@ -252,11 +260,11 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
252
260
#[ORM \Column(name: 'duration ' , type: 'integer ' , nullable: true )]
253
261
protected ?int $ duration = null ;
254
262
255
- #[Groups(['session:read ' ])]
263
+ #[Groups(['session:basic ' , ' session: read ' ])]
256
264
#[ORM \Column(name: 'nbr_courses ' , type: 'integer ' , unique: false , nullable: false )]
257
265
protected int $ nbrCourses ;
258
266
259
- #[Groups(['session:read ' ])]
267
+ #[Groups(['session:basic ' , ' session: read ' ])]
260
268
#[ORM \Column(name: 'nbr_users ' , type: 'integer ' , unique: false , nullable: false )]
261
269
protected int $ nbrUsers ;
262
270
@@ -265,6 +273,7 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
265
273
protected int $ nbrClasses ;
266
274
267
275
#[Groups([
276
+ 'session:basic ' ,
268
277
'session:read ' ,
269
278
'session:write ' ,
270
279
])]
0 commit comments