bcom/sql/postMessage.sql

47 lines
860 B
SQL

DROP PROCEDURE IF EXISTS PostMessage;
DELIMITER //
CREATE PROCEDURE PostMessage
(
IN p_sid INT,
IN p_password TEXT,
IN p_did INT,
IN p_text TEXT,
OUT outputCode INT,
OUT mid INT
)
MODIFIES SQL DATA
BEGIN
CALL `CheckIdLogin`(p_sid,p_password, outputCode);
IF outputCode = 42 THEN
SET outputCode :=(
SELECT
(
CASE
WHEN(
SELECT
COUNT(*)
FROM
discussions
WHERE
ID = p_did
) = 1 THEN 2010
ELSE 42
END
)
);
IF outputCode = 42 THEN
SET @authorizedGroupID :=(SELECT authorizedGroupID FROM discussions WHERE ID=p_did);
CALL `CheckInGroup`(p_sid, @authorizedGroupID, outputCode);
IF outputCode = 42 THEN
INSERT INTO messages(texte,senderID,sendTime,discussionID) VALUES (p_text,p_sid,NOW(),p_did);
SET mid :=(SELECT LAST_INSERT_ID());
END IF;
END IF;
END IF;
END//
DELIMITER ;