From 32b1bf900dd426b6683d7c02602d6b5efa165080 Mon Sep 17 00:00:00 2001 From: zbeacon Date: Fri, 24 Mar 2023 10:39:58 +0200 Subject: [PATCH] Refactoring and added method to get users for assignment to rest client --- .../server/controller/UserController.java | 10 +++++----- .../org/thingsboard/rest/client/RestClient.java | 14 ++++++++++++++ ui-ngx/src/app/core/http/user.service.ts | 5 ++--- .../alarm/alarm-assignee-panel.component.ts | 2 -- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/UserController.java b/application/src/main/java/org/thingsboard/server/controller/UserController.java index 577a25f65d..dc35ce9b46 100644 --- a/application/src/main/java/org/thingsboard/server/controller/UserController.java +++ b/application/src/main/java/org/thingsboard/server/controller/UserController.java @@ -447,11 +447,11 @@ public class UserController extends BaseController { "Search is been executed by email, firstName and lastName fields. " + PAGE_DATA_PARAMETERS + TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") - @RequestMapping(value = "/users/assign", params = {"alarmId", "pageSize", "page"}, method = RequestMethod.GET) + @RequestMapping(value = "/users/assign/{alarmId}", params = {"pageSize", "page"}, method = RequestMethod.GET) @ResponseBody - public PageData getAssignees( + public PageData getUsersForAssign( @ApiParam(value = ALARM_ID_PARAM_DESCRIPTION) - @RequestParam String alarmId, + @PathVariable("alarmId") String strAlarmId, @ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) @RequestParam int pageSize, @ApiParam(value = PAGE_NUMBER_DESCRIPTION, required = true) @@ -463,8 +463,8 @@ public class UserController extends BaseController { @ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES) @RequestParam(required = false) String sortOrder) throws ThingsboardException { try { - checkParameter("alarmId", alarmId); - AlarmId alarmEntityId = new AlarmId(toUUID(alarmId)); + checkParameter("alarmId", strAlarmId); + AlarmId alarmEntityId = new AlarmId(toUUID(strAlarmId)); Alarm alarm = checkAlarmId(alarmEntityId, Operation.READ); SecurityUser currentUser = getCurrentUser(); TenantId tenantId = currentUser.getTenantId(); diff --git a/rest-client/src/main/java/org/thingsboard/rest/client/RestClient.java b/rest-client/src/main/java/org/thingsboard/rest/client/RestClient.java index c2c0a6d794..61bd7fb72b 100644 --- a/rest-client/src/main/java/org/thingsboard/rest/client/RestClient.java +++ b/rest-client/src/main/java/org/thingsboard/rest/client/RestClient.java @@ -65,6 +65,7 @@ import org.thingsboard.server.common.data.TenantInfo; import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.UpdateMessage; import org.thingsboard.server.common.data.User; +import org.thingsboard.server.common.data.UserEmailInfo; import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.common.data.alarm.AlarmInfo; import org.thingsboard.server.common.data.alarm.AlarmSearchStatus; @@ -2565,6 +2566,19 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable { }, params).getBody(); } + public PageData getUsersForAssign(AlarmId alarmId, PageLink pageLink) { + Map params = new HashMap<>(); + params.put("alarmId", alarmId.getId().toString()); + addPageLinkToParam(params, pageLink); + + return restTemplate.exchange( + baseURL + "/users/assign/{alarmId}" + getUrlParams(pageLink), + HttpMethod.GET, + HttpEntity.EMPTY, + new ParameterizedTypeReference>() { + }, params).getBody(); + } + public void setUserCredentialsEnabled(UserId userId, boolean userCredentialsEnabled) { restTemplate.postForLocation( baseURL + "/api/user/{userId}/userCredentialsEnabled?userCredentialsEnabled={userCredentialsEnabled}", diff --git a/ui-ngx/src/app/core/http/user.service.ts b/ui-ngx/src/app/core/http/user.service.ts index 48ca76a4a0..39a5a20e6e 100644 --- a/ui-ngx/src/app/core/http/user.service.ts +++ b/ui-ngx/src/app/core/http/user.service.ts @@ -53,9 +53,8 @@ export class UserService { public getUsersForAssign(alarmId: string, pageLink: PageLink, config?: RequestConfig): Observable> { - let url = `/api/users/assign${pageLink.toQuery()}`; - url += `&alarmId=` + alarmId; - return this.http.get>(url, defaultHttpOptionsFromConfig(config)); + return this.http.get>(`/api/users/assign/${alarmId}${pageLink.toQuery()}`, + defaultHttpOptionsFromConfig(config)); } public getUser(userId: string, config?: RequestConfig): Observable { diff --git a/ui-ngx/src/app/modules/home/components/alarm/alarm-assignee-panel.component.ts b/ui-ngx/src/app/modules/home/components/alarm/alarm-assignee-panel.component.ts index 121a09452c..82c7515ed9 100644 --- a/ui-ngx/src/app/modules/home/components/alarm/alarm-assignee-panel.component.ts +++ b/ui-ngx/src/app/modules/home/components/alarm/alarm-assignee-panel.component.ts @@ -44,8 +44,6 @@ import { AlarmService } from '@core/http/alarm.service'; import { OverlayRef } from '@angular/cdk/overlay'; import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; import { UtilsService } from '@core/services/utils.service'; -import {Authority} from "@shared/models/authority.enum"; -import {NULL_UUID} from "@shared/models/id/has-uuid"; export const ALARM_ASSIGNEE_PANEL_DATA = new InjectionToken('AlarmAssigneePanelData');