Skip to content

Commit c3e1b38

Browse files
committed
Delete guest user when SetYearDaySchedule is failed
Signed-off-by: Hunsup Jung <hunsup.jung@samsung.com>
1 parent d593cda commit c3e1b38

File tree

1 file changed

+29
-11
lines changed
  • drivers/SmartThings/matter-lock/src/new-matter-lock

1 file changed

+29
-11
lines changed

drivers/SmartThings/matter-lock/src/new-matter-lock/init.lua

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,6 +1550,19 @@ local function clear_user_response_handler(driver, device, ib, response)
15501550
delete_aliro_from_table_as_user(device, userIdx)
15511551
delete_week_schedule_from_table_as_user(device, userIdx)
15521552
delete_year_schedule_from_table_as_user(device, userIdx)
1553+
if cmdName == "defaultSchedule" then
1554+
-- Update commandResult
1555+
local command_result_info = {
1556+
commandName = cmdName,
1557+
userIndex = userIdx,
1558+
statusCode = status
1559+
}
1560+
device:emit_event(capabilities.lockCredentials.commandResult(
1561+
command_result_info, {state_change = true, visibility = {displayed = false}}
1562+
))
1563+
device:set_field(lock_utils.BUSY_STATE, false, {persist = true})
1564+
return
1565+
end
15531566
else
15541567
device.log.warn(string.format("Failed to clear user: %s", status))
15551568
end
@@ -2418,17 +2431,22 @@ local function set_year_day_schedule_handler(driver, device, ib, response)
24182431
local cmdName = "addCredential"
24192432
local credIdx = device:get_field(lock_utils.CRED_INDEX)
24202433

2421-
-- Update commandResult
2422-
local command_result_info = {
2423-
commandName = cmdName,
2424-
userIndex = userIdx,
2425-
credentialIndex = credIdx,
2426-
statusCode = status
2427-
}
2428-
device:emit_event(capabilities.lockCredentials.commandResult(
2429-
command_result_info, {state_change = true, visibility = {displayed = false}}
2430-
))
2431-
device:set_field(lock_utils.BUSY_STATE, false, {persist = true})
2434+
if status == "success" then
2435+
-- Update commandResult
2436+
local command_result_info = {
2437+
commandName = cmdName,
2438+
userIndex = userIdx,
2439+
credentialIndex = credIdx,
2440+
statusCode = status
2441+
}
2442+
device:emit_event(capabilities.lockCredentials.commandResult(
2443+
command_result_info, {state_change = true, visibility = {displayed = false}}
2444+
))
2445+
device:set_field(lock_utils.BUSY_STATE, false, {persist = true})
2446+
else
2447+
local ep = device:component_to_endpoint(command.component)
2448+
device:send(DoorLock.server.commands.ClearUser(device, ep, userIdx))
2449+
end
24322450
return
24332451
end
24342452

0 commit comments

Comments
 (0)