Package de.iritgo.aktera.address.ws

Source Code of de.iritgo.aktera.address.ws.AddressEndpoint

/**
* This file is part of the Iritgo/Aktera Framework.
*
* Copyright (C) 2005-2011 Iritgo Technologies.
* Copyright (C) 2003-2005 BueroByte GbR.
*
* Iritgo licenses this file to You under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
*
* 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 de.iritgo.aktera.address.ws;


import lombok.Setter;
import javax.inject.Inject;
import org.springframework.ws.server.endpoint.annotation.*;
import de.iritgo.aktera.address.AddressManager;
import de.iritgo.aktera.address.entity.*;
import de.iritgo.aktera.address.entity.Address;
import de.iritgo.aktera.authentication.SecurityContext;
import de.iritgo.aktera.authentication.defaultauth.entity.AkteraUser;
import de.iritgo.aktera.configuration.preferences.PreferencesManager;
import de.iritgo.aktera.permissions.PermissionManager;
import de.iritgo.aktera.webservices.address.*;
import de.iritgo.simplelife.constants.SortOrder;
import de.iritgo.simplelife.data.Tuple3;
import de.iritgo.simplelife.string.StringTools;
import de.iritgo.simplelife.tools.Option;


@Endpoint("de.iritgo.aktera.address.AddressEndpoint")
public class AddressEndpoint
{
  @Setter
  @Inject
  private SecurityContext securityContext;

  @Setter
  @Inject
  private AddressManager addressManager;

  @Setter
  @Inject
  private PreferencesManager preferencesManager;

  @Setter
  @Inject
  private PermissionManager permissionManager;

  @PayloadRoot(localPart = "listAddressStoresRequest", namespace = "http://aktera.iritgo.de/webservices/address")
  public ListAddressStoresResponse listAddressStores(@SuppressWarnings("unused") ListAddressStoresRequest request)
    throws Exception
  {
    AkteraUser user = securityContext.getUser();
    ListAddressStoresResponse response = new ListAddressStoresResponse();
    for (Tuple3<Integer, String, String> store : addressManager.listAddressStoresIdAndNameAndTitle())
    {
      if (permissionManager.hasPermission(user.getName(), "de.iritgo.aktera.address.view",
              AddressStore.class.getName(), store.get1()))
      {
        ListAddressStoresResponse.AddressStore as = new ListAddressStoresResponse.AddressStore();
        as.setId(store.get1());
        as.setName(store.get2());
        as.setTitle(store.get3());
        response.getAddressStore().add(as);
      }
    }
    return response;
  }

  @PayloadRoot(localPart = "getDefaultAddressStoreNameRequest", namespace = "http://aktera.iritgo.de/webservices/address")
  public GetDefaultAddressStoreNameResponse getDefaultAddressStoreName(
          @SuppressWarnings("unused") GetDefaultAddressStoreNameRequest request) throws Exception
  {
    GetDefaultAddressStoreNameResponse response = new GetDefaultAddressStoreNameResponse();
    AkteraUser user = securityContext.getUser();
    AddressStore store = null;
    store = addressManager.getAddressStoreById(preferencesManager.getInt(user.getId(), "address",
            "defaultAddressStore", - 1));
    if (store.getId() == - 1)
    {
      store = addressManager.getDefaultAddressStore();
    }
    response.setName(store.getName());
    return response;
  }

  @PayloadRoot(localPart = "getDefaultAddressStoreIdRequest", namespace = "http://aktera.iritgo.de/webservices/address")
  public GetDefaultAddressStoreIdResponse getDefaultAddressStoreId(
          @SuppressWarnings("unused") GetDefaultAddressStoreIdRequest request) throws Exception
  {
    GetDefaultAddressStoreIdResponse response = new GetDefaultAddressStoreIdResponse();
    AkteraUser user = securityContext.getUser();
    AddressStore store = null;
    store = addressManager.getAddressStoreById(preferencesManager.getInt(user.getId(), "address",
            "defaultAddressStore", - 1));
    if (store.getId() == - 1)
    {
      store = addressManager.getDefaultAddressStore();
    }
    response.setId(store.getId());
    return response;
  }

  @PayloadRoot(localPart = "countAddressesRequest", namespace = "http://aktera.iritgo.de/webservices/address")
  public CountAddressesResponse countAddresses(CountAddressesRequest request) throws Exception
  {
    AkteraUser user = securityContext.getUser();
    AddressStore store = addressManager.getAddressStoreByName(request.getAddressStoreName());
    CountAddressesResponse response = new CountAddressesResponse();
    response.setCount((int) store.countAddressesByOwnerAndSearch(user.getId(), request.getQuery()));
    return response;
  }

  @PayloadRoot(localPart = "listAddressesRequest", namespace = "http://aktera.iritgo.de/webservices/address")
  public ListAddressesResponse listAddresses(ListAddressesRequest request) throws Exception
  {
    AkteraUser user = securityContext.getUser();
    int firstResult = request.getFirstResult() != null ? request.getFirstResult().intValue() : 0;
    int maxResults = request.getMaxResults() != null ? request.getMaxResults().intValue() : - 1;
    SortOrder orderDir = request.getOrderDir() != null ? SortOrder.byId(request.getOrderDir())
            : SortOrder.ASCENDING;
    String orderBy = request.getOrderBy() != null ? request.getOrderBy() : "lastName";
    AddressStore store = addressManager.getAddressStoreByName(request.getAddressStoreName());
    ListAddressesResponse response = new ListAddressesResponse();
    for (Address address : store.createAddressListing(user.getId(), request.getQuery(), orderBy, orderDir,
            firstResult, maxResults))
    {
      ListAddressesResponse.Address addressElement = new ListAddressesResponse.Address();
      addressElement.setId(address.getAnyId().toString());
      addressElement.setFirstName(address.getFirstName());
      addressElement.setLastName(address.getLastName());
      addressElement.setCompany(address.getCompany());
      addressElement.setEmail(address.getEmail());
      addressElement.setHomepage(address.getWeb());
      response.getAddress().add(addressElement);
    }
    return response;
  }

  @PayloadRoot(localPart = "listAddressPhoneNumbersRequest", namespace = "http://aktera.iritgo.de/webservices/address")
  public ListAddressPhoneNumbersResponse listAddressPhoneNumbers(ListAddressPhoneNumbersRequest request)
    throws Exception
  {
    ListAddressPhoneNumbersResponse response = new ListAddressPhoneNumbersResponse();
    AddressStore store = addressManager.getAddressStoreByName(request.getAddressStoreName());
    Option<Address> address = store.findAddressByDn(request.getAddressId());
    if (address.full())
    {
      for (PhoneNumber number : address.get().getPhoneNumbers())
      {
        ListAddressPhoneNumbersResponse.PhoneNumber numberElement = new ListAddressPhoneNumbersResponse.PhoneNumber();
        numberElement.setCategory(number.getCategory());
        numberElement.setDisplayNumber(number.getNumber());
        numberElement.setCanonicalNumber(number.getInternalNumber());
        response.getPhoneNumber().add(numberElement);
      }
    }
    return response;
  }

  @PayloadRoot(localPart = "getAddressRequest", namespace = "http://aktera.iritgo.de/webservices/address")
  public GetAddressResponse getAddress(GetAddressRequest request) throws Exception
  {
    String addressStoreName = StringTools.isNotTrimEmpty(request.getAddressStoreName()) ? request
            .getAddressStoreName() : addressManager.getDefaultAddressStore().getName();
    String addressId = StringTools.trim(request.getAddressId());
    AddressStore store = addressManager.getAddressStoreByName(addressStoreName);
    GetAddressResponse response = new GetAddressResponse();
    Option<Address> address = store.findAddressByDn(addressId);
    if (address.full())
    {
      de.iritgo.aktera.webservices.address.Address addressElement = new de.iritgo.aktera.webservices.address.Address();
      addressElement.setSalutation(address.get().getSalutation());
      addressElement.setFirstName(address.get().getFirstName());
      addressElement.setLastName(address.get().getLastName());
      addressElement.setCompany(address.get().getCompany());
      addressElement.setDivision(address.get().getDivision());
      addressElement.setStreet(address.get().getStreet());
      addressElement.setPostalCode(address.get().getPostalCode());
      addressElement.setCity(address.get().getCity());
      addressElement.setEmail(address.get().getEmail());
      addressElement.setHomepage(address.get().getWeb());
      addressElement.setContactNumber(address.get().getContactNumber());
      addressElement.setCompanyNumber(address.get().getCompanyNumber());
      addressElement.setPhoneNumberB(address.get().getPhoneNumberByCategory("B").getNumber());
      addressElement.setPhoneNumberBDD(address.get().getPhoneNumberByCategory("BDD").getNumber());
      addressElement.setPhoneNumberBF(address.get().getPhoneNumberByCategory("BF").getNumber());
      addressElement.setPhoneNumberBM(address.get().getPhoneNumberByCategory("BM").getNumber());
      addressElement.setPhoneNumberP(address.get().getPhoneNumberByCategory("P").getNumber());
      addressElement.setPhoneNumberPF(address.get().getPhoneNumberByCategory("PF").getNumber());
      addressElement.setPhoneNumberPM(address.get().getPhoneNumberByCategory("PM").getNumber());
      addressElement.setPhoneNumberVOIP(address.get().getPhoneNumberByCategory("VOIP").getNumber());
      addressElement.setRemark(address.get().getRemark());
      response.setAddress(addressElement);
    }
    return response;
  }

  @PayloadRoot(localPart = "findAddressByPhoneNumberRequest", namespace = "http://aktera.iritgo.de/webservices/address")
  public FindAddressByPhoneNumberResponse findAddressByPhoneNumber(FindAddressByPhoneNumberRequest request)
    throws Exception
  {
    FindAddressByPhoneNumberResponse response = new FindAddressByPhoneNumberResponse();
    Option<Address> address = addressManager.findAddressByPhoneNumber(request.getPhoneNumber());
    if (address.full())
    {
      de.iritgo.aktera.webservices.address.Address addressElement = new de.iritgo.aktera.webservices.address.Address();
      addressElement.setSalutation(address.get().getSalutation());
      addressElement.setFirstName(address.get().getFirstName());
      addressElement.setLastName(address.get().getLastName());
      addressElement.setCompany(address.get().getCompany());
      addressElement.setDivision(address.get().getDivision());
      addressElement.setStreet(address.get().getStreet());
      addressElement.setPostalCode(address.get().getPostalCode());
      addressElement.setCity(address.get().getCity());
      addressElement.setEmail(address.get().getEmail());
      addressElement.setHomepage(address.get().getWeb());
      addressElement.setContactNumber(address.get().getContactNumber());
      addressElement.setCompanyNumber(address.get().getCompanyNumber());
      addressElement.setPhoneNumberB(address.get().getPhoneNumberByCategory("B").getNumber());
      addressElement.setPhoneNumberBDD(address.get().getPhoneNumberByCategory("BDD").getNumber());
      addressElement.setPhoneNumberBF(address.get().getPhoneNumberByCategory("BF").getNumber());
      addressElement.setPhoneNumberBM(address.get().getPhoneNumberByCategory("BM").getNumber());
      addressElement.setPhoneNumberP(address.get().getPhoneNumberByCategory("P").getNumber());
      addressElement.setPhoneNumberPF(address.get().getPhoneNumberByCategory("PF").getNumber());
      addressElement.setPhoneNumberPM(address.get().getPhoneNumberByCategory("PM").getNumber());
      addressElement.setPhoneNumberVOIP(address.get().getPhoneNumberByCategory("VOIP").getNumber());
      addressElement.setRemark(address.get().getRemark());
      response.setAddress(addressElement);
    }
    return response;
  }
}
TOP

Related Classes of de.iritgo.aktera.address.ws.AddressEndpoint

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.