(defn fetch-user [id] (let [user (fetch-item id) score (fetch-score id)] (assoc user :score score))) (defn fetch-post [id] (let [post (fetch-item id) user (fetch-user (get-in post [:owner :id]))] (assoc post :owner user))) (defn timeline-ids [username] (fetch-collection (str "@" username))) (defn timeline-posts [username] (->> username timeline-ids (take 20) (map fetch-post)))