factor/extra/webapps/mason/mason.factor

42 lines
1.2 KiB
Factor

! Copyright (C) 2009, 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors furnace.auth furnace.db
http.server.dispatchers mason.server webapps.mason.grids
webapps.mason.make-release webapps.mason.package
webapps.mason.release webapps.mason.report
webapps.mason.downloads webapps.mason.status-update ;
IN: webapps.mason
TUPLE: mason-app < dispatcher ;
SYMBOL: can-make-releases?
can-make-releases? define-capability
: <mason-app> ( -- dispatcher )
mason-app new-dispatcher
<build-report-action>
"report" add-responder
<download-package-action>
{ mason-app "download-package" } >>template
"package" add-responder
<download-release-action>
{ mason-app "download-release" } >>template
"release" add-responder
<downloads-action>
{ mason-app "downloads" } >>template
"downloads" add-responder
<make-release-action>
{ mason-app "make-release" } >>template
<protected>
"make releases" >>description
{ can-make-releases? } >>capabilities
"make-release" add-responder
<status-update-action>
"status-update" add-responder ;