@@ -116,6 +116,98 @@ 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 (
140+ type: 'array ' ,
141+ items: new OA \Items (
142+ properties: [
143+ new OA \Property (property: 'key ' , type: 'string ' , example: 'system ' ),
144+ new OA \Property (property: 'name ' , type: 'string ' , example: 'System ' ),
145+ new OA \Property (property: 'description ' , type: 'string ' , example: 'Default system email ' ),
146+ new OA \Property (property: 'file ' , type: 'string ' , example: 'system.html ' ),
147+ ],
148+ type: 'object '
149+ ) )
150+ ),
151+ new OA \Response (
152+ response: 403 ,
153+ description: 'Failure ' ,
154+ content: new OA \JsonContent (ref: '#/components/schemas/UnauthorizedResponse ' )
155+ )
156+ ]
157+ )]
158+ public function listDefaults (Request $ request ): JsonResponse
159+ {
160+ $ this ->requireAuthentication ($ request );
161+
162+ return $ this ->json ($ this ->templateManager ->listDefaults (), Response::HTTP_OK );
163+ }
164+
165+ #[Route('/defaults/{key} ' , name: 'create_default ' , methods: ['POST ' ])]
166+ #[OA \Post(
167+ path: '/api/v2/templates/defaults/{key} ' ,
168+ description: '🚧 **Status: Beta** – This method is under development. Avoid using in production. ' .
169+ 'Creates a new template from a default template key. ' ,
170+ summary: 'Creates a template from a default template. ' ,
171+ tags: ['templates ' ],
172+ parameters: [
173+ new OA \Parameter (
174+ name: 'php-auth-pw ' ,
175+ description: 'Session key obtained from login ' ,
176+ in: 'header ' ,
177+ required: true ,
178+ schema: new OA \Schema (type: 'string ' )
179+ ),
180+ new OA \Parameter (
181+ name: 'key ' ,
182+ description: 'Default template key ' ,
183+ in: 'path ' ,
184+ required: true ,
185+ schema: new OA \Schema (type: 'string ' , enum: ['system ' , 'responsive ' ])
186+ ),
187+ ],
188+ responses: [
189+ new OA \Response (
190+ response: 201 ,
191+ description: 'Success ' ,
192+ content: new OA \JsonContent (ref: '#/components/schemas/Template ' )
193+ ),
194+ new OA \Response (
195+ response: 403 ,
196+ description: 'Failure ' ,
197+ content: new OA \JsonContent (ref: '#/components/schemas/UnauthorizedResponse ' )
198+ )
199+ ]
200+ )]
201+ public function createDefaultTemplate (Request $ request , string $ key ): JsonResponse
202+ {
203+ $ this ->requireAuthentication ($ request );
204+
205+ $ template = $ this ->templateManager ->createDefaultTemplate ($ key );
206+ $ this ->entityManager ->flush ();
207+
208+ return $ this ->json ($ this ->normalizer ->normalize ($ template ), Response::HTTP_CREATED );
209+ }
210+
119211 #[Route('/{templateId} ' , name: 'get_one ' , requirements: ['templateId ' => '\d+ ' ], methods: ['GET ' ])]
120212 #[OA \Get(
121213 path: '/api/v2/templates/{templateId} ' ,
0 commit comments