- Publicity: Public Only All
oacs-dav-install-procs.tcl
Setup procs to run at package install, should be run only once.
- Location:
- packages/oacs-dav/tcl/oacs-dav-install-procs.tcl
- Created:
- 2003-09-11
- Author:
- Dave Bauer <dave@thedesignexperience.org>
- CVS Identification:
$Id: oacs-dav-install-procs.tcl,v 1.4.2.1 2024/07/15 12:04:49 gustafn Exp $
Procedures in this file
Detailed information
[ hide source ] | [ make this the default ]Content File Source
# ad_library { Setup procs to run at package install, should be run only once. @author Dave Bauer (dave@thedesignexperience.org) @creation-date 2003-09-11 @cvs-id $Id: oacs-dav-install-procs.tcl,v 1.4.2.1 2024/07/15 12:04:49 gustafn Exp $ } namespace eval oacs_dav::install {} ad_proc -private oacs_dav::install::package_install {} { setup DAV service contracts } { db_transaction { create_service_contracts register_implementation } } ad_proc -private oacs_dav::install::package_uninstall {} { clean up for package uninstall } { db_transaction { delete_service_contracts unregister_implementation } } # this is far from complete or even known to be going in the # right direction # somehow we need to get identification information from the # user and send back status of permission allowed or denied # look at the DAV spec to get an idea of what inputs and # outputs these methods have d_proc -private oacs_dav::install::create_service_contracts { } { create service contract for DAV methods } { oacs_dav::install::create_dav_sc oacs_dav::install::create_dav_put_type_sc oacs_dav::install::create_dav_mkcol_type_sc } d_proc -private oacs_dav::install::create_dav_sc { } { create dav service contract spec } { set contract_name "dav" set dav_spec { description "implements DAV methods" operations { get { description "DAV GET Method" output { content:string } } put { description "DAV PUT Method" output { response:string } } propfind { description "DAV PROPFIND Method" output { response:string } } delete { description "DAV DELETE Method" output { response:string } } mkcol { description "DAV MKCOL Method" output { response:string } } copy { description "DAV Copy Method" output { response:string } } move { description "DAV Move Method" output { response:string } } proppatch { description "DAV PROPATCH Method" output { response:string } } lock { description "DAV LOCK Method" output { response:string } } unlock { description "DAV UNLOCK Method" output { response:string } } head { description "DAV HEAD Method" output { response:string } } } } acs_sc::contract::new_from_spec \ -spec [concat [list name $contract_name] $dav_spec ] } d_proc -private oacs_dav::install::create_dav_put_type_sc { } { create dav_put_type service contract } { set contract_name "dav_put_type" set dav_spec { description "returns content type to use for PUT operation" operations { get_type { description "DAV PUT Content Type" output { content_type:string } } } } acs_sc::contract::new_from_spec \ -spec [concat [list name $contract_name] $dav_spec ] } d_proc -private oacs_dav::install::create_dav_mkcol_type_sc { } { create dav_mkcol_type service contract } { set contract_name "dav_mkcol_type" set spec { description "returns content type to use for MKCOL operation" operations { get_type { description "DAV MKCOL Content Type" output { content_type:string } } } } acs_sc::contract::new_from_spec \ -spec [concat [list name $contract_name] $spec ] } d_proc -private oacs_dav::install::delete_service_contracts { } { remove service contracts on uninstall } { acs_sc::contract::delete -name dav acs_sc::contract::delete -name dav_put_type acs_sc::contract::delete -name dav_mkcol_type } d_proc -private oacs_dav::install::register_implementation { } { add default content repository service contract implementation } { set spec { name "content_revision" aliases { get oacs_dav::impl::content_revision::get head oacs_dav::impl::content_revision::head put oacs_dav::impl::content_revision::put propfind oacs_dav::impl::content_revision::propfind delete oacs_dav::impl::content_revision::delete mkcol oacs_dav::impl::content_revision::mkcol proppatch oacs_dav::impl::content_revision::proppatch copy oacs_dav::impl::content_revision::copy move oacs_dav::impl::content_revision::move lock oacs_dav::impl::content_revision::lock unlock oacs_dav::impl::content_revision::unlock } contract_name {dav} owner [oacs_dav::package_key] } acs_sc::impl::new_from_spec -spec $spec set spec { name "content_folder" aliases { get oacs_dav::impl::content_folder::get head oacs_dav::impl::content_revision::head put oacs_dav::impl::content_folder::put propfind oacs_dav::impl::content_folder::propfind delete oacs_dav::impl::content_folder::delete mkcol oacs_dav::impl::content_folder::mkcol proppatch oacs_dav::impl::content_folder::proppatch copy oacs_dav::impl::content_folder::copy move oacs_dav::impl::content_folder::move lock oacs_dav::impl::content_folder::lock unlock oacs_dav::impl::content_folder::unlock } contract_name {dav} owner [oacs_dav::package_key] } acs_sc::impl::new_from_spec -spec $spec } d_proc -private oacs_dav::install::unregister_implementation { } { remove default service contract implementation } { acs_sc::impl::delete -contract_name dav -impl_name content_folder acs_sc::impl::delete -contract_name dav -impl_name content_revision } d_proc -private oacs_dav::install::upgrade { -from_version_name -to_version_name } { Install new DAV service contracts } { apm_upgrade_logic \ -from_version_name $from_version_name \ -to_version_name $to_version_name \ -spec { 1.0b1 1.0b2 { oacs_dav::install::create_dav_mkcol_type_sc } } } # Local variables: # mode: tcl # tcl-indent-level: 4 # indent-tabs-mode: nil # End: