@@ -116,6 +116,88 @@ className: Template::class,
116116 );
117117 }
118118
119+ #[Route('/defaults ' , name: 'get_defaults ' , methods: ['GET ' ])]
120+ #[OA \Get(
121+ path: '/api/v2/templates/defaults ' ,
122+ description: '🚧 **Status: Beta** – This method is under development. Avoid using in production. ' .
123+ 'Returns a JSON list of all available default templates. ' ,
124+ summary: 'Gets a list of all default templates. ' ,
125+ tags: ['templates ' ],
126+ parameters: [
127+ new OA \Parameter (
128+ name: 'php-auth-pw ' ,
129+ description: 'Session key obtained from login ' ,
130+ in: 'header ' ,
131+ required: true ,
132+ schema: new OA \Schema (type: 'string ' )
133+ ),
134+ ],
135+ responses: [
136+ new OA \Response (
137+ response: 200 ,
138+ description: 'Success ' ,
139+ content: new OA \JsonContent (type: 'array ' , items: new OA \Items (type: 'object ' ))
140+ ),
141+ new OA \Response (
142+ response: 403 ,
143+ description: 'Failure ' ,
144+ content: new OA \JsonContent (ref: '#/components/schemas/UnauthorizedResponse ' )
145+ )
146+ ]
147+ )]
148+ public function listDefaults (Request $ request ): JsonResponse
149+ {
150+ $ this ->requireAuthentication ($ request );
151+
152+ return $ this ->json ($ this ->templateManager ->listDefaults (), Response::HTTP_OK );
153+ }
154+
155+ #[Route('/defaults/{key} ' , name: 'create_default ' , methods: ['POST ' ])]
156+ #[OA \Post(
157+ path: '/api/v2/templates/defaults/{key} ' ,
158+ description: '🚧 **Status: Beta** – This method is under development. Avoid using in production. ' .
159+ 'Creates a new template from a default template key. ' ,
160+ summary: 'Creates a template from a default template. ' ,
161+ tags: ['templates ' ],
162+ parameters: [
163+ new OA \Parameter (
164+ name: 'php-auth-pw ' ,
165+ description: 'Session key obtained from login ' ,
166+ in: 'header ' ,
167+ required: true ,
168+ schema: new OA \Schema (type: 'string ' )
169+ ),
170+ new OA \Parameter (
171+ name: 'key ' ,
172+ description: 'Default template key ' ,
173+ in: 'path ' ,
174+ required: true ,
175+ schema: new OA \Schema (type: 'string ' , enum: ['system ' , 'responsive ' ])
176+ ),
177+ ],
178+ responses: [
179+ new OA \Response (
180+ response: 201 ,
181+ description: 'Success ' ,
182+ content: new OA \JsonContent (ref: '#/components/schemas/Template ' )
183+ ),
184+ new OA \Response (
185+ response: 403 ,
186+ description: 'Failure ' ,
187+ content: new OA \JsonContent (ref: '#/components/schemas/UnauthorizedResponse ' )
188+ )
189+ ]
190+ )]
191+ public function createDefaultTemplate (Request $ request , string $ key ): JsonResponse
192+ {
193+ $ this ->requireAuthentication ($ request );
194+
195+ $ template = $ this ->templateManager ->createDefaultTemplate ($ key );
196+ $ this ->entityManager ->flush ();
197+
198+ return $ this ->json ($ this ->normalizer ->normalize ($ template ), Response::HTTP_CREATED );
199+ }
200+
119201 #[Route('/{templateId} ' , name: 'get_one ' , requirements: ['templateId ' => '\d+ ' ], methods: ['GET ' ])]
120202 #[OA \Get(
121203 path: '/api/v2/templates/{templateId} ' ,
0 commit comments