Skip to content

Commit

Permalink
Update devices list on friendly name updates (#15)
Browse files Browse the repository at this point in the history
Co-authored-by: Pantelis Giazitsis <[email protected]>
  • Loading branch information
pantelisss and Pantelis Giazitsis authored Feb 8, 2024
1 parent dc470ef commit 81da50f
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,13 @@ extension DeviceInfoRepositoryImpl {
let urlRequest = try builder.asURLRequest()
return ApiClient.shared.requestCodableAuthorized(urlRequest, mockFileName: builder.mockFileName)
}
public func setFriendlyName(deviceId: String, name: String) throws -> AnyPublisher<DataResponse<EmptyEntity, NetworkErrorResponse>, Never> {
let urlRequest = try MeApiRequestBuilder.setFriendlyName(deviceId: deviceId, name: name).asURLRequest()
return ApiClient.shared.requestCodableAuthorized(urlRequest)

public func setFriendlyName(deviceId: String, name: String) throws -> AnyPublisher<DataResponse<EmptyEntity, NetworkErrorResponse>, Never> {
try userDevicesService.setFriendlyName(deviceId: deviceId, name: name)
}

public func deleteFriendlyName(deviceId: String) throws -> AnyPublisher<DataResponse<EmptyEntity, NetworkErrorResponse>, Never> {
let urlRequest = try MeApiRequestBuilder.deleteFriendlyName(deviceId: deviceId).asURLRequest()
return ApiClient.shared.requestCodableAuthorized(urlRequest)
try userDevicesService.deleteFriendlyName(deviceId: deviceId)
}

public func disclaimDevice(serialNumber: String) throws -> AnyPublisher<DataResponse<EmptyEntity, NetworkErrorResponse>, Never> {
Expand Down
30 changes: 30 additions & 0 deletions wxm-ios/DataLayer/UserDevicesService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,36 @@ public class UserDevicesService {
}
.eraseToAnyPublisher()
}

func setFriendlyName(deviceId: String, name: String) throws -> AnyPublisher<DataResponse<EmptyEntity, NetworkErrorResponse>, Never> {
let urlRequest = try MeApiRequestBuilder.setFriendlyName(deviceId: deviceId, name: name).asURLRequest()
let publisher: AnyPublisher<DataResponse<EmptyEntity, NetworkErrorResponse>, Never> = ApiClient.shared.requestCodableAuthorized(urlRequest)
return publisher
.flatMap { [weak self] response in
if response.error == nil {
self?.invalidateCaches()
WidgetCenter.shared.reloadAllTimelines()
NotificationCenter.default.post(name: .userDevicesListUpdated, object: deviceId)
}
return Just(response)
}
.eraseToAnyPublisher()
}

func deleteFriendlyName(deviceId: String) throws -> AnyPublisher<DataResponse<EmptyEntity, NetworkErrorResponse>, Never> {
let urlRequest = try MeApiRequestBuilder.deleteFriendlyName(deviceId: deviceId).asURLRequest()
let publisher: AnyPublisher<DataResponse<EmptyEntity, NetworkErrorResponse>, Never> = ApiClient.shared.requestCodableAuthorized(urlRequest)
return publisher
.flatMap { [weak self] response in
if response.error == nil {
self?.invalidateCaches()
WidgetCenter.shared.reloadAllTimelines()
NotificationCenter.default.post(name: .userDevicesListUpdated, object: deviceId)
}
return Just(response)
}
.eraseToAnyPublisher()
}
}

private extension UserDevicesService {
Expand Down

0 comments on commit 81da50f

Please sign in to comment.