package org.mazhuang.guanggoo.data.task;

import com.google.gson.Gson;

import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.mazhuang.guanggoo.data.OnResponseListener;
import org.mazhuang.guanggoo.util.ConstantUtil;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * @author mazhuang
 * @date 2018/4/26
 */
public class VoteCommentTask extends BaseTask<Boolean> {

    private String mUrl;

    public VoteCommentTask(String url, OnResponseListener<Boolean> listener) {
        super(listener);
        mUrl = url;
    }

    @Override
    public void run() {

        String xsrf = getXsrf();

        Map<String, String> headers = new HashMap<>();
        headers.put("Accept", "application/json, text/javascript, */*; q=0.01");
        headers.put("X-Requested-With", "XMLHttpRequest");
        headers.put("Content-Type", "application/x-www-form-urlencoded");

        Map<String, String> cookies = getCookies();
        if (!cookies.containsKey(ConstantUtil.KEY_XSRF)) {
            cookies.put(ConstantUtil.KEY_XSRF, xsrf);
        }

        try {
            Connection.Response res = Jsoup.connect(mUrl).cookies(cookies).headers(headers).method
                    (Connection.Method.GET).execute();
            if (res.statusCode() == ConstantUtil.HTTP_STATUS_200 || res.statusCode() == ConstantUtil.HTTP_STATUS_302) {
                Gson gson = new Gson();
                BaseResponse response = gson.fromJson(res.body(), BaseResponse.class);
                if (response.getSuccess() == 1) {
                    // 赞成功
                    successOnUI(true);
                } else {
                    // 以前已经赞过该评论
                    successOnUI(false);
                }
                return;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        failedOnUI("失败");
    }
}