import { ajax } from "discourse/lib/ajax";
import { popupAjaxError } from "discourse/lib/ajax-error";
import EmberObject from "@ember/object";

const CustomWizardLogs = EmberObject.extend();
const logItemTypes = {
  date: "date_time",
  action: "text",
  message: "long_text",
  user: "user",
  username: "text",
};

function logItem(item, attr) {
  return {
    value: item[attr],
    type: logItemTypes[attr],
  };
}

CustomWizardLogs.reopenClass({
  list(wizardId, page = 0) {
    let data = {
      page,
    };

    return ajax(`/admin/wizards/logs/${wizardId}`, { data })
      .catch(popupAjaxError)
      .then((result) => {
        if (result.logs) {
          result.logs = result.logs.map((item) => {
            let map = {};

            if (item.date) {
              map.date = logItem(item, "date");
            }
            if (item.action) {
              map.action = logItem(item, "action");
            }
            if (item.user) {
              map.user = item.user;
            } else {
              map.user = logItem(item, "username");
            }
            if (item.message) {
              map.message = logItem(item, "message");
            }

            return map;
          });
        }
        return result;
      });
  },
});

export default CustomWizardLogs;