discourse_api 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 85bfc87d0fafa517bf76b417bc63d77cc1e4981f
4
- data.tar.gz: 220503a989f470fdb0b9edec7732e8b53eebf7ab
3
+ metadata.gz: 96b74f525ab0fe9d044cf6ca8bf4d3dd2eac1c14
4
+ data.tar.gz: f814acea9dba0c29147b5bf2569d1f95bb2a6af4
5
5
  SHA512:
6
- metadata.gz: 0e78225f1b54155f57a86f147f4323c96aadfb20737a294df74cd41cb3eda9cc9ed95578bbbd9c5bfdfef6563b6798fe357ba4e2d8cbd533d8a7b5988e9f09e3
7
- data.tar.gz: 9390284acb2d3b7660dabeae0fdcc953e4f4707772977f88ee295020901430d17285550c4163efa0ef6ff10bd5804147f0601a97a8aa06f5e62cf1553d434588
6
+ metadata.gz: a60efaf52b2a8c43d5df74046b4df8a50ed5bbe6e39ef7f1565097fe37b2b706322691f78286dab090f7d0916a5961e9e12b2c0517383b45719424fbda589b8e
7
+ data.tar.gz: ea0d9fdf0f425e8bcc09ba8e959312b1fb1b879b5abbdb3f86531ef91250b3f6fad407e6077f1ffa4454831e122e012ddab692572ebd43585c902149a318fd71
data/examples/example.rb CHANGED
@@ -3,5 +3,5 @@
3
3
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
4
4
  require File.expand_path('../../lib/discourse_api', __FILE__)
5
5
 
6
- client = DiscourseApi::Client.new("http://localhost:3000", '6157bad92b3b5f8004aedc82220281c5966e5d560bb2bb6f962123474db4ac98')
7
- puts client.latest
6
+ client = DiscourseApi::Client.new("http://localhost:3000", '6157bad92b3b5f8004aedc82220281c5966e5d560bb2bb6f962123474db4ac98', 'user_name')
7
+ puts client.latest_topics
@@ -8,3 +8,7 @@ client.api_key = "6157bad92b3b5f8004aedc82220281c5966e5d560bb2bb6f962123474db4ac
8
8
  client.api_username = "forumadmin"
9
9
 
10
10
  client.topic_invite_user(topic_id: 1, email: "bob@bob.com")
11
+
12
+ # if the user is an admin you may invite to a group as well
13
+ client.topic_invite_user(topic_id: 1, email: "bob@bob.com", group_ids: "1,2,3")
14
+ client.topic_invite_user(topic_id: 1, email: "bob@bob.com", group_names: "bugs,cars,testers")
@@ -7,7 +7,7 @@ client = DiscourseApi::Client.new("localhost", 3000)
7
7
  client.api_key = "YOUR_API_KEY"
8
8
  client.api_username = "YOUR_USERNAME"
9
9
 
10
- puts client.topics_latest({})
11
- puts client.topics_hot({})
10
+ puts client.latest_topics({})
11
+ puts client.hot_topics({})
12
12
  puts client.categories({})
13
13
 
@@ -5,17 +5,21 @@ module DiscourseApi
5
5
  put("/users/#{username}/preferences/avatar/toggle", { use_uploaded_avatar: use_uploaded_avatar })
6
6
  end
7
7
 
8
+ def activate(id)
9
+ put "/admin/users/#{id}/activate", api_key: api_key, api_username: api_username
10
+ end
11
+
8
12
  def user(username, *args)
9
- response = get("/user/#{username}.json", args)
13
+ response = get("/users/#{username}.json", args)
10
14
  response[:body]['user']
11
15
  end
12
16
 
13
17
  def update_avatar(username, file)
14
- put("/users/#{username}/preferences/avatar", { file: file })
18
+ put("/users/#{username}/preferences/avatar", { file: file, api_key: api_key })
15
19
  end
16
20
 
17
21
  def update_email(username, email)
18
- put("/users/#{username}/preferences/email", { email: email })
22
+ put("/users/#{username}/preferences/email", { email: email, api_key: api_key })
19
23
  end
20
24
 
21
25
  def update_user(username, *args)
@@ -23,7 +27,18 @@ module DiscourseApi
23
27
  end
24
28
 
25
29
  def update_username(username, new_username)
26
- put("/users/#{username}/preferences/username", { new_username: new_username })
30
+ put("/users/#{username}/preferences/username", { new_username: new_username, api_key: api_key })
31
+ end
32
+
33
+ # Create a user
34
+ def create_user(*args)
35
+ # First retrieve the honeypot values
36
+ response = get("/users/hp.json")
37
+ args.first[:password_confirmation] = response[:body]['value']
38
+ args.first[:challenge] = response[:body]['challenge'].reverse
39
+
40
+ # POST the args
41
+ post("/users", args)
27
42
  end
28
43
  end
29
44
  end
@@ -63,6 +63,9 @@ module DiscourseApi
63
63
  conn.response :json
64
64
  # Use Faraday's default HTTP adapter
65
65
  conn.adapter Faraday.default_adapter
66
+ #pass api_key and api_username on every request
67
+ conn.params['api_key'] = api_key
68
+ conn.params['api_username'] = api_username
66
69
  end
67
70
  end
68
71
 
