Mercurial > rsstweet
comparison app/lib/cached_fetch.rb @ 234:7a773720d81f legit-client
Totally legit client
author | nanaya <me@nanaya.net> |
---|---|
date | Fri, 14 Jul 2023 22:42:20 +0900 |
parents | |
children | c800506ae799 |
comparison
equal
deleted
inserted
replaced
233:0f0cc55ff11b | 234:7a773720d81f |
---|---|
1 module CachedFetch | |
2 def self.timeline(user_id) | |
3 cached("timeline:#{user_id}") { LegitClient.timeline(user_id)&.[](:timeline) } | |
4 end | |
5 | |
6 def self.user_by_id(user_id) | |
7 cached("user_by_id:#{user_id}") { LegitClient.user_by_id(user_id)&.[](:user) } | |
8 end | |
9 | |
10 def self.user_by_username(username) | |
11 cached("user_by_username:#{username}") { LegitClient.user_by_username(username)&.[](:user) } | |
12 end | |
13 | |
14 def self.cached(key, &block) | |
15 Rails.cache.fetch(key, expires_in: (15 + rand(15)).minutes, &block) | |
16 end | |
17 end |