Package com.appspot.finajjarane.framework.service.impl

Source Code of com.appspot.finajjarane.framework.service.impl.ToolServiceImpl

/**
* @author Fayçal INAJJARANE
*/
package com.appspot.finajjarane.framework.service.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.appspot.finajjarane.framework.dao.IToolDao;
import com.appspot.finajjarane.framework.entities.MapDescription;
import com.appspot.finajjarane.framework.entities.Tool;
import com.appspot.finajjarane.framework.generic.ApplicationConstants;
import com.appspot.finajjarane.framework.generic.Utils;
import com.appspot.finajjarane.framework.models.ToolModel;
import com.appspot.finajjarane.framework.models.ToolModelForDao;
import com.appspot.finajjarane.framework.service.IToolService;
import com.google.appengine.api.datastore.Category;

@Service
public class ToolServiceImpl implements IToolService {

  @Autowired
  IToolDao toolDao;

  @Override
  public boolean toolCreateNew(ToolModelForDao toolModel) throws Exception {

    Tool tool = ToolModelForDaoToTool(toolModel);
    return toolDao.add(tool);

  }

  @Override
  public boolean toolUpdate(ToolModelForDao toolModel) throws Exception {
    Tool tool = ToolModelForDaoToTool(toolModel);
    try {
      toolDao.merge(tool);
      return true;
    } catch (Exception e) {
      return false;
    }

  }

  @Override
  public boolean toolRemove(Long toolId) throws Exception {
    return this.toolDao.removeByKey(toolId);
  }

  @Override
  public List<ToolModel> getToolsList(final int page, final int maxPerPage, final String langthrows Exception{

    List<ToolModel> toolsToReturn = new ArrayList<ToolModel>();
    List<Tool> tools = this.toolDao.getLimitedList(page, maxPerPage, lang, "publishedDate", "DESC");

    if(null==tools){
      return toolsToReturn;
    }

    for(Tool tool : tools){
      toolsToReturn.add(ToolToToolModel(tool));
    }

    return toolsToReturn;
  }

  @Override
  public ToolModel getTool(Long idthrows Exception{

    Tool tool = this.toolDao.findByKey(id);
    return ToolToToolModel(tool);

  }

  @Override
  public List<ToolModel> getToolsAll()  throws Exception{
    List<Tool> tools = this.toolDao.findAll();
    List<ToolModel> toolModels = new ArrayList<ToolModel>();

    for(Tool tool : tools){
      toolModels.add(ToolToToolModel(tool));
    }

    return toolModels;
  }



  //###################### UTILITY METHODS #######################

  /**
   * Utility method to convert Tool to ToolModel
   * @param tool
   * @return ToolModel
   */
  private ToolModel ToolToToolModel(Tool tool){

    ToolModel toolModel = new ToolModel();
    List<String> tagsModels = new ArrayList<String>();

    for(Category tag : tool.getTags()){
      tagsModels.add(tag.getCategory());
    }

    toolModel.setId(tool.getId());
    toolModel.setTitle(tool.getTitle());
    for (MapDescription description : tool.getDescription()) {
      if(description.getLang() == Utils.getLanguage()){
        toolModel.setBody(description.getText().getValue());
        break;
      }
    }
    toolModel.setTags(tagsModels);
    toolModel.setImage(tool.getImage());
    toolModel.setPublishedDate(Utils.dateToDateDetailsModel(tool.getPublishedDate(),Utils.getLanguage() ));

    return toolModel;

  }


  /**
   * Utility method to convert ToolModel to Tool
   * @param toolModelForDao
   * @return Tool
   */
  private Tool ToolModelForDaoToTool(ToolModelForDao toolModelForDao){

    Tool tool = new Tool();

    List<Category> tags = new ArrayList<Category>();
    List<MapDescription> description = new ArrayList<MapDescription>();

    MapDescription descriptionAr = new MapDescription();
    MapDescription descriptionEn = new MapDescription();
    MapDescription descriptionFr = new MapDescription();

    descriptionAr.setLang(ApplicationConstants.LANG_AR_AR);
    descriptionAr.setText(toolModelForDao.getDescription().get(ApplicationConstants.LANG_AR_AR));

    descriptionEn.setLang(ApplicationConstants.LANG_EN_US);
    descriptionEn.setText(toolModelForDao.getDescription().get(ApplicationConstants.LANG_EN_US));

    descriptionFr.setLang(ApplicationConstants.LANG_FR_FR);
    descriptionFr.setText(toolModelForDao.getDescription().get(ApplicationConstants.LANG_FR_FR));

    for(String tag : toolModelForDao.getTags()){
      tags.add(new Category(tag));
    }

    tool.setId(toolModelForDao.getId());
    tool.setTitle(toolModelForDao.getTitle());
    tool.setTags(tags);
    tool.setDescription(description);
    tool.setPublishedDate(new Date());
    tool.setImage(toolModelForDao.getImage());


    return tool;

  }

  @Override
  public int getToolsCount(final String langthrows Exception{
    return this.toolDao.getEntriesCount("id",lang);
  }

}
TOP

Related Classes of com.appspot.finajjarane.framework.service.impl.ToolServiceImpl

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.