const exit = await Effect.gen(function* () {
const svc = yield* TaskService
const data = yield* svc.getById(input.params.taskId)
return data
}).pipe(
Effect.catchTags({
"NoSuchElementException": error => Effect.fail(new ORPCError("NOT_FOUND", { data: error, message: "not found" })),
"ParseError": () => Effect.fail(new ORPCError("INTERNAL_SERVER_ERROR", { message: "parse data into schema error" })),
"Task/GetById/Error": () => Effect.fail(new ORPCError("INTERNAL_SERVER_ERROR", { message: "get by id error" })),
}),
AppRuntime.runPromiseExit,
)
return Exit.match(exit, {
onFailure: (error) => {
const err = Cause.squash(error)
throw err
},
onSuccess: data => data,
})
const exit = await Effect.gen(function* () {
const svc = yield* TaskService
const data = yield* svc.getById(input.params.taskId)
return data
}).pipe(
Effect.catchTags({
"NoSuchElementException": error => Effect.fail(new ORPCError("NOT_FOUND", { data: error, message: "not found" })),
"ParseError": () => Effect.fail(new ORPCError("INTERNAL_SERVER_ERROR", { message: "parse data into schema error" })),
"Task/GetById/Error": () => Effect.fail(new ORPCError("INTERNAL_SERVER_ERROR", { message: "get by id error" })),
}),
AppRuntime.runPromiseExit,
)
return Exit.match(exit, {
onFailure: (error) => {
const err = Cause.squash(error)
throw err
},
onSuccess: data => data,
})