Package org.hamster.weixinmp.service

Source Code of org.hamster.weixinmp.service.WxMenuService

/**
*
*/
package org.hamster.weixinmp.service;

import static org.hamster.weixinmp.util.WxUtil.getAccessTokenParams;
import static org.hamster.weixinmp.util.WxUtil.sendRequest;

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

import org.apache.http.entity.StringEntity;
import org.hamster.weixinmp.config.WxConfig;
import org.hamster.weixinmp.dao.entity.menu.WxMenuBtnEntity;
import org.hamster.weixinmp.dao.entity.user.WxUserEntity;
import org.hamster.weixinmp.exception.WxException;
import org.hamster.weixinmp.gson.WxMenuBtnSerializer;
import org.hamster.weixinmp.model.WxRespCode;
import org.hamster.weixinmp.model.menu.WxMenuCreateJson;
import org.hamster.weixinmp.model.menu.WxMenuGetJson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Service;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

/**
* @author grossopaforever@gmail.com
* @version Jan 4, 2014
*
*/
@Service
public class WxMenuService {
  @Autowired
  WxConfig config;

  public WxRespCode menuCreate(String accessToken, List<WxMenuBtnEntity> entities)
      throws WxException {
    Map<String, String> params = getAccessTokenParams(accessToken);

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(WxUserEntity.class,
        new WxMenuBtnSerializer());
    Gson gson = gsonBuilder.create();
   
    WxMenuCreateJson wrapper = new WxMenuCreateJson(entities);
    wrapper.setButton(entities);

    try {
      return sendRequest(config.getMenuCreateUrl(), HttpMethod.POST, params,
          new StringEntity(gson.toJson(wrapper)),
          WxRespCode.class);
    } catch (UnsupportedEncodingException e) {
      throw new WxException(e);
    }
  }
 
  public List<WxMenuBtnEntity> menuGet(String accessToken) throws WxException {
    Map<String, String> params = getAccessTokenParams(accessToken);

    return sendRequest(config.getMenuGetUrl(), HttpMethod.GET, params, null,
        WxMenuGetJson.class).getMenu().getButton();
  }
 
  public WxRespCode menuDelete(String accessToken) throws WxException {
    Map<String, String> params = getAccessTokenParams(accessToken);
    return sendRequest(config.getMenuDeleteUrl(), HttpMethod.GET, params, null,
        WxRespCode.class);
  }
 

}
TOP

Related Classes of org.hamster.weixinmp.service.WxMenuService

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.