discourse_api 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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