mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-09-23 06:39:18 +00:00
Added a set_dav_property function.
This commit is contained in:
parent
62d33aef5f
commit
798e016f3e
@ -291,3 +291,26 @@ END;
|
|||||||
CREATE or REPLACE FUNCTION to_ical_utc( TIMESTAMP WITH TIME ZONE ) RETURNS TEXT AS '
|
CREATE or REPLACE FUNCTION to_ical_utc( TIMESTAMP WITH TIME ZONE ) RETURNS TEXT AS '
|
||||||
SELECT to_char( $1 at time zone ''UTC'', ''YYYYMMDD"T"HH24MISS"Z"'' )
|
SELECT to_char( $1 at time zone ''UTC'', ''YYYYMMDD"T"HH24MISS"Z"'' )
|
||||||
' LANGUAGE 'sql' IMMUTABLE STRICT;
|
' LANGUAGE 'sql' IMMUTABLE STRICT;
|
||||||
|
|
||||||
|
-- Function to set an arbitrary DAV property
|
||||||
|
CREATE or REPLACE FUNCTION set_dav_property( TEXT, INTEGER, TEXT, TEXT ) RETURNS BOOLEAN AS '
|
||||||
|
DECLARE
|
||||||
|
path ALIAS FOR $1;
|
||||||
|
user ALIAS FOR $2;
|
||||||
|
key ALIAS FOR $3;
|
||||||
|
value ALIAS FOR $4;
|
||||||
|
tmp_int INT;
|
||||||
|
BEGIN
|
||||||
|
-- Check that there is either a resource, collection or user at this location.
|
||||||
|
IF NOT EXISTS( SELECT 1 FROM caldav_data WHERE dav_name = path UNION SELECT 1 FROM collection WHERE dav_name = path ) THEN
|
||||||
|
RETURN FALSE;
|
||||||
|
END IF;
|
||||||
|
SELECT changed_by INTO tmp_int FROM property WHERE dav_name = path AND property_name = key;
|
||||||
|
IF FOUND THEN
|
||||||
|
UPDATE property SET changed_by=user, changed_on=current_timestamp, property_value=value WHERE dav_name = path AND property_name = key;
|
||||||
|
ELSE
|
||||||
|
INSERT INTO property ( dav_name, changed_by, changed_on, property_name, property_value ) VALUES( path, user, current_timestamp, key, value );
|
||||||
|
END IF;
|
||||||
|
RETURN TRUE;
|
||||||
|
END;
|
||||||
|
' LANGUAGE 'plpgsql' STRICT;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user