3
3
namespace NewfoldLabs \WP \Module \Onboarding \RestApi ;
4
4
5
5
use NewfoldLabs \WP \Module \Onboarding \Permissions ;
6
- use NewfoldLabs \WP \Module \Onboarding \Data \Services \SiteGenService ;
6
+ use NewfoldLabs \WP \Module \Onboarding \Data \Services \SiteGenService as LegacySiteGenService ;
7
7
use NewfoldLabs \WP \Module \Onboarding \Data \SiteGen as SiteGenData ;
8
+ use NewfoldLabs \WP \Module \Onboarding \Services \Ai \ContentGeneration \SitekitsContentGeneration ;
9
+ use NewfoldLabs \WP \Module \Onboarding \Services \SiteGenService ;
8
10
9
11
/**
10
12
* Class SiteGenController
@@ -130,6 +132,10 @@ public function get_homepages_args() {
130
132
'type ' => 'string ' ,
131
133
'sanitize_callback ' => 'sanitize_text_field ' ,
132
134
),
135
+ 'site_type ' => array (
136
+ 'required ' => true ,
137
+ 'type ' => 'string ' ,
138
+ ),
133
139
'locale ' => array (
134
140
'required ' => true ,
135
141
'type ' => 'string ' ,
@@ -182,7 +188,7 @@ public function get_regenerate_homepage_args() {
182
188
* @return array
183
189
*/
184
190
public function get_enabled_identifiers () {
185
- return array_keys ( array_filter ( SiteGenService ::enabled_identifiers () ) );
191
+ return array_keys ( array_filter ( LegacySiteGenService ::enabled_identifiers () ) );
186
192
}
187
193
188
194
/**
@@ -193,7 +199,7 @@ public function get_enabled_identifiers() {
193
199
* @return array|WP_Error
194
200
*/
195
201
public function generate_sitegen_meta ( \WP_REST_Request $ request ) {
196
- if ( ! SiteGenService ::is_enabled () ) {
202
+ if ( ! LegacySiteGenService ::is_enabled () ) {
197
203
return new \WP_Error (
198
204
'nfd_onboarding_error ' ,
199
205
'SiteGen is Disabled. ' ,
@@ -207,7 +213,7 @@ public function generate_sitegen_meta( \WP_REST_Request $request ) {
207
213
$ locale = $ request ->get_param ( 'locale ' );
208
214
$ skip_cache = $ request ->get_param ( 'skip_cache ' );
209
215
210
- return SiteGenService ::instantiate_site_meta (
216
+ return LegacySiteGenService ::instantiate_site_meta (
211
217
$ site_info ,
212
218
$ identifier ,
213
219
$ site_type ,
@@ -223,7 +229,7 @@ public function generate_sitegen_meta( \WP_REST_Request $request ) {
223
229
* @return array
224
230
*/
225
231
public function get_homepages ( \WP_REST_Request $ request ) {
226
- $ existing_homepages = SiteGenService ::get_homepages ();
232
+ $ existing_homepages = LegacySiteGenService ::get_homepages ();
227
233
if ( ! empty ( $ existing_homepages ) ) {
228
234
return new \WP_REST_Response ( $ existing_homepages , 200 );
229
235
}
@@ -233,24 +239,35 @@ public function get_homepages( \WP_REST_Request $request ) {
233
239
$ site_type = $ request ->get_param ( 'site_type ' );
234
240
$ locale = $ request ->get_param ( 'locale ' );
235
241
236
- $ target_audience = SiteGenService::instantiate_site_meta ( $ site_info , 'target_audience ' , $ site_type , $ locale );
237
- if ( is_wp_error ( $ target_audience ) ) {
238
- return $ target_audience ;
239
- }
240
-
241
- $ content_style = SiteGenService::instantiate_site_meta ( $ site_info , 'content_tones ' , $ site_type , $ locale );
242
- if ( is_wp_error ( $ content_style ) ) {
243
- return $ content_style ;
242
+ $ homepages = [];
243
+ if ( SitekitsContentGeneration::site_type_supported ( $ site_type ) ) {
244
+ $ siteGenService = new SiteGenService ();
245
+ $ homepages = $ siteGenService ->get_sitekits (
246
+ $ site_description ,
247
+ $ site_type ,
248
+ $ locale ,
249
+ true
250
+ );
251
+ } else {
252
+ $ target_audience = LegacySiteGenService::instantiate_site_meta ( $ site_info , 'target_audience ' , $ site_type , $ locale );
253
+ if ( is_wp_error ( $ target_audience ) ) {
254
+ return $ target_audience ;
255
+ }
256
+
257
+ $ content_style = LegacySiteGenService::instantiate_site_meta ( $ site_info , 'content_tones ' , $ site_type , $ locale );
258
+ if ( is_wp_error ( $ content_style ) ) {
259
+ return $ content_style ;
260
+ }
261
+
262
+ $ homepages = LegacySiteGenService::generate_homepages (
263
+ $ site_description ,
264
+ $ site_type ,
265
+ $ content_style ,
266
+ $ target_audience ,
267
+ $ locale ,
268
+ );
244
269
}
245
270
246
- $ homepages = SiteGenService::generate_homepages (
247
- $ site_description ,
248
- $ site_type ,
249
- $ content_style ,
250
- $ target_audience ,
251
- $ locale ,
252
- );
253
-
254
271
if ( is_wp_error ( $ homepages ) ) {
255
272
return $ homepages ;
256
273
}
@@ -273,19 +290,19 @@ public function regenerate_homepage( \WP_REST_Request $request ) {
273
290
$ locale = $ request ->get_param ( 'locale ' );
274
291
$ skip_cache = $ request ->get_param ( 'skip_cache ' );
275
292
276
- $ target_audience = SiteGenService ::instantiate_site_meta ( $ site_info , 'target_audience ' , $ locale , $ skip_cache );
293
+ $ target_audience = LegacySiteGenService ::instantiate_site_meta ( $ site_info , 'target_audience ' , $ locale , $ skip_cache );
277
294
if ( is_wp_error ( $ target_audience ) ) {
278
295
return $ target_audience ;
279
296
}
280
- $ content_style = SiteGenService ::instantiate_site_meta ( $ site_info , 'content_tones ' , $ locale , $ skip_cache );
297
+ $ content_style = LegacySiteGenService ::instantiate_site_meta ( $ site_info , 'content_tones ' , $ locale , $ skip_cache );
281
298
if ( is_wp_error ( $ content_style ) ) {
282
299
return $ content_style ;
283
300
}
284
301
285
302
if ( $ is_favorite ) {
286
- $ result = SiteGenService ::regenerate_favorite_homepage ( $ slug , $ color_palette );
303
+ $ result = LegacySiteGenService ::regenerate_favorite_homepage ( $ slug , $ color_palette );
287
304
} else {
288
- $ result = SiteGenService ::regenerate_homepage ( $ site_description , $ content_style , $ target_audience , $ locale );
305
+ $ result = LegacySiteGenService ::regenerate_homepage ( $ site_description , $ content_style , $ target_audience , $ locale );
289
306
}
290
307
291
308
if ( null === $ result ) {
@@ -314,22 +331,22 @@ public function publish_sitemap_pages( \WP_REST_Request $request ) {
314
331
$ locale = $ request ->get_param ( 'locale ' );
315
332
$ skip_cache = $ request ->get_param ( 'skip_cache ' );
316
333
317
- $ target_audience = SiteGenService ::instantiate_site_meta ( $ site_info , 'target_audience ' , $ site_type , $ locale , $ skip_cache );
334
+ $ target_audience = LegacySiteGenService ::instantiate_site_meta ( $ site_info , 'target_audience ' , $ site_type , $ locale , $ skip_cache );
318
335
if ( is_wp_error ( $ target_audience ) ) {
319
336
return $ target_audience ;
320
337
}
321
338
322
- $ content_style = SiteGenService ::instantiate_site_meta ( $ site_info , 'content_tones ' , $ site_type , $ locale , $ skip_cache );
339
+ $ content_style = LegacySiteGenService ::instantiate_site_meta ( $ site_info , 'content_tones ' , $ site_type , $ locale , $ skip_cache );
323
340
if ( is_wp_error ( $ content_style ) ) {
324
341
return $ content_style ;
325
342
}
326
343
327
- $ sitemap = SiteGenService ::instantiate_site_meta ( $ site_info , 'sitemap ' , $ site_type , $ locale , $ skip_cache );
344
+ $ sitemap = LegacySiteGenService ::instantiate_site_meta ( $ site_info , 'sitemap ' , $ site_type , $ locale , $ skip_cache );
328
345
if ( is_wp_error ( $ sitemap ) ) {
329
346
return $ sitemap ;
330
347
}
331
348
332
- SiteGenService ::publish_sitemap_pages ( $ site_description , $ site_type , $ content_style , $ target_audience , $ sitemap , $ locale );
349
+ LegacySiteGenService ::publish_sitemap_pages ( $ site_description , $ site_type , $ content_style , $ target_audience , $ sitemap , $ locale );
333
350
334
351
return new \WP_REST_Response ( array (), 201 );
335
352
}
0 commit comments