Skip to content

Commit

Permalink
Merge pull request #23 from viveksyngh/master
Browse files Browse the repository at this point in the history
Update adapter to use latest webex package
  • Loading branch information
tonybaloney committed Feb 7, 2020
2 parents bff0d30 + 54a6a70 commit c440504
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 21 deletions.
12 changes: 5 additions & 7 deletions package.json
Expand Up @@ -6,19 +6,17 @@
"github hubot cisco spark adapter"
],
"description": "A Cisco Spark adapter for hubot",
"licenses": [
{
"type": "Apache-2.0",
"url": "http://github.com/tonybaloney/hubot-spark/raw/master/LICENSE"
}
],
"licenses": [{
"type": "Apache-2.0",
"url": "http://github.com/tonybaloney/hubot-spark/raw/master/LICENSE"
}],
"license": "Apache-2.0",
"repository": {
"type": "git",
"url": "git://github.com/tonybaloney/hubot-spark.git"
},
"dependencies": {
"ciscospark": "^0.7.93",
"webex": "^1.80.85",
"hubot": ">=2.3.0",
"request": "2.9.3",
"bluebird": "^3.5.0"
Expand Down
23 changes: 18 additions & 5 deletions src/spark-api.coffee
@@ -1,4 +1,6 @@
spark = undefined

Webex = require('webex')
webex = undefined

class SparkApi
person = undefined
Expand All @@ -9,10 +11,15 @@ class SparkApi

process.env['CISCOSPARK_ACCESS_TOKEN'] = @token
process.env['HYDRA_SERVICE_URL'] = @uri
spark = require('ciscospark')
webex = Webex.init({
credentials: {
access_token: @token
}
})


init: () ->
spark.people.get({id: 'me'}).then((response) ->
webex.people.get('me').then((response) ->
person = response
)

Expand All @@ -26,11 +33,17 @@ class SparkApi
if @isBot()
options.mentionedPeople = 'me'
options.max = 100
spark.messages.list(options).then((messages) ->
webex.messages.list(options).then((messages) ->
messages.items
)

sendMessage: (options) ->
spark.messages.create(options)
webex.messages.create(options)

getRooms: (options) ->
webex.rooms.list(options).then((rooms) ->
rooms.items
)


module.exports = SparkApi
27 changes: 18 additions & 9 deletions src/spark.coffee
Expand Up @@ -26,7 +26,7 @@ class SparkAdapter extends Adapter
super

send: (envelope, strings...) ->
user = if envelope.user then envelope.user else envelope
user = if envelope.user then envelope.user else envelope.room
strings.forEach (str) =>
@prepare_string str, (message) =>
@bot.send user, message
Expand Down Expand Up @@ -62,8 +62,9 @@ class SparkAdapter extends Adapter
user =
name: message.personEmail
id: message.personId
room: message.roomId
roomId: message.roomId
self.robot.logger.debug "Received #{text} from #{user.name}"
# self.robot.send user, text
self.robot.receive new TextMessage user, text
)
self.robot.logger.debug "Done with custom bot logic"
Expand All @@ -89,6 +90,7 @@ class SparkRealtime extends EventEmitter
spark = new SparkApi
uri: options.api_uri
token: options.access_token

return spark.init().then(() ->
logger.debug "Connected as a bot? #{spark.isBot()}"
logger.info "Created connection instance to Spark"
Expand All @@ -103,21 +105,28 @@ class SparkRealtime extends EventEmitter

## Spark API call methods
listen: (roomId, date, callback) ->
spark.getMessages(roomId: roomId).then (msges) =>
newDate = new Date().toISOString()
spark.getMessages(roomId: roomId).then((msges) =>
@robot.logger.debug "Messages recived: ", msges.length
msges.forEach((msg) =>
if Date.parse(msg.created) > Date.parse(date)
@robot.logger.debug "Matched new message #{msg.text}"
@robot.logger.debug "Message Object: ", msg
callback [msg], roomId
)
newDate = new Date().toISOString()
setTimeout (=>
@listen roomId, newDate, callback
), @refresh
).catch((err) =>
@robot.logger.debug "There was an error while getting messages for roomId #{roomId}"
newDate = date
)
setTimeout (=>
@listen roomId, newDate, callback
), @refresh

send: (user, message) ->
@robot.logger.debug "Send message to room #{user.room} with text #{message}"
@robot.logger.debug user
@robot.logger.debug "Send message to room #{user.roomId} with text #{message}"
spark.sendMessage
roomId: user.room
roomId: user.roomId
text: message

reply: (user, message) ->
Expand Down

0 comments on commit c440504

Please sign in to comment.