<p:pipeline name="main" type="px:mojo-sms"
	    xmlns:p="http://www.w3.org/ns/xproc"
	    xmlns:c="http://www.w3.org/ns/xproc-step"
	    xmlns:px="http://xproc.org/ns/xproc/ex">
  <p:option name="secret"   required="yes"/>
  <p:option name="to"       required="yes"/>
  <p:option name="text"     required="yes"/>
  <p:option name="username" required="yes"/>
  <p:output port="result"/>

  <px:uuid name="uuid"/>

  <p:group>
    <p:output port="result"/>

    <p:option name="_gadgetkey" value="55c3c57605f377bb3232eb55b04d56f50e897e3b"/>
    <p:option name="_name" select=".">
      <p:pipe step="uuid" port="result"/>
    </p:option>

    <p:group>
      <p:output port="result"/>

      <px:sha1 name="hash">
	<p:option name="value"
		  select="concat($username,':',$_gadgetkey,':',$_name,':',$secret)"/>
      </px:sha1>

      <p:group>
	<p:output port="result"/>

	<p:option name="_digest" select=".">
	  <p:pipe step="hash" port="result"/>
	</p:option>

	<px:form-url-encode name="body">
	  <p:parameter name="name" select="$_name"/>
	  <p:parameter name="recipient" select="$to"/>
	  <p:parameter name="text" select="$text"/>
	  <p:parameter name="gadgetkey" select="$_gadgetkey"/>
	  <p:parameter name="username" select="$username"/>
	  <p:parameter name="digest" select="$_digest"/>
	</px:form-url-encode>

	<p:replace name="repl" match="c:body">
	  <p:input port="source">
	    <p:inline>
	      <c:http-request method="post"
			      href="http://mojo.treeho.us/messages"
			      detailed="false">
		<c:body/>
	      </c:http-request>
	    </p:inline>
	  </p:input>
	</p:replace>

	<p:http-request/>
      </p:group>
    </p:group>
  </p:group>
</p:pipeline>
