Index: openacs-4/packages/forums/sql/postgresql/forums-notifications-sanitize.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/forums/sql/postgresql/Attic/forums-notifications-sanitize.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/forums/sql/postgresql/forums-notifications-sanitize.sql 12 Jun 2002 15:24:02 -0000 1.1 +++ openacs-4/packages/forums/sql/postgresql/forums-notifications-sanitize.sql 10 Jul 2002 18:31:26 -0000 1.2 @@ -25,3 +25,112 @@ select inline_0(); drop function inline_0 (); + +-- +-- Service contract drop stuff was missing - Roberto Mello +-- + +create function inline_0() returns integer as ' +declare + impl_id integer; + v_foo integer; +begin + + -- the notification type impl + impl_id := acs_sc_impl__get_id ( + ''NotificationType'', -- impl_contract_name + ''forums_forum_notif_type'' -- impl_name + ); + + PERFORM acs_sc_binding__delete ( + ''NotificationType'', + ''forums_forum_notif_type'' + ); + + v_foo := acs_sc_impl_alias__delete ( + ''NotificationType'', -- impl_contract_name + ''forums_forum_notif_type'', -- impl_name + ''GetURL'' -- impl_operation_name + ); + + v_foo := acs_sc_impl_alias__delete ( + ''NotificationType'', -- impl_contract_name + ''forums_forum_notif_type'', -- impl_name + ''ProcessReply'' -- impl_operation_name + ); + + select into v_foo type_id + from notification_types + where sc_impl_id = impl_id + and short_name = ''forums_forum_notif''; + + perform notification_type__delete (v_foo); + + delete from notification_types_intervals + where type_id = v_foo + and interval_id in ( + select interval_id + from notification_intervals + where name in (''instant'',''hourly'',''daily'') + ); + + delete from notification_types_del_methods + where type_id = v_foo + and delivery_method_id in ( + select delivery_method_id + from notification_delivery_methods + where short_name in (''email'') + ); + + -- the notification type impl + impl_id := acs_sc_impl__get_id ( + ''NotificationType'', + ''forums_message_notif_type'' + ); + + PERFORM acs_sc_binding__delete ( + ''NotificationType'', + ''forums_message_notif_type'' + ); + + v_foo := acs_sc_impl_alias__delete ( + ''NotificationType'', + ''forums_message_notif_type'', + ''GetURL'' + ); + + v_foo := acs_sc_impl_alias__delete ( + ''NotificationType'', + ''forums_message_notif_type'', + ''ProcessReply'' + ); + + select into v_foo type_id + from notification_types + where sc_impl_id = impl_id + and short_name = ''forums_message_notif''; + + perform notification_type__delete (v_foo); + + delete from notification_types_intervals + where type_id = v_foo + and interval_id in ( + select interval_id + from notification_intervals + where name in (''instant'',''hourly'',''daily'') + ); + + delete from notification_types_del_methods + where type_id = v_foo + and delivery_method_id in ( + select delivery_method_id + from notification_delivery_methods + where short_name in (''email'') + ); + + return (0); +end; +' language 'plpgsql'; + +select inline_0(); +drop function inline_0();