Please enable JavaScript.
Coggle requires JavaScript to display documents.
🐅TodoAi (Tạo service.dart để check xem id đã có trong UserProvider hay…
🐅TodoAi
(Tạo service.dart để check xem id đã có trong UserProvider hay chưa)
Thêm & Sửa
(2 hành động xảy ra riêng biệt)
Tạo biến bool "
isAdd
& "
isUpdate
" = true
Lưu vào local
check có mạng
dùng for, if check xem nếu task có isAdd & isUpdate = true thì POST hoặc PUT tương ứng
cứ gọi bình thường Service().AddTasks(truyền vô)
Service xử lý xem đã đăng nhập hay chưa
Lưu vào server
(không lưu biến các biến logic)
delete isAdd, isUpdate bên local
Đối với Thêm thì sẽ lấy taskId trả về để lưu vào local
Trường hợp xảy ra khi update
Update nhưng task đã bị xóa
Xử lý bên backend để trả kết quả tìm kiếm k thấy => sẽ xóa Task đó trên local
dùng
setState
để load lại
Xóa
Tạo biến bool "
isDelete
" = true
Cập nhật thêm biến isDelete vào local, và xóa các dữ liệu khác ngoại trừ taskId
check có mạng
Xóa trên server và local
If(taskId == null)
{xóa luôn}
GET dữ liệu từ API về rồi thêm vào Local
Dữ liệu Local sẽ ưu tiên thực hiện trước
Cứ mỗi lần get về là update lại toàn bộ local
=>Bởi vì ta cho Local thực hiện thay đổi lên server trước rồi nên dữ liệu trên server sẽ là dữ liệu chuẩn nhất, khi đó ta xóa local cũ thay bằng dữ liệu mới sẽ nhanh hơn không cần so sánh tốn code
(Chỉ cần load khi mới vô app hoặc refesh)
Độ ưu tiên hành động
isDelete - isAdd - isUpdate
initSate { For(100 task) If(Task[i].isDelete == true){ Hướng 1 }else if (Task[i].isAdd == true){ Post lên }else if (Task[i].isUpdate == true){ }