Перейти к содержанию

Приложения

Приложения позволяют кооперативам подключать дополнительные функции и витрины для расширения возможностей платформы MONO.

Получить список приложений

🛠️ SDK: Queries.Extensions.GetExtensions | 🔗 GraphQL API: Query.getExtensions

import { Queries } from '@coopenomics/sdk';

const variables: Queries.Extensions.GetExtensions.IInput = {
  data: {
    enabled?: <null | boolean>; // Фильтр включенных расширений
    is_available?: <null | boolean>; // Фильтр активности
    is_desktop?: <null | boolean>; // Фильтр рабочих столов
    is_installed?: <null | boolean>; // Фильтр установленных расширений
    name?: <null | string>; // Фильтр по имени
  };
};

const { [Queries.Extensions.GetExtensions.name]: result } = await client.Query(
  Queries.Extensions.GetExtensions.query,
  { variables }
);

Результат:

interface IOutput {
  getExtensions: <{
      config?: <unknown>; // Настройки конфигурации для расширения
      created_at: <unknown>; // Дата создания расширения
      description?: <null | string>; // Описание расширения
      enabled: <boolean>; // Показывает, включено ли расширение
      external_url?: <null | string>; // Внешняя ссылка на iframe-интерфейс расширения
      image?: <null | string>; // Изображение для расширения
      instructions: <string>; // Поле инструкция для установки (INSTALL)
      is_available: <boolean>; // Показывает, доступно ли расширение
      is_builtin: <boolean>; // Показывает, встроенное ли это расширение
      is_desktop: <boolean>; // Показывает, рабочий стол ли это
      is_installed: <boolean>; // Показывает, установлено ли расширение
      is_internal: <boolean>; // Показывает, внутреннее ли это расширение
      name: <string>; // Уникальное имя расширения
      readme: <string>; // Поле подробного текстового описания (README)
      schema?: <unknown>; // Схема настроек конфигурации для расширения
      tags: <string[]>; // Массив тегов для расширения
      title?: <null | string>; // Заголовок расширения
      updated_at: <unknown>; // Дата последнего обновления расширения
    }[]>; // Получить список расширений
}

Установить приложение

🛠️ SDK: Mutations.Extensions.InstallExtension | 🔗 GraphQL API: Mutation.installExtension

import { Mutations } from '@coopenomics/sdk';

const variables: Mutations.Extensions.InstallExtension.IInput = {
  data: {
    config: <any>; // Объект конфигурации расширения
    created_at?: <any>; // Дата установки расширения
    enabled: <boolean>; // Флаг того, включено ли расширение сейчас
    name: <string>; // Уникальное имя расширения (является идентификатором)
    updated_at?: <any>; // Дата обновления расширения
  };
};

const { [Mutations.Extensions.InstallExtension.name]: result } = await client.Mutation(
  Mutations.Extensions.InstallExtension.mutation,
  { variables }
);

Результат:

interface IOutput {
  installExtension: {
    config?: <unknown>; // Настройки конфигурации для расширения
    created_at: <unknown>; // Дата создания расширения
    description?: <null | string>; // Описание расширения
    enabled: <boolean>; // Показывает, включено ли расширение
    external_url?: <null | string>; // Внешняя ссылка на iframe-интерфейс расширения
    image?: <null | string>; // Изображение для расширения
    instructions: <string>; // Поле инструкция для установки (INSTALL)
    is_available: <boolean>; // Показывает, доступно ли расширение
    is_builtin: <boolean>; // Показывает, встроенное ли это расширение
    is_desktop: <boolean>; // Показывает, рабочий стол ли это
    is_installed: <boolean>; // Показывает, установлено ли расширение
    is_internal: <boolean>; // Показывает, внутреннее ли это расширение
    name: <string>; // Уникальное имя расширения
    readme: <string>; // Поле подробного текстового описания (README)
    schema?: <unknown>; // Схема настроек конфигурации для расширения
    tags: <string[]>; // Массив тегов для расширения
    title?: <null | string>; // Заголовок расширения
    updated_at: <unknown>; // Дата последнего обновления расширения
  };
}

Обновить приложение

🛠️ SDK: Mutations.Extensions.UpdateExtension | 🔗 GraphQL API: Mutation.updateExtension

import { Mutations } from '@coopenomics/sdk';

const variables: Mutations.Extensions.UpdateExtension.IInput = {
  data: {
    config: <any>; // Объект конфигурации расширения
    created_at?: <any>; // Дата установки расширения
    enabled: <boolean>; // Флаг того, включено ли расширение сейчас
    name: <string>; // Уникальное имя расширения (является идентификатором)
    updated_at?: <any>; // Дата обновления расширения
  };
};

const { [Mutations.Extensions.UpdateExtension.name]: result } = await client.Mutation(
  Mutations.Extensions.UpdateExtension.mutation,
  { variables }
);

Результат:

interface IOutput {
  updateExtension: {
    config?: <unknown>; // Настройки конфигурации для расширения
    created_at: <unknown>; // Дата создания расширения
    description?: <null | string>; // Описание расширения
    enabled: <boolean>; // Показывает, включено ли расширение
    external_url?: <null | string>; // Внешняя ссылка на iframe-интерфейс расширения
    image?: <null | string>; // Изображение для расширения
    instructions: <string>; // Поле инструкция для установки (INSTALL)
    is_available: <boolean>; // Показывает, доступно ли расширение
    is_builtin: <boolean>; // Показывает, встроенное ли это расширение
    is_desktop: <boolean>; // Показывает, рабочий стол ли это
    is_installed: <boolean>; // Показывает, установлено ли расширение
    is_internal: <boolean>; // Показывает, внутреннее ли это расширение
    name: <string>; // Уникальное имя расширения
    readme: <string>; // Поле подробного текстового описания (README)
    schema?: <unknown>; // Схема настроек конфигурации для расширения
    tags: <string[]>; // Массив тегов для расширения
    title?: <null | string>; // Заголовок расширения
    updated_at: <unknown>; // Дата последнего обновления расширения
  };
}

Удалить приложение

🛠️ SDK: Mutations.Extensions.UninstallExtension | 🔗 GraphQL API: Mutation.uninstallExtension

import { Mutations } from '@coopenomics/sdk';

const variables: Mutations.Extensions.UninstallExtension.IInput = {
  data: {
    name: <string>; // Фильтр по имени
  };
};

const { [Mutations.Extensions.UninstallExtension.name]: result } = await client.Mutation(
  Mutations.Extensions.UninstallExtension.mutation,
  { variables }
);

Результат:

interface IOutput {
  uninstallExtension: <boolean>; // Удалить расширение
}

Опубликовать приложение

Функционал добавления внешних приложений временно не доступен.