From 7e89c53fe8026cd485129df36b5678138b7d5eb1 Mon Sep 17 00:00:00 2001 From: Raluca Munteanu Date: Thu, 10 Nov 2016 16:04:34 +0000 Subject: [PATCH] REPO-1457: The create site REST API implementation has appropriate extension points git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@132658 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/rest/api/impl/SitesImpl.java | 23 +++++++++++++++++-- .../alfresco/rest/api/tests/TestSites.java | 7 ++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/source/java/org/alfresco/rest/api/impl/SitesImpl.java b/source/java/org/alfresco/rest/api/impl/SitesImpl.java index 5ac570b745..9844bc8b49 100644 --- a/source/java/org/alfresco/rest/api/impl/SitesImpl.java +++ b/source/java/org/alfresco/rest/api/impl/SitesImpl.java @@ -1090,6 +1090,25 @@ public class SitesImpl implements Sites } + /** + * Uses site service for creating site info + * + * Extracted this call in a separate method because it might be needed to + * call different site service method when creating site info (e.g. + * siteService.createSite(String, String, String, String, SiteVisibility, QName)) + * + * @param site + * @return + */ + protected SiteInfo createSite(Site site) + { + if (site.getPreset() != null) + { + throw new InvalidArgumentException("Site preset should not be set"); + } + return siteService.createSite(DEFAULT_SITE_PRESET, site.getId(), site.getTitle(), site.getDescription(), site.getVisibility()); + } + /** * Create default/fixed preset (Share) site - with DocLib container/component * @@ -1104,7 +1123,7 @@ public class SitesImpl implements Sites SiteInfo siteInfo = null; try { - siteInfo = siteService.createSite(DEFAULT_SITE_PRESET, site.getId(), site.getTitle(), site.getDescription(), site.getVisibility()); + siteInfo = createSite(site); } catch (SiteServiceException sse) { @@ -1182,7 +1201,7 @@ public class SitesImpl implements Sites return getSite(siteId); } - private Site validateSite(Site site) + protected Site validateSite(Site site) { // site title - mandatory String siteTitle = site.getTitle(); diff --git a/source/test-java/org/alfresco/rest/api/tests/TestSites.java b/source/test-java/org/alfresco/rest/api/tests/TestSites.java index 68736f012d..bdd220e1a3 100644 --- a/source/test-java/org/alfresco/rest/api/tests/TestSites.java +++ b/source/test-java/org/alfresco/rest/api/tests/TestSites.java @@ -490,6 +490,13 @@ public class TestSites extends EnterpriseTestApi } } + // -ve test - create site with a given preset (REPO-194 and REPO-1523) + { + publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1Id)); + + Site site = new SiteImpl().withPreset("testSitePreset"); + sitesProxy.createSite(site, 400); + } // Test Case cloud-1478 // Test Case cloud-1479 // user invited to network and user invited to site