Wire up delete organization

pull/2288/head
Jared Scheib 2017-11-02 20:56:39 -07:00
parent 2f8e756155
commit cc3946ed16
3 changed files with 36 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import {
createUser as createUserAJAX,
deleteUser as deleteUserAJAX,
createOrganization as createOrganizationAJAX,
deleteOrganization as deleteOrganizationAJAX,
} from 'src/admin/apis/chronograf'
import {publishAutoDismissingNotification} from 'shared/dispatchers'
@ -129,3 +130,19 @@ export const createOrganizationAsync = (
dispatch(removeOrganization(organization))
}
}
export const deleteOrganizationAsync = organization => async dispatch => {
dispatch(removeOrganization(organization))
try {
await deleteOrganizationAJAX(organization.links.self)
dispatch(
publishAutoDismissingNotification(
'success',
`Organization deleted: ${organization.name}`
)
)
} catch (error) {
dispatch(errorThrown(error))
dispatch(addOrganization(organization))
}
}

View File

@ -61,3 +61,15 @@ export const createOrganization = async (url, organization) => {
throw error
}
}
export const deleteOrganization = async url => {
try {
return await AJAX({
method: 'DELETE',
url,
})
} catch (error) {
console.error(error)
throw error
}
}

View File

@ -148,7 +148,12 @@ class AdminChronografPage extends Component {
createOrganizationAsync(links.organizations, {name: organizationName})
}
handleDeleteOrganization = _organization => {}
handleDeleteOrganization = organization => {
const {actions: {deleteOrganizationAsync}} = this.props
deleteOrganizationAsync(organization)
}
handleRenameOrganization = (_organization, _newOrgName) => {}
handleCreateUser = user => {
@ -268,6 +273,7 @@ AdminChronografPage.propTypes = {
createUserAsync: func.isRequired,
deleteUserAsync: func.isRequired,
createOrganizationAsync: func.isRequired,
deleteOrganizationAsync: func.isRequired,
}),
notify: func.isRequired,
}