curseforge 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/curseforge/version.rb +1 -1
- data/lib/curseforge.rb +18 -11
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 594f8baa31334008dafd7548a851220d1c9a90744f4b637ca6ffab0783f713bc
|
4
|
+
data.tar.gz: 5f00e75e48a28cbe43cafe6bbbc202b6fac8f6e377cb0616e975bfd58c5571bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed3c32b3a6d4ba198710f5ba369ac9e5c04d66c54eaa94c11b2cbc12f1296909d2dff831b4608f0a3a156ec9d1ee21d465134b0c2aa2a55ca18c0b87007841eb
|
7
|
+
data.tar.gz: 548058d22b7947c5e9a2bca321af354530e1b7d45c719a40329c847fabfc0535454dc505f0daf01c5ede4fd9e396be88680cf62b2687cc124ef5d49956f52c76
|
data/lib/curseforge/version.rb
CHANGED
data/lib/curseforge.rb
CHANGED
@@ -6,6 +6,16 @@ require 'json'
|
|
6
6
|
# CurseForge API Wrapper
|
7
7
|
# by PackBuilder.io
|
8
8
|
class CurseForge
|
9
|
+
class Error < StandardError
|
10
|
+
attr_reader :response
|
11
|
+
|
12
|
+
def initialize(response, message)
|
13
|
+
super(message || "Received #{response.status} status code")
|
14
|
+
|
15
|
+
@response = response
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
9
19
|
require_relative 'curseforge/version'
|
10
20
|
|
11
21
|
def initialize(token)
|
@@ -21,7 +31,7 @@ class CurseForge
|
|
21
31
|
# @return [Hash]
|
22
32
|
# @see https://docs.curseforge.com/rest-api/#schemaget%20mod%20response
|
23
33
|
def get_mod(mod_id)
|
24
|
-
|
34
|
+
req(:get, "/v1/mods/#{mod_id}")
|
25
35
|
end
|
26
36
|
|
27
37
|
# @param [Array<Integer>] mod_ids
|
@@ -30,7 +40,7 @@ class CurseForge
|
|
30
40
|
# @return [Hash]
|
31
41
|
# @see https://docs.curseforge.com/rest-api/#schemaget%20mods%20response
|
32
42
|
def get_mods(*mods_ids, filter_pc_only: true)
|
33
|
-
|
43
|
+
req(:post, '/v1/mods', body: {
|
34
44
|
modIds: mods_ids,
|
35
45
|
filterPCOnly: filter_pc_only
|
36
46
|
}.to_json, headers: { 'Content-Type' => 'application/json' })["data"]
|
@@ -79,20 +89,17 @@ class CurseForge
|
|
79
89
|
# @see https://docs.curseforge.com/rest-api/#schemasearch%20mods%20response
|
80
90
|
def search_mods(game_id, **query)
|
81
91
|
query[:gameId] = game_id
|
82
|
-
|
92
|
+
req(:get, '/v1/mods/search', body: query)
|
83
93
|
end
|
84
94
|
|
85
95
|
private
|
86
96
|
|
87
97
|
def req(method, path, body: nil, headers: nil)
|
88
|
-
@api.send(method, path, body, headers)
|
89
|
-
|
98
|
+
resp = @api.send(method, path, body, headers)
|
99
|
+
raise Error.new(resp) unless resp.success?
|
90
100
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
JSON.parse(resp.body)
|
96
|
-
end
|
101
|
+
JSON.parse(resp.body)
|
102
|
+
rescue StandardError => e
|
103
|
+
raise Error.new(resp, e)
|
97
104
|
end
|
98
105
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: curseforge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Goob-Hub
|
8
8
|
- Dylan Hackworth
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|