import EmberObject from "@ember/object";
import { ajax } from "discourse/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";

const VersionCheck = EmberObject.extend({
  @discourseComputed("updated_at")
  noCheckPerformed(updatedAt) {
    return updatedAt === null;
  },

  @discourseComputed("missing_versions_count")
  upToDate(missingVersionsCount) {
    return missingVersionsCount === 0 || missingVersionsCount === null;
  },

  @discourseComputed("missing_versions_count")
  behindByOneVersion(missingVersionsCount) {
    return missingVersionsCount === 1;
  },

  @discourseComputed("installed_sha")
  gitLink(installedSHA) {
    if (installedSHA) {
      return `https://github.com/discourse/discourse/commits/${installedSHA}`;
    }
  },

  @discourseComputed("installed_sha")
  shortSha(installedSHA) {
    if (installedSHA) {
      return installedSHA.slice(0, 10);
    }
  },
});

VersionCheck.reopenClass({
  find() {
    return ajax("/admin/version_check").then((json) =>
      VersionCheck.create(json)
    );
  },
});

export default VersionCheck;