/**
*
* Copyright
* 2009-2015 Jayway Products AB
* 2016-2017 Föreningen Sambruk
*
* Licensed under AGPL, Version 3.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.gnu.org/licenses/agpl.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package se.streamsource.streamflow.web.rest.resource.organizations;
import se.streamsource.dci.api.ServiceAvailable;
import se.streamsource.dci.restlet.server.CommandQueryResource;
import se.streamsource.dci.restlet.server.api.SubResource;
import se.streamsource.streamflow.web.application.external.IntegrationService;
import se.streamsource.streamflow.web.application.mail.CreateCaseFromEmailService;
import se.streamsource.streamflow.web.context.RequiresPermission;
import se.streamsource.streamflow.web.context.administration.FormOnRemoveContext;
import se.streamsource.streamflow.web.context.administration.OrganizationalUnitsContext;
import se.streamsource.streamflow.web.context.administration.RestrictionsContext;
import se.streamsource.streamflow.web.context.structure.DescribableContext;
import se.streamsource.streamflow.web.domain.interaction.security.PermissionType;
import se.streamsource.streamflow.web.rest.resource.administration.surface.OrganizationAttachmentsResource;
import se.streamsource.streamflow.web.rest.resource.administration.surface.ProxyUsersResource;
import se.streamsource.streamflow.web.rest.resource.external.administration.integrationpoints.IntegrationPointsAdministrationResource;
import se.streamsource.streamflow.web.rest.resource.organizations.forms.DatatypeDefinitionsResource;
import se.streamsource.streamflow.web.rest.resource.organizations.forms.FieldGroupsResource;
import se.streamsource.streamflow.web.rest.resource.organizations.forms.FormsResource;
import se.streamsource.streamflow.web.rest.resource.surface.administration.organizations.accesspoints.AccessPointsAdministrationResource;
import se.streamsource.streamflow.web.rest.resource.surface.administration.organizations.emailaccesspoints.EmailAccessPointsAdministrationResource;
/**
* JAVADOC
*/
@RequiresPermission(PermissionType.administrator)
public class OrganizationResource
extends CommandQueryResource
{
public OrganizationResource()
{
super( OrganizationalUnitsContext.class, DescribableContext.class );
}
@SubResource
public void administrators( )
{
subResource( AdministratorsResource.class );
}
@SubResource
public void labels()
{
subResource( LabelsResource.class );
}
@SubResource
public void selectedlabels()
{
subResource( SelectedLabelsResource.class );
}
@SubResource
public void organizationusers()
{
subResource( OrganizationUsersResource.class );
}
@SubResource
public void groups()
{
subResource( GroupsResource.class );
}
@SubResource
public void roles()
{
subResource( RolesResource.class );
}
@SubResource
public void forms()
{
subResource( FormsResource.class );
}
@SubResource
public void casetypes()
{
subResource( CaseTypesResource.class );
}
@SubResource
public void accesspoints()
{
subResource( AccessPointsAdministrationResource.class );
}
@SubResource @ServiceAvailable( service = CreateCaseFromEmailService.class, availability = true )
public void emailaccesspoints()
{
subResource(EmailAccessPointsAdministrationResource.class);
}
@SubResource @ServiceAvailable( service = IntegrationService.class, availability = true )
public void integrationpoints()
{
subResource( IntegrationPointsAdministrationResource.class );
}
@SubResource
public void proxyusers()
{
subResource( ProxyUsersResource.class );
}
@SubResource
public void attachments()
{
subResource( OrganizationAttachmentsResource.class );
}
@SubResource
public void templates()
{
subResource( SelectedTemplatesResource.class );
}
@SubResource
public void datatypedefinitions()
{
subResource( DatatypeDefinitionsResource.class );
}
@SubResource
public void fieldgroups()
{
subResource( FieldGroupsResource.class );
}
@SubResource
public void restrictions()
{
subResourceContexts( RestrictionsContext.class );
}
@SubResource
public void priorities()
{
subResource( PrioritiesResource.class );
}
@SubResource
public void formondelete()
{
subResourceContexts( FormOnRemoveContext.class );
}
@SubResource
public void mailrestrictions()
{
subResource( MailRestrictionsResource.class );
}
@SubResource
public void removedcasetypes()
{
subResource( RemovedCaseTypesResource.class);
}
}