import ext from "./utils/ext";
import storage from "./utils/storage";

ext.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if(request.action === "perform-save") {
      var data = request.data;
      var url;
      var token;
      storage.get(['url', 'token'], function(resp) {
        url = resp.url;
        token = resp.token;
        var params = {
            v: 1,
            u: encodeURIComponent(data.url),
            t: encodeURIComponent(data.title),
            d: encodeURIComponent(data.description),
            api_token: encodeURIComponent(token),
            i: encodeURIComponent(data.image),
            c: encodeURIComponent(data.comment),
        };
          var queryString = Object.keys(params).map((key) => {
              return key + '=' + params[key];
          }).join('&');
        fetch(url + "/api/links", {
            method: 'POST',
            headers: {
              'Accept': 'application/json'
            },
            body: new URLSearchParams(queryString)
        })
        .then(function(response) {
            if (200 === response.status) {
                sendResponse({action: "saved"});
            } else {
                sendResponse({action: "error", status: response.status, error: response.statusText});
            }
        });
      });

      return true; // https://stackoverflow.com/a/20077854
    }
  }
);