Blob Blame History Raw
import NotificationsApi from "./NotificationsApi";
import * as composer from "../core/composer";

class BlueprintApi {
  constructor() {
    this.blueprint = undefined;
  }

  handleCommitBlueprint(blueprint) {
    return composer
      .newBlueprint(this.postedBlueprintData(blueprint))
      .then(() => {
        NotificationsApi.closeNotification(undefined, "committing");
        NotificationsApi.displayNotification(blueprint.name, "committed");
      })
      .catch((e) => {
        console.log(`Error committing blueprint: ${e}`);
        NotificationsApi.closeNotification(undefined, "committing");
        NotificationsApi.displayNotification(blueprint.name, "commitFailed");
      });
  }

  postedBlueprintData(blueprint) {
    const blueprintData = {
      name: blueprint.name,
      description: blueprint.description,
      version: blueprint.version,
      modules: blueprint.modules,
      packages: blueprint.packages,
      groups: blueprint.groups !== undefined ? blueprint.groups : [],
    };
    if (blueprint.customizations !== undefined) {
      blueprintData.customizations = blueprint.customizations;
    }
    return blueprintData;
  }

  reloadBlueprintDetails(blueprint) {
    // retrieve blueprint details that were updated during save (i.e. version)
    // and reload details in UI
    return composer
      .depsolveBlueprint(blueprint.name.replace(/\s/g, "-"))
      .then((data) => {
        return { ...blueprint, version: data.blueprints[0].blueprint.version };
      })
      .catch((e) => {
        console.log(`Error fetching blueprint details: ${e}`);
      });
  }
}

export default new BlueprintApi();