noflo = require 'noflo'

class EmbedlyToPage extends noflo.Component
  icon: 'filter'
  constructor: ->
    @inPorts =
      in: new noflo.Port 'array'
    @outPorts =
      out: new noflo.Port 'object'
      
    @inPorts.in.on 'begingroup', (group) =>
      @outPorts.out.beginGroup group
    @inPorts.in.on 'data', (data) =>
      @outPorts.out.send @convert data
    @inPorts.in.on 'endgroup', =>
      @outPorts.out.endGroup()
    @inPorts.in.on 'disconnect',  =>
      @outPorts.out.disconnect()

  convert: (data) ->
    page = {}
    page.items = data.map (item) ->
      return {
        id: item.url
        title: item.title
        html: item.content
      }
    page

exports.getComponent = -> new EmbedlyToPage