SocketIOClient = require 'socket.io-client';
cors = require 'cors'
try
  {Robot,Adapter,TextMessage,EnterMessage,User,Response} = require 'hubot'
catch
  prequire = require('parent-require')
  {Robot,Adapter,TextMessage,EnterMessage,User,Response} = prequire 'hubot'

cors = require 'cors'

express = require('express');
http = require('http')
socketio = require('socket.io');

# ---
# generated by js2coffee 2.2.0

class Sample extends Adapter

  constructor: ->
    super
    @robot.logger.info "Constructor"
    @app = express()
    @app.use cors() 
    @server = http.Server @app
    @websocket = socketio @server 
    @server.listen 8090, () -> console.log 'listening on *:3000'
    @socketid = 0
    @socket = undefined
    
    @websocket.on 'connection' , (socket) => 
      console.log 'A client just joined on', socket.id
      # @socketid = socket.id
      @socket = socket 
      socket.on 'channel-name', (mess) => 
        @socketid = mess[1]
        console.log "mensagem conection" ,mess
        user = new User 1001, name: 'Sample User'
        message = new TextMessage user, mess[0], 'MSG-001'
        @robot.receive message
        @msg = mess       
    
  send: (envelope, strings...) ->
    console.log "send", strings
    console.log "socket id", @socket
    @socket.emit 'channel-name', strings
    
  reply: (envelope, strings...) ->
    console.log "reply"
    @robot.logger.info "Reply"
    
  run: ->  
    @robot.logger.info "Run"
    @emit "connected"
 
exports.use = (robot) ->
  new Sample robot
