Update delete device api

APiTesting
Akeela Azhar 1 year ago
parent db56b8216d
commit 0b10c33dcf

@ -480,5 +480,10 @@
<artifactId>google-api-services-sheets</artifactId>
<version>v4-rev20230227-2.0.0</version>
</dependency>
<dependency>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.8.6</version>
</dependency>
</dependencies>
</project>

@ -41,7 +41,6 @@ import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.sheets.v4.Sheets;
import com.google.api.services.sheets.v4.SheetsScopes;
import com.google.api.services.sheets.v4.model.AppendValuesResponse;
import com.google.api.services.sheets.v4.model.ValueRange;
import com.google.gson.Gson;
import io.entgra.application.mgt.common.ApplicationInstallResponse;
@ -130,8 +129,6 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
private static final Log log = LogFactory.getLog(DeviceManagementServiceImpl.class);
private static final String SPREADSHEET_ID = "1OZCS5NRwwSum9ai3ra4lABtU0UGW-9yLYgZk-aQfxpw";
private static final String RANGE = "Sheet1!A:B";
/**
* Validate group Id and group Id greater than 0 and exist.
@ -457,7 +454,6 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
}
}
@DELETE
@Override
@Path("/type/{deviceType}/id/{deviceId}")
@ -466,25 +462,12 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
DeviceManagementProviderService deviceManagementProviderService =
DeviceMgtAPIUtils.getDeviceManagementService();
try {
long startTime = System.currentTimeMillis(); // Start measuring response time
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType);
Device persistedDevice = deviceManagementProviderService.getDevice(deviceIdentifier, true);
if (persistedDevice == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}
boolean response = deviceManagementProviderService.disenrollDevice(deviceIdentifier);
long endTime = System.currentTimeMillis(); // End measuring response time
long responseTime = endTime - startTime;
saveResponseTimeToGoogleSheet(responseTime); // Save response time to Google Sheet
if (response) {
String successMessage = "Device of type '" + deviceType + "' with ID '" + deviceId + "' has been deleted.";
System.out.println(successMessage); // Print success message
}
return Response.status(Response.Status.OK).entity(response).build();
} catch (DeviceManagementException e) {
String msg = "Error encountered while deleting requested device of type : " + deviceType;
@ -493,41 +476,6 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
}
}
private void saveResponseTimeToGoogleSheet(long responseTime) {
try {
Sheets sheetsService = createSheetsService();
// Prepare the data to be written
ValueRange requestBody = new ValueRange().setValues(Collections.singletonList(
Arrays.asList(System.currentTimeMillis(), responseTime)
));
// Write the data to the spreadsheet
AppendValuesResponse appendResponse = sheetsService.spreadsheets().values()
.append(SPREADSHEET_ID, RANGE, requestBody)
.setValueInputOption("RAW")
.execute();
System.out.println("Response Time saved to Google Sheet. Updated rows: " + appendResponse.getUpdates().getUpdatedRows());
} catch (IOException e) {
e.printStackTrace();
// Handle any exceptions that occur during the process
}
}
private Sheets createSheetsService() throws IOException {
GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/resources/apicall-382608-48aa6a62800d.json"))
.createScoped(Collections.singleton(SheetsScopes.SPREADSHEETS));
try {
return new Sheets.Builder(GoogleNetHttpTransport.newTrustedTransport(), JacksonFactory.getDefaultInstance(), credential)
.setApplicationName("ApiCall")
.build();
} catch (GeneralSecurityException e) {
throw new RuntimeException(e);
}
}
@POST
@Override
@Path("/type/{deviceType}/id/{deviceId}/rename")
@ -535,6 +483,9 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
@PathParam("deviceId") String deviceId) {
DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService();
try {
// Start measuring API call response time
long startTime = System.currentTimeMillis();
Device persistedDevice = deviceManagementProviderService.getDevice(new DeviceIdentifier
(deviceId, deviceType), true);
persistedDevice.setName(device.getName());
@ -544,14 +495,53 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
persistedDevice);
boolean response = responseOfmodifyEnrollment && responseOfDeviceNameChanged;
// End measuring API call response time
long endTime = System.currentTimeMillis();
long responseTime = endTime - startTime;
// Save the response time to Google Spreadsheet
saveResponseTimeToSpreadsheet(responseTime);
return Response.status(Response.Status.CREATED).entity(response).build();
} catch (DeviceManagementException e) {
String msg = "Error encountered while updating requested device of type : " + deviceType;
log.error(msg, e);
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
} catch (IOException | GeneralSecurityException e) {
String msg = "Error encountered while saving response time to spreadsheet";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
}
private void saveResponseTimeToSpreadsheet(long responseTime) throws IOException, GeneralSecurityException {
// Load credentials from JSON file
GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/resources/apicall-382608-48aa6a62800d.json"))
.createScoped(Collections.singleton(SheetsScopes.SPREADSHEETS));
// Build Google Sheets service
Sheets sheetsService = new Sheets.Builder(GoogleNetHttpTransport.newTrustedTransport(),
JacksonFactory.getDefaultInstance(), credential)
.setApplicationName("ApiCall")
.build();
// Define the spreadsheet ID and range
String spreadsheetId = "1OZCS5NRwwSum9ai3ra4lABtU0UGW-9yLYgZk-aQfxpw";
String range = "Sheet1!A:B"; // Assuming column A for timestamps and column B for response times
// Prepare the values to be written
List<List<Object>> values = Collections.singletonList(Collections.singletonList(responseTime));
// Build the value range object
ValueRange body = new ValueRange().setValues(values);
// Write the response time value to the spreadsheet
sheetsService.spreadsheets().values()
.append(spreadsheetId, range, body)
.setValueInputOption("USER_ENTERED")
.execute();
}
@GET
@Path("/{type}/{id}")
@Override

Loading…
Cancel
Save