From 308c9370b7e3a6cb0a14b7a6890759c8fd3fc705 Mon Sep 17 00:00:00 2001 From: John Konecny <24961694+jfkonecn@users.noreply.github.com> Date: Wed, 28 Feb 2024 10:13:16 -0500 Subject: [PATCH] added delete account button --- .../Company Details Page-snap.png | Bin 185203 -> 190148 bytes .../service/impl/CompanyServiceImpl.java | 38 ++++- .../cbio/oncokb/web/rest/CompanyResource.java | 23 ++- .../app/pages/companyPage/CompanyPage.tsx | 141 ++++++++++++++---- .../app/shared/api/generated/API-docs.json | 35 +++++ .../webapp/app/shared/api/generated/API.ts | 75 ++++++++++ 6 files changed, 282 insertions(+), 30 deletions(-) diff --git a/screenshot-test/__baseline_snapshots__/Company Details Page-snap.png b/screenshot-test/__baseline_snapshots__/Company Details Page-snap.png index 30da9f895e61c4436275321eeb33268e0bab1418..17d08d72a455f1e8ff0adf15bb32898eeaf9342f 100644 GIT binary patch delta 41635 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
    (YQ#84XlFq($y2qhLUTLJ>@oJ<%cSQH`w6dvAIw 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 G`+otlj`*(t diff --git a/src/main/java/org/mskcc/cbio/oncokb/service/impl/CompanyServiceImpl.java b/src/main/java/org/mskcc/cbio/oncokb/service/impl/CompanyServiceImpl.java index e74afd2e2..95b6efb73 100644 --- a/src/main/java/org/mskcc/cbio/oncokb/service/impl/CompanyServiceImpl.java +++ b/src/main/java/org/mskcc/cbio/oncokb/service/impl/CompanyServiceImpl.java @@ -4,8 +4,13 @@ import org.mskcc.cbio.oncokb.service.CompanyService; import org.mskcc.cbio.oncokb.config.cache.CacheNameResolver; import org.mskcc.cbio.oncokb.domain.Company; +import org.mskcc.cbio.oncokb.domain.User; +import org.mskcc.cbio.oncokb.domain.UserDetails; import org.mskcc.cbio.oncokb.domain.enumeration.LicenseStatus; +import org.mskcc.cbio.oncokb.domain.enumeration.LicenseType; import org.mskcc.cbio.oncokb.repository.CompanyRepository; +import org.mskcc.cbio.oncokb.repository.UserDetailsRepository; +import org.mskcc.cbio.oncokb.repository.UserRepository; import org.mskcc.cbio.oncokb.service.dto.CompanyDTO; import org.mskcc.cbio.oncokb.service.dto.UserDTO; import org.mskcc.cbio.oncokb.service.mapper.CompanyDomainMapper; @@ -16,6 +21,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; +import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -49,6 +55,10 @@ public class CompanyServiceImpl implements CompanyService { private final CacheNameResolver cacheNameResolver; + private final UserRepository userRepository; + + private final UserDetailsRepository userDetailsRepository; + public CompanyServiceImpl( CompanyRepository companyRepository, CompanyMapper companyMapper, @@ -57,7 +67,9 @@ public CompanyServiceImpl( UserService userService, UserMapper userMapper, CacheManager cacheManager, - CacheNameResolver cacheNameResolver + CacheNameResolver cacheNameResolver, + UserRepository userRepository, + UserDetailsRepository userDetailsRepository ) { this.companyRepository = companyRepository; this.companyMapper = companyMapper; @@ -65,6 +77,8 @@ public CompanyServiceImpl( this.userService = userService; this.cacheManager = cacheManager; this.cacheNameResolver = cacheNameResolver; + this.userRepository = userRepository; + this.userDetailsRepository = userDetailsRepository; } @Override @@ -168,8 +182,30 @@ public Optional findOneByNameIgnoreCase(String name) { } @Override + @Transactional() public void delete(Long id) { log.debug("Request to delete Company : {}", id); + Optional maybeCompanyDTO = this.findOne(id); + if (!maybeCompanyDTO.isPresent()) { + throw new EmptyResultDataAccessException("No class org.mskcc.cbio.oncokb.domain.Company entity with id " + id + " exists!", 0); + } + + CompanyDTO companyDTO = maybeCompanyDTO.get(); + Boolean isCommercial = companyDTO.getLicenseType().equals(LicenseType.COMMERCIAL); + List userDetails = userDetailsRepository.findByCompanyId(id); + for (UserDetails userDetail : userDetails) { + userDetail.setCompany(null); + } + + if (isCommercial) { + List users = userDetails.stream().map(UserDetails::getUser).collect(Collectors.toList()); + for (User user : users) { + user.setActivated(false); + } + userRepository.saveAll(users); + } + + userDetailsRepository.saveAll(userDetails); companyRepository.deleteById(id); } diff --git a/src/main/java/org/mskcc/cbio/oncokb/web/rest/CompanyResource.java b/src/main/java/org/mskcc/cbio/oncokb/web/rest/CompanyResource.java index 9bb8d9af8..e44051e99 100644 --- a/src/main/java/org/mskcc/cbio/oncokb/web/rest/CompanyResource.java +++ b/src/main/java/org/mskcc/cbio/oncokb/web/rest/CompanyResource.java @@ -1,10 +1,15 @@ package org.mskcc.cbio.oncokb.web.rest; import org.mskcc.cbio.oncokb.domain.Company; +import org.mskcc.cbio.oncokb.domain.User; +import org.mskcc.cbio.oncokb.domain.UserDetails; import org.mskcc.cbio.oncokb.domain.enumeration.LicenseType; import org.mskcc.cbio.oncokb.repository.CompanyRepository; +import org.mskcc.cbio.oncokb.repository.UserDetailsRepository; +import org.mskcc.cbio.oncokb.repository.UserRepository; import org.mskcc.cbio.oncokb.security.AuthoritiesConstants; import org.mskcc.cbio.oncokb.service.CompanyService; +import org.mskcc.cbio.oncokb.service.UserDetailsService; import org.mskcc.cbio.oncokb.service.UserService; import org.mskcc.cbio.oncokb.web.rest.errors.BadRequestAlertException; import org.mskcc.cbio.oncokb.web.rest.vm.CompanyVM; @@ -47,7 +52,10 @@ public class CompanyResource { private final CompanyRepository companyRepository; - public CompanyResource(CompanyService companyService, UserService userService, CompanyRepository companyRepository) { + public CompanyResource( + CompanyService companyService, + UserService userService, + CompanyRepository companyRepository) { this.companyService = companyService; this.userService = userService; this.companyRepository = companyRepository; @@ -174,4 +182,17 @@ public ResponseEntity verifyCompanyName(@Valid @RequestBody VerifyCompa } return new ResponseEntity<>(isValid, HttpStatus.OK); } + + /** + * {@code DELETE /companies/:id} : delete the "id" company. + * + * @param id the id of the companyDTO to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ + @DeleteMapping("/companies/{id}") + public ResponseEntity deleteCompany(@PathVariable Long id) { + log.debug("REST request to delete Company : {}", id); + companyService.delete(id); + return ResponseEntity.ok().build(); + } } diff --git a/src/main/webapp/app/pages/companyPage/CompanyPage.tsx b/src/main/webapp/app/pages/companyPage/CompanyPage.tsx index 0ad22034f..dd078f845 100644 --- a/src/main/webapp/app/pages/companyPage/CompanyPage.tsx +++ b/src/main/webapp/app/pages/companyPage/CompanyPage.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { observer } from 'mobx-react'; +import { inject, observer } from 'mobx-react'; import { getSectionClassName } from 'app/pages/account/AccountUtils'; import { AvField, AvForm } from 'availity-reactstrap-validation'; import { @@ -10,6 +10,7 @@ import { LicenseModel, LicenseStatus, PAGE_ROUTE, + REDIRECT_TIMEOUT_MILLISECONDS, } from 'app/config/constants'; import { Alert, Button, Col, Row } from 'react-bootstrap'; import { @@ -67,11 +68,16 @@ import { import UsageText from 'app/shared/texts/UsageText'; import { DateSelector } from 'app/components/dateSelector/DateSelector'; import { DownloadButton } from 'app/components/downloadButton/DownloadButton'; +import { RouterStore } from 'mobx-react-router'; interface MatchParams { id: string; } +interface ICompanyPage extends RouteComponentProps { + routing: RouterStore; +} + type SelectOptionType = { label: string; value: string; @@ -97,10 +103,15 @@ const LICENSE_STATUS_UPDATE_MESSAGES = { }, }; +enum SimpleConfirmModalType { + NA, + DELETE_COMPANY, + UPDATE_COMPANY, +} + +@inject('routing') @observer -export default class CompanyPage extends React.Component< - RouteComponentProps -> { +export default class CompanyPage extends React.Component { @observable getCompanyStatus = PromiseStatus.pending; @observable getCompanyUsersStatus = PromiseStatus.pending; @observable getDropdownUsersStatus = PromiseStatus.pending; @@ -108,7 +119,7 @@ export default class CompanyPage extends React.Component< @observable selectedLicenseStatus: LicenseStatus; @observable conflictingDomains: string[] = []; - @observable showLicenseChangeModal = false; + @observable showModal = false; @observable confirmLicenseChangeModalText = ''; @observable formValues: any; @@ -118,10 +129,13 @@ export default class CompanyPage extends React.Component< @observable dropDownUsers: SelectOptionType[] = []; @observable selectedUsersOptions: SelectOptionType[] = []; + @observable simpleConfirmModalType: SimpleConfirmModalType = + SimpleConfirmModalType.NA; + @observable resourcesTypeToggleValue: ToggleValue = ToggleValue.PUBLIC_RESOURCES; - constructor(props: RouteComponentProps) { + constructor(props: ICompanyPage) { super(props); this.getCompany(); this.getDropdownUsers(); @@ -182,8 +196,8 @@ export default class CompanyPage extends React.Component< } @action.bound - updateCompany() { - this.showLicenseChangeModal = false; + onConfirmUpdateCompany() { + this.showModal = false; this.getCompanyStatus = PromiseStatus.pending; this.getCompanyUsersStatus = PromiseStatus.pending; this.getDropdownUsersStatus = PromiseStatus.pending; @@ -218,6 +232,38 @@ export default class CompanyPage extends React.Component< }); } + @autobind + onConfirmDeleteAccountButton() { + this.showModal = false; + client.deleteCompanyUsingDELETE({ id: this.company.id }).then( + () => { + notifySuccess( + 'Deleted company, we will redirect you to the company details page.' + ); + setTimeout(() => { + this.props.routing.history.push(PAGE_ROUTE.ADMIN_COMPANY_DETAILS); + }, REDIRECT_TIMEOUT_MILLISECONDS); + }, + (error: Error) => notifyError(error) + ); + } + + @autobind + onConfirmSimpleConfirmModal() { + switch (this.simpleConfirmModalType) { + case SimpleConfirmModalType.UPDATE_COMPANY: + this.onConfirmUpdateCompany(); + break; + case SimpleConfirmModalType.DELETE_COMPANY: + this.onConfirmDeleteAccountButton(); + break; + case SimpleConfirmModalType.NA: + default: + break; + } + this.simpleConfirmModalType = SimpleConfirmModalType.NA; + } + @action.bound async verifyUserEmail(user: UserDTO) { try { @@ -247,13 +293,13 @@ export default class CompanyPage extends React.Component< this.company.licenseStatus !== this.selectedLicenseStatus && this.companyUsers.length > 0 ) { - this.showLicenseChangeModal = true; + this.showModal = true; this.confirmLicenseChangeModalText = LICENSE_STATUS_UPDATE_MESSAGES[this.company.licenseStatus][ this.selectedLicenseStatus ]; } else { - this.updateCompany(); + this.onConfirmUpdateCompany(); } } @@ -323,23 +369,41 @@ export default class CompanyPage extends React.Component< option => !hideOptions.includes(option.value) ); } + @computed + get licenseChangeModalTitle() { + if (this.simpleConfirmModalType === SimpleConfirmModalType.UPDATE_COMPANY) { + return 'Review Company Changes'; + } else if ( + this.simpleConfirmModalType === SimpleConfirmModalType.DELETE_COMPANY + ) { + return 'Confirm Deleting Company'; + } + } @computed get licenseChangeModalBody() { - return ( - <> -
    - Are you sure you want to change the company's license status from{' '} - {this.company.licenseStatus}{' '} - to{' '} - {this.selectedLicenseStatus} - ? -
    - - Warning: {this.confirmLicenseChangeModalText} - - - ); + if (this.simpleConfirmModalType === SimpleConfirmModalType.UPDATE_COMPANY) { + return ( + <> +
    + Are you sure you want to change the company's license status from{' '} + + {this.company.licenseStatus} + {' '} + to{' '} + + {this.selectedLicenseStatus} + + ? +
    + + Warning: {this.confirmLicenseChangeModalText} + + + ); + } else { + return undefined; + } } @computed @@ -876,13 +940,34 @@ export default class CompanyPage extends React.Component< + + +
    Danger Zone
    +
    + +
    + +
    (this.showLicenseChangeModal = false)} - onConfirm={this.updateCompany} + onCancel={() => { + this.showModal = false; + this.simpleConfirmModalType = SimpleConfirmModalType.NA; + }} + onConfirm={this.onConfirmSimpleConfirmModal} /> diff --git a/src/main/webapp/app/shared/api/generated/API-docs.json b/src/main/webapp/app/shared/api/generated/API-docs.json index 88c77aef5..57ed7fc6f 100644 --- a/src/main/webapp/app/shared/api/generated/API-docs.json +++ b/src/main/webapp/app/shared/api/generated/API-docs.json @@ -1005,6 +1005,41 @@ } }, "deprecated": false + }, + "delete": { + "tags": [ + "company-resource" + ], + "summary": "deleteCompany", + "operationId": "deleteCompanyUsingDELETE", + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "id", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": false } }, "/api/companies/{id}/users": { diff --git a/src/main/webapp/app/shared/api/generated/API.ts b/src/main/webapp/app/shared/api/generated/API.ts index e7d1446bc..b0d20a981 100644 --- a/src/main/webapp/app/shared/api/generated/API.ts +++ b/src/main/webapp/app/shared/api/generated/API.ts @@ -2133,6 +2133,81 @@ export default class API { return response.body; }); }; + deleteCompanyUsingDELETEURL(parameters: { + 'id': number, + $queryParameters ? : any + }): string { + let queryParameters: any = {}; + let path = '/api/companies/{id}'; + + path = path.replace('{id}', parameters['id'] + ''); + + if (parameters.$queryParameters) { + Object.keys(parameters.$queryParameters).forEach(function(parameterName) { + var parameter = parameters.$queryParameters[parameterName]; + queryParameters[parameterName] = parameter; + }); + } + let keys = Object.keys(queryParameters); + return this.domain + path + (keys.length > 0 ? '?' + (keys.map(key => key + '=' + encodeURIComponent(queryParameters[key])).join('&')) : ''); + }; + + /** + * deleteCompany + * @method + * @name API#deleteCompanyUsingDELETE + * @param {integer} id - id + */ + deleteCompanyUsingDELETEWithHttpInfo(parameters: { + 'id': number, + $queryParameters ? : any, + $domain ? : string + }): Promise < request.Response > { + const domain = parameters.$domain ? parameters.$domain : this.domain; + const errorHandlers = this.errorHandlers; + const request = this.request; + let path = '/api/companies/{id}'; + let body: any; + let queryParameters: any = {}; + let headers: any = {}; + let form: any = {}; + return new Promise(function(resolve, reject) { + headers['Accept'] = '*/*'; + + path = path.replace('{id}', parameters['id'] + ''); + + if (parameters['id'] === undefined) { + reject(new Error('Missing required parameter: id')); + return; + } + + if (parameters.$queryParameters) { + Object.keys(parameters.$queryParameters).forEach(function(parameterName) { + var parameter = parameters.$queryParameters[parameterName]; + queryParameters[parameterName] = parameter; + }); + } + + request('DELETE', domain + path, body, headers, queryParameters, form, reject, resolve, errorHandlers); + + }); + }; + + /** + * deleteCompany + * @method + * @name API#deleteCompanyUsingDELETE + * @param {integer} id - id + */ + deleteCompanyUsingDELETE(parameters: { + 'id': number, + $queryParameters ? : any, + $domain ? : string + }): Promise < any > { + return this.deleteCompanyUsingDELETEWithHttpInfo(parameters).then(function(response: request.Response) { + return response.body; + }); + }; getCompanyUsersUsingGETURL(parameters: { 'id': number, $queryParameters ? : any