@@ -1,3 +1,3 @@
1
1
  module DiscourseApi
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -9,12 +9,12 @@ describe DiscourseApi::API::Users do
9
9
 
10
10
  describe "#user" do
11
11
  before do
12
- stub_get("http://localhost/user/test_user.json").to_return(body: fixture("user.json"), headers: { content_type: "application/json" })
12
+ stub_get("http://localhost/users/test_user.json").to_return(body: fixture("user.json"), headers: { content_type: "application/json" })
13
13
  end
14
14
 
15
15
  it "requests the correct resource" do
16
16
  subject.user("test_user")
17
- expect(a_get("http://localhost/user/test_user.json")).to have_been_made
17
+ expect(a_get("http://localhost/users/test_user.json")).to have_been_made
18
18
  end
19
19
 
20
20
  it "returns the requested user" do
@@ -38,4 +38,21 @@ describe DiscourseApi::API::Users do
38
38
  describe "#update_username" do
39
39
  it "needs to have a test written for it"
40
40
  end
41
+
42
+ describe "#create_user" do
43
+ before do
44
+ stub_post("http://localhost/users").to_return(body: fixture("user_create_success.json"), headers: { content_type: "application/json" })
45
+ stub_get("http://localhost/users/hp.json").to_return(body: {"value"=>"foo", "challenge"=>"bar"}.to_json, headers: { content_type: "application/json" })
46
+ end
47
+
48
+ it "makes the post request" do
49
+ subject.create_user :name => "Test User", :email => "test@example.com", :password => "P@ssword", :username => "test-user"
50
+ expect(a_post("http://localhost/users")).to have_been_made
51
+ end
52
+
53
+ it "returns success" do
54
+ response = subject.create_user :name => "Test User", :email => "test@example.com", :password => "P@ssword", :username => "test-user"
55
+ expect(response[:body]['success']).to be_true
56
+ end
57
+ end
41
58
  end
@@ -0,0 +1,5 @@
1
+ {
2
+ "success": true,
3
+ "active": false,
4
+ "message": "You're almost done! We sent an activation email to <b>test@example.com</b>. Please follow the instructions in the email to activate your account."
5
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: discourse_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
@@ -10,146 +10,146 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-12-27 00:00:00.000000000 Z
13
+ date: 2014-05-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ~>
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
21
  version: 0.8.8
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ~>
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: 0.8.8
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: faraday_middleware
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ~>
33
+ - - "~>"
34
34
  - !ruby/object:Gem::Version
35
35
  version: '0.9'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ~>
40
+ - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0.9'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: bundler
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ~>
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
49
  version: '1.3'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ~>
54
+ - - "~>"
55
55
  - !ruby/object:Gem::Version
56
56
  version: '1.3'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rake
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - '>='
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - '>='
68
+ - - ">="
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rspec
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - '>='
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - '>='
82
+ - - ">="
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: webmock
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - '>='
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - '>='
96
+ - - ">="
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: guard-rspec
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - '>='
103
+ - - ">="
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0'
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - '>='
110
+ - - ">="
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: guard
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - '>='
117
+ - - ">="
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0'
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - '>='
124
+ - - ">="
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0'
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: rb-inotify
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - '>='
131
+ - - ">="
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - '>='
138
+ - - ">="
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: simplecov
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - '>='
145
+ - - ">="
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
148
  type: :development
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
- - - '>='
152
+ - - ">="
153
153
  - !ruby/object:Gem::Version
154
154
  version: '0'
155
155
  description: Discourse API
@@ -161,8 +161,8 @@ executables: []
161
161
  extensions: []
162
162
  extra_rdoc_files: []
163
163
  files:
164
- - .gitignore
165
- - .travis.yml
164
+ - ".gitignore"
165
+ - ".travis.yml"
166
166
  - Gemfile
167
167
  - Guardfile
168
168
  - LICENSE.txt
@@ -196,6 +196,7 @@ files:
196
196
  - spec/fixtures/topic.json
197
197
  - spec/fixtures/topics_created_by.json
198
198
  - spec/fixtures/user.json
199
+ - spec/fixtures/user_create_success.json
199
200
  - spec/spec_helper.rb
200
201
  homepage: http://github.com/discourse/discourse_api
201
202
  licenses:
@@ -207,17 +208,17 @@ require_paths:
207
208
  - lib
208
209
  required_ruby_version: !ruby/object:Gem::Requirement
209
210
  requirements:
210
- - - '>='
211
+ - - ">="
211
212
  - !ruby/object:Gem::Version
212
213
  version: '0'
213
214
  required_rubygems_version: !ruby/object:Gem::Requirement
214
215
  requirements:
215
- - - '>='
216
+ - - ">="
216
217
  - !ruby/object:Gem::Version
217
218
  version: '0'
218
219
  requirements: []
219
220
  rubyforge_project:
220
- rubygems_version: 2.0.14
221
+ rubygems_version: 2.2.2
221
222
  signing_key:
222
223
  specification_version: 4
223
224
  summary: Allows access to the Discourse API
@@ -235,4 +236,5 @@ test_files:
235
236
  - spec/fixtures/topic.json
236
237
  - spec/fixtures/topics_created_by.json
237
238
  - spec/fixtures/user.json
239
+ - spec/fixtures/user_create_success.json
238
240
  - spec/spec_helper.rb