21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/satusehat_client/config.rb', line 21
def self.generate_token
redis = Redis.new(host: ENV["SATUSEHAT_REDIS_URL"], port: ENV["SATUSEHAT_REDIS_PORT"])
conn = Faraday.new(
url: "#{ENV["SATUSEHAT_AUTH_URL"]}/accesstoken?grant_type=client_credentials",
params: {grant_type: 'client_credentials'}
) do |f|
f.request :url_encoded
end
req_body = {
client_id: ENV["SATUSEHAT_CLIENT_ID"],
client_secret: ENV["SATUSEHAT_CLIENT_SECRET"]
}
if redis.get("ss-token")
accesstoken = redis.get("ss-token")
else
response = conn.post do |req|
req.body = req_body
req.['Content-Type'] = 'application/x-www-form-urlencoded'
end
if response.body.nil? || response.body.empty?
accesstoken = "response body is empty."
else
body = JSON.parse(response.body)
token_in_redis = redis.set("ss-token", body["access_token"], ex: 200)
accesstoken = redis.get("ss-token")
end
end
return accesstoken
end
|