12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import {
- addErrorMessage,
- addLoadingMessage,
- addSuccessMessage,
- } from 'sentry/actionCreators/indicator';
- import type {Client} from 'sentry/api';
- import {t} from 'sentry/locale';
- import {ReleaseStatus} from 'sentry/types/release';
- type ParamsGet = {
- orgSlug: string;
- projectSlug: string;
- releaseVersion: string;
- };
- export function archiveRelease(api: Client, params: ParamsGet) {
- const {orgSlug, releaseVersion} = params;
- addLoadingMessage(t('Archiving Release\u2026'));
- return api
- .requestPromise(`/organizations/${orgSlug}/releases/`, {
- method: 'POST',
- data: {
- status: ReleaseStatus.ARCHIVED,
- projects: [],
- version: releaseVersion,
- },
- })
- .then(() => {
- addSuccessMessage(t('Release was successfully archived.'));
- })
- .catch(error => {
- addErrorMessage(
- error.responseJSON?.detail ?? t('Release could not be be archived.')
- );
- throw error;
- });
- }
- export function restoreRelease(api: Client, params: ParamsGet) {
- const {orgSlug, releaseVersion} = params;
- addLoadingMessage(t('Restoring Release\u2026'));
- return api
- .requestPromise(`/organizations/${orgSlug}/releases/`, {
- method: 'POST',
- data: {
- status: ReleaseStatus.ACTIVE,
- projects: [],
- version: releaseVersion,
- },
- })
- .then(() => {
- addSuccessMessage(t('Release was successfully restored.'));
- })
- .catch(error => {
- addErrorMessage(
- error.responseJSON?.detail ?? t('Release could not be be restored.')
- );
- throw error;
- });
- }
|