Package org.butor.dbauth.model

Source Code of org.butor.dbauth.model.FirmModel

package org.butor.dbauth.model;

import java.util.List;

import org.butor.auth.common.AuthMessageID;
import org.butor.auth.common.SecurityConstants;
import org.butor.auth.common.firm.Firm;
import org.butor.auth.common.firm.FirmKey;
import org.butor.auth.common.firm.FirmServices;
import org.butor.auth.common.firm.FirmWithAccessMode;
import org.butor.auth.common.firm.ListFirmCriteria;
import org.butor.auth.common.user.ListUserCriteria;
import org.butor.auth.common.user.User;
import org.butor.auth.dao.FirmDao;
import org.butor.auth.dao.UserDao;
import org.butor.json.CommonRequestArgs;
import org.butor.json.service.Context;
import org.butor.json.service.ResponseHandler;
import org.butor.json.service.ResponseHandlerHelper;
import org.butor.utils.AccessMode;
import org.butor.utils.ApplicationException;
import org.butor.utils.CommonMessageID;
import org.springframework.transaction.annotation.Transactional;

import com.google.common.base.Strings;

public class FirmModel implements FirmServices {
  private FirmDao firmDao;
  private UserDao userDao;
 
  @Override
  public void listFirm(Context<FirmWithAccessMode> ctx, ListFirmCriteria crit) {
    ResponseHandler<FirmWithAccessMode> rh = ctx.getResponseHandler();
    CommonRequestArgs cra = ctx.getRequest();
    List<FirmWithAccessMode> list = firmDao.listFirm(crit, cra);
    ResponseHandlerHelper.addList(list, rh);
  }

  @Override
  public void readFirm(Context<Firm> ctx, long firmId, String sys, String func, AccessMode mode) {
    ResponseHandler<Firm> rh = ctx.getResponseHandler();
    CommonRequestArgs cra = ctx.getRequest();
    Firm firm = firmDao.readFirm(firmId, sys, func, mode, cra);
    if (firm == null) {
      rh.addMessage(CommonMessageID.NOT_FOUND.getMessage());
      return;
    }
    rh.addRow(firm);
  }

  @Override
  @Transactional
  public void insertFirm(Context<FirmKey> ctx, Firm firm) {
    ResponseHandler<FirmKey> rh = ctx.getResponseHandler();
    if (Strings.isNullOrEmpty(firm.getFirmName())) {
      rh.addMessage(CommonMessageID.MISSING_ARG.getMessage("Name"));
      return;
    }
    CommonRequestArgs cra = ctx.getRequest();
    FirmKey ck = firmDao.insertFirm(firm, cra);
    if (ck == null) {
      rh.addMessage(CommonMessageID.SERVICE_FAILURE.getMessage());
      return;
    }
    rh.addRow(ck);
  }

  @Override
  @Transactional
  public void updateFirm(Context<FirmKey> ctx, Firm firm) {
    ResponseHandler<FirmKey> rh = ctx.getResponseHandler();
    if (Strings.isNullOrEmpty(firm.getFirmName())) {
      rh.addMessage(CommonMessageID.MISSING_ARG.getMessage("Name"));
      return;
    }
    CommonRequestArgs cra = ctx.getRequest();
    FirmKey ck = firmDao.updateFirm(firm, cra);
    if (ck == null) {
      rh.addMessage(CommonMessageID.NOT_FOUND.getMessage());
      return;
    }
    rh.addRow(ck);
  }

  @Override
  @Transactional
  public void deleteFirm(Context<Firm> ctx, FirmKey firmKey) {
    CommonRequestArgs cra = ctx.getRequest();
    Firm firm = firmDao.readFirm(firmKey.getFirmId(), SecurityConstants.SYSTEM_ID, SecurityConstants.SEC_FUNC_FIRMS, AccessMode.READ, cra);
    if (firm == null) {
      ApplicationException.exception(AuthMessageID.FIRM_NOT_FOUND.getMessage());
    }
    if (firm.isActive()) {
      ApplicationException.exception(AuthMessageID.FIRM_SHOULD_BE_INACTIVE_TO_BE_DELETED.getMessage());
    }
    ListUserCriteria crit = new ListUserCriteria();
    crit.setFirmId(firm.getFirmId());
    List<User> users = userDao.listUser(crit, null, cra);
    if (users.size()>0) {
      ApplicationException.exception(AuthMessageID.FIRM_SHOULD_NOT_HAVE_USERS_TO_BE_DELETED.getMessage());
    }
    firmDao.deleteFirm(firmKey, cra);
  }

  public void setFirmDao(FirmDao firmDao) {
    this.firmDao = firmDao;
  }

  public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
  }

}
TOP

Related Classes of org.butor.dbauth.model.FirmModel

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.