Move api usage to separate file

This commit is contained in:
René Pfeuffer
2019-01-19 20:05:19 +01:00
parent 4090965324
commit d790d2e7e1
2 changed files with 27 additions and 18 deletions

View File

@@ -7,8 +7,11 @@ import {
SubmitButton
} from "@scm-manager/ui-components";
import { translate } from "react-i18next";
import { setPermissions } from "./setPermissions";
import { apiClient } from "@scm-manager/ui-components";
import {
loadAvailablePermissions,
loadPermissionsForEntity,
setPermissions
} from "./handlePermissions";
import PermissionCheckbox from "./PermissionCheckbox";
import { connect } from "react-redux";
import { getLink } from "../../modules/indexResource";
@@ -67,28 +70,21 @@ class SetPermissions extends React.Component<Props, State> {
};
componentDidMount(): void {
apiClient
.get(this.props.availablePermissionLink)
.then(response => {
return response.json();
})
.then(response => {
loadAvailablePermissions(this.props.availablePermissionLink).then(
response => {
const availablePermissions = response.permissions;
const permissions = {};
availablePermissions.forEach(p => {
permissions[p] = false;
});
this.setState({ permissions }, this.loadPermissionsForUser);
});
this.setState({ permissions }, this.loadPermissionsForEntity);
}
);
}
loadPermissionsForUser = () => {
apiClient
.get(this.props.selectedPermissionsLink.href)
.then(response => {
return response.json();
})
.then(response => {
loadPermissionsForEntity = () => {
loadPermissionsForEntity(this.props.selectedPermissionsLink.href).then(
response => {
const checkedPermissions = response.permissions;
this.setState(state => {
const newPermissions = state.permissions;
@@ -99,7 +95,8 @@ class SetPermissions extends React.Component<Props, State> {
overwritePermissionsLink: response._links.overwrite
};
});
});
}
);
};
submit = (event: Event) => {

View File

@@ -11,3 +11,15 @@ export function setPermissions(url: string, permissions: string[]) {
return response;
});
}
export function loadPermissionsForEntity(url: string) {
return apiClient.get(url).then(response => {
return response.json();
});
}
export function loadAvailablePermissions(url: string) {
return apiClient.get(url).then(response => {
return response.json();
});
}