Effect.gen(function*() {
const placesService = yield* PlacesService
return yield* placesService.searchNearby({ latitude: params.lat, longitude: params.long }, 50).pipe(
Effect
.map((places) => places
.filter((place) => place.photos.length > 0)
.map((place) => ({
...place,
photos: Effect.all(place.photos.map((photo) => placesService.getPlacePhotoURL(photo.name)))
})
)),
Effect.flatMap((places) => Http.response.json(places))
)
}
// Method signatures
searchNearby: (point: Point, radius: number) => Effect.Effect<readonly Place[], UnknownException | ParseError, never>
getPlacePhotoURL: (photoName: string) => Effect.Effect<PhotoMedia, HttpClientError | ParseError, never>
Effect.gen(function*() {
const placesService = yield* PlacesService
return yield* placesService.searchNearby({ latitude: params.lat, longitude: params.long }, 50).pipe(
Effect
.map((places) => places
.filter((place) => place.photos.length > 0)
.map((place) => ({
...place,
photos: Effect.all(place.photos.map((photo) => placesService.getPlacePhotoURL(photo.name)))
})
)),
Effect.flatMap((places) => Http.response.json(places))
)
}
// Method signatures
searchNearby: (point: Point, radius: number) => Effect.Effect<readonly Place[], UnknownException | ParseError, never>
getPlacePhotoURL: (photoName: string) => Effect.Effect<PhotoMedia, HttpClientError | ParseError, never>