class Users
Public Class Methods
exit_on_failure?()
click to toggle source
# File lib/sacrifice/users.rb, line 9 def self.exit_on_failure?() true end
Public Instance Methods
change()
click to toggle source
# File lib/sacrifice/users.rb, line 80 def change user = App.find!(options[:app]).find_user(options[:user]) puts user if user success = user.change(options) if success puts 'Successfully changed user' else puts 'Failed to change user' end else raise Thor::Error, "Unknown user '#{options[:user]}'" end end
create()
click to toggle source
# File lib/sacrifice/users.rb, line 40 def create app = App.find!(options[:app]) attrs = options.select { |k, v| %w(name installed locale).include? k.to_s } user = app.create_user(attrs) if user puts "User ID: #{user.id}" puts "Access Token: #{user.access_token}" puts "Login URL: #{user.login_url}" puts "Email: #{user.email}" puts "Password: #{user.password}" end end
destroy()
click to toggle source
# File lib/sacrifice/users.rb, line 135 def destroy app = App.find!(options[:app]) while (users = app.users).size > 0 users.each { |user| user.destroy puts "remove user ##{user.id}" } end end
erase()
click to toggle source
# File lib/sacrifice/users.rb, line 158 def erase Csv.erase options[:app], options[:file] end
friend()
click to toggle source
# File lib/sacrifice/users.rb, line 58 def friend users = App.find!(options[:app]).users friends = [] [options[:user1], options[:user2]].each { |user| friends.push (users.find { |u| u.id.to_s == user } or raise Thor::Error, "No user found w/id #{user.inspect}") } # The first request is just a request, the second request accepts the first request. friends.each_index { |idx| friends[idx].send_friend_request_to(friends[(idx + 1) % 2]) } end
friends()
click to toggle source
# File lib/sacrifice/users.rb, line 168 def friends app = App.find!(options[:app]) user = app.find_user(options[:user]) Csv.friends user, Csv.ids(app, options[:friends]) end
generate()
click to toggle source
# File lib/sacrifice/users.rb, line 150 def generate Csv.generate options[:app], options[:file], options[:friends] end
list()
click to toggle source
# File lib/sacrifice/users.rb, line 16 def list app = App.find!(options[:app]) if app.users.any? shell.print_table([ ['User ID', 'Access Token', 'Login URL'], *(app.users.map do |user| [user.id, user.access_token, user.login_url] end) ]) else puts "App #{app.name} has no users." end end
rm()
click to toggle source
# File lib/sacrifice/users.rb, line 101 def rm user = App.find!(options[:app]).find_user(options[:user]) if user result = user.destroy if result puts "User ID #{user.id} removed" else if @message.match /(\(#2903\) Cannot delete this test account because it is associated with other applications.)/ error = <<-EOMSG.unindent.gsub(/^\|/, '') #$1 Run: | sacrifice users list-apps --app #{options[:app]} --user #{user.id} | then for each of the other apps, run: | sacrifice apps rm-user --app APP-NAME --user #{user.id} | Then re-run this command. EOMSG else error = @message end raise Thor::Error, error end else raise Thor::Error, "Unknown user '#{options[:user]}'" end end