@@ -116,6 +116,66 @@ className: Template::class,
116116 );
117117 }
118118
119+ #[Route('' , name: 'create ' , methods: ['POST ' ])]
120+ #[OA \Post(
121+ path: '/api/v2/templates ' ,
122+ description: '🚧 **Status: Beta** – This method is under development. Avoid using in production. ' .
123+ 'Returns a JSON response of created template. ' ,
124+ summary: 'Create a new template. ' ,
125+ requestBody: new OA \RequestBody (
126+ description: 'Pass session credentials ' ,
127+ required: true ,
128+ content: new OA \MediaType (
129+ mediaType: 'multipart/form-data ' ,
130+ schema: new OA \Schema (ref: '#/components/schemas/UpdateTemplateRequest ' )
131+ )
132+ ),
133+ tags: ['templates ' ],
134+ parameters: [
135+ new OA \Parameter (
136+ name: 'php-auth-pw ' ,
137+ description: 'Session key obtained from login ' ,
138+ in: 'header ' ,
139+ required: true ,
140+ schema: new OA \Schema (type: 'string ' )
141+ ),
142+ ],
143+ responses: [
144+ new OA \Response (
145+ response: 201 ,
146+ description: 'Success ' ,
147+ content: new OA \JsonContent (
148+ type: 'array ' ,
149+ items: new OA \Items (ref: '#/components/schemas/Template ' )
150+ )
151+ ),
152+ new OA \Response (
153+ response: 403 ,
154+ description: 'Failure ' ,
155+ content: new OA \JsonContent (ref: '#/components/schemas/UnauthorizedResponse ' )
156+ ),
157+ new OA \Response (
158+ response: 422 ,
159+ description: 'Failure ' ,
160+ content: new OA \JsonContent (ref: '#/components/schemas/ValidationErrorResponse ' )
161+ ),
162+ ]
163+ )]
164+ public function createTemplates (Request $ request ): JsonResponse
165+ {
166+ $ this ->requireAuthentication ($ request );
167+
168+ /** @var CreateTemplateRequest $createTemplateRequest */
169+ $ createTemplateRequest = $ this ->validator ->validate ($ request , CreateTemplateRequest::class);
170+ $ template = $ this ->templateManager ->create ($ createTemplateRequest ->getDto ());
171+ $ this ->entityManager ->flush ();
172+
173+ return $ this ->json (
174+ $ this ->normalizer ->normalize ($ template ),
175+ Response::HTTP_CREATED
176+ );
177+ }
178+
119179 #[Route('/defaults ' , name: 'get_defaults ' , methods: ['GET ' ])]
120180 #[OA \Get(
121181 path: '/api/v2/templates/defaults ' ,
@@ -263,66 +323,6 @@ public function getTemplate(
263323 return $ this ->json ($ this ->normalizer ->normalize ($ template ), Response::HTTP_OK );
264324 }
265325
266- #[Route('' , name: 'create ' , methods: ['POST ' ])]
267- #[OA \Post(
268- path: '/api/v2/templates ' ,
269- description: '🚧 **Status: Beta** – This method is under development. Avoid using in production. ' .
270- 'Returns a JSON response of created template. ' ,
271- summary: 'Create a new template. ' ,
272- requestBody: new OA \RequestBody (
273- description: 'Pass session credentials ' ,
274- required: true ,
275- content: new OA \MediaType (
276- mediaType: 'multipart/form-data ' ,
277- schema: new OA \Schema (ref: '#/components/schemas/UpdateTemplateRequest ' )
278- )
279- ),
280- tags: ['templates ' ],
281- parameters: [
282- new OA \Parameter (
283- name: 'php-auth-pw ' ,
284- description: 'Session key obtained from login ' ,
285- in: 'header ' ,
286- required: true ,
287- schema: new OA \Schema (type: 'string ' )
288- ),
289- ],
290- responses: [
291- new OA \Response (
292- response: 201 ,
293- description: 'Success ' ,
294- content: new OA \JsonContent (
295- type: 'array ' ,
296- items: new OA \Items (ref: '#/components/schemas/Template ' )
297- )
298- ),
299- new OA \Response (
300- response: 403 ,
301- description: 'Failure ' ,
302- content: new OA \JsonContent (ref: '#/components/schemas/UnauthorizedResponse ' )
303- ),
304- new OA \Response (
305- response: 422 ,
306- description: 'Failure ' ,
307- content: new OA \JsonContent (ref: '#/components/schemas/ValidationErrorResponse ' )
308- ),
309- ]
310- )]
311- public function createTemplates (Request $ request ): JsonResponse
312- {
313- $ this ->requireAuthentication ($ request );
314-
315- /** @var CreateTemplateRequest $createTemplateRequest */
316- $ createTemplateRequest = $ this ->validator ->validate ($ request , CreateTemplateRequest::class);
317- $ template = $ this ->templateManager ->create ($ createTemplateRequest ->getDto ());
318- $ this ->entityManager ->flush ();
319-
320- return $ this ->json (
321- $ this ->normalizer ->normalize ($ template ),
322- Response::HTTP_CREATED
323- );
324- }
325-
326326 #[Route('/{templateId} ' , name: 'update ' , methods: ['PUT ' ])]
327327 #[OA \Put(
328328 path: '/api/v2/templates/{templateId} ' ,
0 commit comments