Module: DiscourseApi::API::Users
- Included in:
- Client
- Defined in:
- lib/discourse_api/api/users.rb
Instance Method Summary collapse
- #activate(id) ⇒ Object
- #anonymize(user_id) ⇒ Object
- #by_external_id(external_id) ⇒ Object
- #check_username(username) ⇒ Object
- #create_user(args) ⇒ Object
- #deactivate(user_id) ⇒ Object
- #delete_user(user_id, delete_posts = false) ⇒ Object
- #grant_admin(user_id) ⇒ Object
- #grant_moderation(user_id) ⇒ Object
- #invite_admin(args = {}) ⇒ Object
- #list_users(type, params = {}) ⇒ Object
- #log_out(id) ⇒ Object
- #revoke_admin(user_id) ⇒ Object
- #revoke_moderation(user_id) ⇒ Object
- #suspend(user_id, suspend_until, reason) ⇒ Object
- #unsuspend(user_id) ⇒ Object
- #update_avatar(username, args) ⇒ Object
- #update_email(username, email) ⇒ Object
- #update_trust_level(user_id, args) ⇒ Object
- #update_user(username, args) ⇒ Object
- #update_username(username, new_username) ⇒ Object
- #user(username, params = {}) ⇒ Object
- #user_sso(user_id) ⇒ Object
Instance Method Details
#activate(id) ⇒ Object
5 6 7 |
# File 'lib/discourse_api/api/users.rb', line 5 def activate(id) put("/admin/users/#{id}/activate") end |
#anonymize(user_id) ⇒ Object
105 106 107 |
# File 'lib/discourse_api/api/users.rb', line 105 def anonymize(user_id) put("/admin/users/#{user_id}/anonymize") end |
#by_external_id(external_id) ⇒ Object
92 93 94 95 |
# File 'lib/discourse_api/api/users.rb', line 92 def by_external_id(external_id) response = get("/users/by-external/#{external_id}") response[:body]['user'] end |
#check_username(username) ⇒ Object
113 114 115 116 |
# File 'lib/discourse_api/api/users.rb', line 113 def check_username(username) response = get("/users/check_username.json?username=#{CGI.escape(username)}") response[:body] end |
#create_user(args) ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/discourse_api/api/users.rb', line 52 def create_user(args) args = API.params(args) .required(:name, :email, :password, :username) .optional(:active, :approved, :staged, :user_fields) .to_h post("/users", args) end |
#deactivate(user_id) ⇒ Object
118 119 120 |
# File 'lib/discourse_api/api/users.rb', line 118 def deactivate(user_id) put("/admin/users/#{user_id}/deactivate") end |
#delete_user(user_id, delete_posts = false) ⇒ Object
109 110 111 |
# File 'lib/discourse_api/api/users.rb', line 109 def delete_user(user_id, delete_posts = false) delete("/admin/users/#{user_id}.json?delete_posts=#{delete_posts}") end |
#grant_admin(user_id) ⇒ Object
73 74 75 76 |
# File 'lib/discourse_api/api/users.rb', line 73 def grant_admin(user_id) response = put("admin/users/#{user_id}/grant_admin") response[:body] end |
#grant_moderation(user_id) ⇒ Object
83 84 85 86 |
# File 'lib/discourse_api/api/users.rb', line 83 def grant_moderation(user_id) response = put("admin/users/#{user_id}/grant_moderation") response[:body] end |
#invite_admin(args = {}) ⇒ Object
64 65 66 |
# File 'lib/discourse_api/api/users.rb', line 64 def invite_admin(args = {}) post("/admin/users/invite_admin", args) end |
#list_users(type, params = {}) ⇒ Object
68 69 70 71 |
# File 'lib/discourse_api/api/users.rb', line 68 def list_users(type, params = {}) response = get("admin/users/list/#{type}.json", params) response[:body] end |
#log_out(id) ⇒ Object
60 61 62 |
# File 'lib/discourse_api/api/users.rb', line 60 def log_out(id) post("/admin/users/#{id}/log_out") end |
#revoke_admin(user_id) ⇒ Object
78 79 80 81 |
# File 'lib/discourse_api/api/users.rb', line 78 def revoke_admin(user_id) response = put("admin/users/#{user_id}/revoke_admin") response[:body] end |
#revoke_moderation(user_id) ⇒ Object
88 89 90 |
# File 'lib/discourse_api/api/users.rb', line 88 def revoke_moderation(user_id) put("admin/users/#{user_id}/revoke_moderation") end |
#suspend(user_id, suspend_until, reason) ⇒ Object
97 98 99 |
# File 'lib/discourse_api/api/users.rb', line 97 def suspend(user_id, suspend_until, reason) put("/admin/users/#{user_id}/suspend", suspend_until: suspend_until, reason: reason) end |
#unsuspend(user_id) ⇒ Object
101 102 103 |
# File 'lib/discourse_api/api/users.rb', line 101 def unsuspend(user_id) put("/admin/users/#{user_id}/unsuspend") end |
#update_avatar(username, args) ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/discourse_api/api/users.rb', line 19 def update_avatar(username, args) args = API.params(args) .optional(:file, :url) .default(type: 'avatar', synchronous: true) .to_h upload_response = post("/uploads", args) put("/u/#{username}/preferences/avatar/pick", upload_id: upload_response['id']) end |
#update_email(username, email) ⇒ Object
28 29 30 |
# File 'lib/discourse_api/api/users.rb', line 28 def update_email(username, email) put("/u/#{username}/preferences/email", email: email) end |
#update_trust_level(user_id, args) ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/discourse_api/api/users.rb', line 44 def update_trust_level(user_id, args) args = API.params(args) .required(:level) .to_h response = put("/admin/users/#{user_id}/trust_level", args) response[:body] end |
#update_user(username, args) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/discourse_api/api/users.rb', line 32 def update_user(username, args) args = API.params(args) .optional(:name, :title, :bio_raw, :location, :website, :profile_background, :card_background, :email_messages_level, :mailing_list_mode, :homepage_id, :theme_ids, :user_fields) .to_h put("/u/#{username}", args) end |
#update_username(username, new_username) ⇒ Object
40 41 42 |
# File 'lib/discourse_api/api/users.rb', line 40 def update_username(username, new_username) put("/u/#{username}/preferences/username", new_username: new_username) end |
#user(username, params = {}) ⇒ Object
9 10 11 12 |
# File 'lib/discourse_api/api/users.rb', line 9 def user(username, params = {}) response = get("/users/#{username}.json", params) response[:body]['user'] end |
#user_sso(user_id) ⇒ Object
14 15 16 17 |
# File 'lib/discourse_api/api/users.rb', line 14 def user_sso(user_id) response = get("/admin/users/#{user_id}.json") response[:body]['single_sign_on_record'] end |