Code cleanup, renaming functions, use .all() on config promises

This commit is contained in:
mabashian
2019-04-26 11:02:16 -04:00
parent e5dda696d7
commit 8cfe74a854
7 changed files with 34 additions and 50 deletions

View File

@@ -171,6 +171,7 @@ Here are the guidelines for how to name functions.
|`replace<x>`| Use for methods that make API `PUT` requests | |`replace<x>`| Use for methods that make API `PUT` requests |
|`disassociate<x>`| Use for methods that pass `{ disassociate: true }` as a data param to an endpoint | |`disassociate<x>`| Use for methods that pass `{ disassociate: true }` as a data param to an endpoint |
|`associate<x>`| Use for methods that pass a resource id as a data param to an endpoint | |`associate<x>`| Use for methods that pass a resource id as a data param to an endpoint |
|`can<x>`| Use for props dealing with RBAC to denote whether a user has access to something |
### Default State Initialization ### Default State Initialization
When declaring empty initial states, prefer the following instead of leaving them undefined: When declaring empty initial states, prefer the following instead of leaving them undefined:

View File

@@ -51,9 +51,8 @@ describe('<OrganizationAccessList />', () => {
<OrganizationAccessList <OrganizationAccessList
getAccessList={() => {}} getAccessList={() => {}}
removeRole={() => {}} removeRole={() => {}}
api={api}
organization={organization} organization={organization}
/> />, { context: { network: { api } } }
); );
}); });
@@ -62,9 +61,8 @@ describe('<OrganizationAccessList />', () => {
<OrganizationAccessList <OrganizationAccessList
getAccessList={() => ({ data: { count: 1, results: mockData } })} getAccessList={() => ({ data: { count: 1, results: mockData } })}
removeRole={() => {}} removeRole={() => {}}
api={api}
organization={organization} organization={organization}
/> />, { context: { network: { api } } }
).find('OrganizationAccessList'); ).find('OrganizationAccessList');
setImmediate(() => { setImmediate(() => {
@@ -79,9 +77,8 @@ describe('<OrganizationAccessList />', () => {
<OrganizationAccessList <OrganizationAccessList
getAccessList={() => ({ data: { count: 1, results: mockData } })} getAccessList={() => ({ data: { count: 1, results: mockData } })}
removeRole={() => {}} removeRole={() => {}}
api={api}
organization={organization} organization={organization}
/> />, { context: { network: { api } } }
).find('OrganizationAccessList'); ).find('OrganizationAccessList');
expect(onSort).not.toHaveBeenCalled(); expect(onSort).not.toHaveBeenCalled();
@@ -98,9 +95,8 @@ describe('<OrganizationAccessList />', () => {
<OrganizationAccessList <OrganizationAccessList
getAccessList={() => ({ data: { count: 1, results: mockData } })} getAccessList={() => ({ data: { count: 1, results: mockData } })}
removeRole={() => {}} removeRole={() => {}}
api={api}
organization={organization} organization={organization}
/> />, { context: { network: { api } } }
).find('OrganizationAccessList'); ).find('OrganizationAccessList');
setImmediate(() => { setImmediate(() => {
@@ -120,9 +116,8 @@ describe('<OrganizationAccessList />', () => {
<OrganizationAccessList <OrganizationAccessList
getAccessList={() => ({ data: { count: 1, results: mockData } })} getAccessList={() => ({ data: { count: 1, results: mockData } })}
removeRole={() => {}} removeRole={() => {}}
api={api}
organization={organization} organization={organization}
/> />, { context: { network: { api } } }
).find('OrganizationAccessList'); ).find('OrganizationAccessList');
expect(handleWarning).not.toHaveBeenCalled(); expect(handleWarning).not.toHaveBeenCalled();
expect(confirmDelete).not.toHaveBeenCalled(); expect(confirmDelete).not.toHaveBeenCalled();
@@ -145,9 +140,8 @@ describe('<OrganizationAccessList />', () => {
<OrganizationAccessList <OrganizationAccessList
getAccessList={() => ({ data: { count: 1, results: mockData } })} getAccessList={() => ({ data: { count: 1, results: mockData } })}
removeRole={() => {}} removeRole={() => {}}
api={api}
organization={organization} organization={organization}
/> />, { context: { network: { api } } }
).find('OrganizationAccessList'); ).find('OrganizationAccessList');
setImmediate(() => { setImmediate(() => {
@@ -182,9 +176,8 @@ describe('<OrganizationAccessList />', () => {
<OrganizationAccessList <OrganizationAccessList
getAccessList={() => ({ data: { count: 1, results: mockData } })} getAccessList={() => ({ data: { count: 1, results: mockData } })}
removeRole={() => {}} removeRole={() => {}}
api={api}
organization={organization} organization={organization}
/> />, { context: { network: { api } } }
).find('OrganizationAccessList'); ).find('OrganizationAccessList');
setImmediate(() => { setImmediate(() => {
@@ -200,9 +193,8 @@ describe('<OrganizationAccessList />', () => {
<OrganizationAccessList <OrganizationAccessList
getAccessList={() => ({ data: { count: 1, results: mockData } })} getAccessList={() => ({ data: { count: 1, results: mockData } })}
removeRole={() => {}} removeRole={() => {}}
api={api}
organization={readOnlyOrg} organization={readOnlyOrg}
/> />, { context: { network: { api } } }
).find('OrganizationAccessList'); ).find('OrganizationAccessList');
setImmediate(() => { setImmediate(() => {

View File

@@ -76,7 +76,7 @@ class APIClient {
return this.http.post(API_ORGANIZATIONS, data); return this.http.post(API_ORGANIZATIONS, data);
} }
callOrganizations () { optionsOrganizations () {
return this.http.options(API_ORGANIZATIONS); return this.http.options(API_ORGANIZATIONS);
} }

View File

@@ -78,28 +78,19 @@ class Provider extends Component {
const { api, handleHttpError } = this.props; const { api, handleHttpError } = this.props;
try { try {
const { const [configRes, rootRes, meRes] = await Promise.all([
data: { api.getConfig(),
ansible_version, api.getRoot(),
custom_virtualenvs, api.getMe()
version ]);
}
} = await api.getConfig();
const {
data: {
custom_logo,
custom_login_info
}
} = await api.getRoot();
const { data: { results: [me] } } = await api.getMe();
this.setState({ this.setState({
value: { value: {
ansible_version, ansible_version: configRes.data.ansible_version,
custom_virtualenvs, custom_virtualenvs: configRes.data.custom_virtualenvs,
version, version: configRes.data.version,
custom_logo, custom_logo: rootRes.data.custom_logo,
custom_login_info, custom_login_info: rootRes.data.custom_login_info,
me me: meRes.data.results
} }
}); });
} catch (err) { } catch (err) {

View File

@@ -53,7 +53,7 @@ class AWXLogin extends Component {
try { try {
const { data } = await api.login(username, password); const { data } = await api.login(username, password);
updateConfig(data); updateConfig(data);
fetchMe(); await fetchMe();
this.setState({ isAuthenticated: true, isLoading: false }); this.setState({ isAuthenticated: true, isLoading: false });
} catch (error) { } catch (error) {
handleHttpError(error) || this.setState({ isInputValid: false, isLoading: false }); handleHttpError(error) || this.setState({ isInputValid: false, isLoading: false });

View File

@@ -240,9 +240,6 @@ class Organization extends Component {
path="/organizations/:id/notifications" path="/organizations/:id/notifications"
render={() => ( render={() => (
<OrganizationNotifications <OrganizationNotifications
match={match}
location={location}
history={history}
canToggleNotifications={canToggleNotifications} canToggleNotifications={canToggleNotifications}
/> />
)} )}

View File

@@ -73,7 +73,7 @@ class OrganizationsList extends Component {
this.onSelectAll = this.onSelectAll.bind(this); this.onSelectAll = this.onSelectAll.bind(this);
this.onSelect = this.onSelect.bind(this); this.onSelect = this.onSelect.bind(this);
this.updateUrl = this.updateUrl.bind(this); this.updateUrl = this.updateUrl.bind(this);
this.callOrganizations = this.callOrganizations.bind(this); this.fetchOptionsOrganizations = this.fetchOptionsOrganizations.bind(this);
this.fetchOrganizations = this.fetchOrganizations.bind(this); this.fetchOrganizations = this.fetchOrganizations.bind(this);
this.handleOrgDelete = this.handleOrgDelete.bind(this); this.handleOrgDelete = this.handleOrgDelete.bind(this);
this.handleOpenOrgDeleteModal = this.handleOpenOrgDeleteModal.bind(this); this.handleOpenOrgDeleteModal = this.handleOpenOrgDeleteModal.bind(this);
@@ -82,7 +82,7 @@ class OrganizationsList extends Component {
componentDidMount () { componentDidMount () {
const queryParams = this.getQueryParams(); const queryParams = this.getQueryParams();
this.callOrganizations(); this.fetchOptionsOrganizations();
this.fetchOrganizations(queryParams); this.fetchOrganizations(queryParams);
} }
@@ -240,11 +240,11 @@ class OrganizationsList extends Component {
} }
} }
async callOrganizations () { async fetchOptionsOrganizations () {
const { api } = this.props; const { api } = this.props;
try { try {
const { data } = await api.callOrganizations(); const { data } = await api.optionsOrganizations();
const { actions } = data; const { actions } = data;
const stateToUpdate = { const stateToUpdate = {
@@ -345,11 +345,14 @@ class OrganizationsList extends Component {
<Trans> <Trans>
You dont have permission to delete the following Organizations: You dont have permission to delete the following Organizations:
</Trans> </Trans>
{selected.map(row => ( {selected
<div key={row.id}> .filter(row => !row.summary_fields.user_capabilities.delete)
{row.name} .map(row => (
</div> <div key={row.id}>
))} {row.name}
</div>
))
}
</div> </div>
) : undefined ) : undefined
} }