04. Convert Employee Service to Effect
Start with Employee Service type
เราจะเริ่มแก้ type ของ Employee service กันก่อน
Employee Service Context
สำหรับ Services เราก็จะทำ Context เหมือนกัน
src/services/employee/index.ts
จาก code ด้านบน เราไม่ได้ใช้ function initEmployeeService()
แล้ว ซึ่งจะใช้ก็ได้เช่นกัน ผมอยากให้เห็นหลายๆวิธี
พอไม่ได้ใช้ function initEmployeeService()
แล้ว ทำให้เราใช้ function ที่อยู่ที่ไฟล์อื่นไม่ได้แล้ว ต้อง implement กันใน method Live()
กันตรงๆ ซึ่ง functions ที่เราใช้ใน EmployeeService ไม่ได้มีอะไรซับซ้อนเลย แค่ดึง data จาก Database(Repositories) แล้วส่งต่อเลยในทันที
รอบนี้เราใช้ Effect.all()
แทนที่จะเป็น Effect.gen()
ซึ่งปกติผมชอบท่านี้มากกว่า แล้วก็ใส่ Repositories ที่ต้องการลงมาใน Effect.all()
ได้เลย ในที่นี้มีแค่ EmployeeRepository
อันเดียว
จากนั้นก็จะเอา repository ไปใช้งานใน function ต่างๆต่อไป
Test Service Example
ตัวอย่างการสร้าง Test Service ที่จะเอาไว้ inject ตอนเขียน Test