Class: Socialcast::CommandLine::CLI
- Inherits:
-
Thor
- Object
- Thor
- Socialcast::CommandLine::CLI
- Includes:
- Thor::Actions
- Defined in:
- lib/socialcast/command_line/cli.rb
Instance Method Summary collapse
- #authenticate ⇒ Object
- #authenticate_external_system ⇒ Object
- #info ⇒ Object
-
#initialize(*args) ⇒ CLI
constructor
A new instance of CLI.
- #provision ⇒ Object
- #share(message = nil) ⇒ Object
- #sync_photos ⇒ Object
Constructor Details
#initialize(*args) ⇒ CLI
Returns a new instance of CLI.
33 |
# File 'lib/socialcast/command_line/cli.rb', line 33 def initialize(*args); super; end |
Instance Method Details
#authenticate ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/socialcast/command_line/cli.rb', line 49 def authenticate user = [:user] || ask('Socialcast username: ') password = [:password] || HighLine.new.ask("Socialcast password: ") { |q| q.echo = false }.to_s params = { :email => user, :password => password } response = Socialcast::CommandLine::Authenticate.new(:user, , params).request communities = JSON.parse(response.body.to_s)['communities'] domain = communities.detect { |c| c['domain'] == [:domain] } ? [:domain] : communities.first['domain'] Socialcast::CommandLine.credentials = { :user => user, :password => password, :domain => domain } say "Authentication successful for #{domain}" end |
#authenticate_external_system ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/socialcast/command_line/cli.rb', line 71 def authenticate_external_system api_client_identifier = [:api_client_identifier] || ask("Socialcast external system identifier: ") api_client_secret = [:api_client_secret] || ask("Socialcast external system API secret: ") headers = { :headers => { :Authorization => "SocialcastApiClient #{api_client_identifier}:#{api_client_secret}" } } Socialcast::CommandLine::Authenticate.new(:external_system, , {}, headers).request Socialcast::CommandLine.credentials = { :api_client_identifier => api_client_identifier, :api_client_secret => api_client_secret, } end |
#info ⇒ Object
37 38 39 40 41 |
# File 'lib/socialcast/command_line/cli.rb', line 37 def info if ["version"] say "Socialcast Command Line #{Socialcast::CommandLine::VERSION}" end end |
#provision ⇒ Object
129 130 131 132 133 134 135 136 137 |
# File 'lib/socialcast/command_line/cli.rb', line 129 def provision config = ldap_config load_plugins Socialcast::CommandLine::ProvisionUser.new(config, ).provision rescue Socialcast::CommandLine::ProvisionUser::ProvisionError => e Kernel.abort e. end |
#share(message = nil) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/socialcast/command_line/cli.rb', line 94 def share( = nil) ||= $stdin.read_nonblock(100_000) rescue nil = [] [:attachments].each do |path| Dir[File.(path)].each do || say "Uploading attachment #{}..." uploader = Socialcast::CommandLine.resource_for_path '/api/attachments', {}, [:trace] uploader.post({:attachment => File.new()}, {:accept => :json}) do |response, request, result| if response.code == 201 << JSON.parse(response.body)['attachment']['id'] else say "Error uploading attachment: #{response.body}" end end end end ActiveResource::Base.logger = Logger.new(STDOUT) if [:trace] Socialcast::CommandLine::Message.configure_from_credentials Socialcast::CommandLine::Message.create :body => , :url => [:url], :message_type => [:message_type], :attachment_ids => , :group_id => [:group_id] say "Message has been shared" end |
#sync_photos ⇒ Object
142 143 144 145 146 |
# File 'lib/socialcast/command_line/cli.rb', line 142 def sync_photos config = ldap_config Socialcast::CommandLine::ProvisionPhoto.new(config, ).sync end |