12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import {
- addErrorMessage,
- addLoadingMessage,
- addSuccessMessage,
- clearIndicators,
- } from 'sentry/actionCreators/indicator';
- import type {Client} from 'sentry/api';
- import {t} from 'sentry/locale';
- import type {SentryApp, SentryAppInstallation} from 'sentry/types/integrations';
- /**
- * Install a sentry application
- *
- * @param {Object} client ApiClient
- * @param {String} orgId Organization Slug
- * @param {Object} app SentryApp
- */
- export function installSentryApp(
- client: Client,
- orgId: string,
- app: SentryApp
- ): Promise<SentryAppInstallation> {
- addLoadingMessage();
- const promise = client.requestPromise(
- `/organizations/${orgId}/sentry-app-installations/`,
- {
- method: 'POST',
- data: {slug: app.slug},
- }
- );
- promise.then(
- () => clearIndicators(),
- () => addErrorMessage(t('Unable to install %s', app.name))
- );
- return promise;
- }
- /**
- * Uninstall a sentry application
- *
- * @param {Object} client ApiClient
- * @param {Object} install SentryAppInstallation
- */
- export function uninstallSentryApp(
- client: Client,
- install: SentryAppInstallation
- ): Promise<void> {
- addLoadingMessage();
- const promise = client.requestPromise(`/sentry-app-installations/${install.uuid}/`, {
- method: 'DELETE',
- });
- const capitalizedAppSlug =
- install.app.slug.charAt(0).toUpperCase() + install.app.slug.slice(1);
- promise.then(
- () => {
- addSuccessMessage(t('%s successfully uninstalled.', capitalizedAppSlug));
- },
- () => clearIndicators()
- );
- return promise;
- }
|