-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhelper.rb
50 lines (41 loc) · 1.26 KB
/
helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
# helper.rb
require "oauth2"
require "dotenv"
#config = File.absolute_path(File.join(File.expand_path(".env"), '..', '.env'))
config = File.join(File.dirname(File.expand_path(__FILE__)), '.env')
Dotenv.load(config)
def getToken()
config = File.join(File.dirname(File.expand_path(__FILE__)), '.env')
puts config
puts ENV['UID']
client = OAuth2::Client.new(ENV['UID'], ENV['SECRET'], site: "https://api.intra.42.fr")
return client.client_credentials.get_token
end
def getResult(uri)
token = getToken()
result = []
i = 0
loop do
i = i + 1
response = token.get(uri, params: {page: {size: 100, number: i}})
result += response.parsed
if response.parsed == []
break
end
sleep(0.25)
end
result = result.sort_by { |hash| hash['id'].to_i }
return result
end
def getCampusID()
print "Campus name(EMPTY FOR ALL): "
name = gets.chomp
response = getToken().get("/v2/campus", params: {page: {size: 100, number: 1},filter: {name: name}}).parsed
return response
end
def getLoginID()
print "Login: "
login = gets.chomp
response = getToken().get("/v2/users", params: {page: {size: 100, number: 1},filter: {login: login}}).parsed
return response
end