Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Create PROCEDURE [dbo].[msg_afterSendMessage]
- @messageID int,
- @username nvarchar(128)
- as
- begin
- -- процедура, которая выполняется после отправки каждого сообщения
- -- SELECT 1 - Настройки для пуш уведомлений
- select '' linkUrl, 'Перейти' linkTitle, 0 DisablePush
- from as_msg_messages where id = @messageID
- -- SELECT 2 Вызов внешних действий
- -- ... email, notifiocation, sms, clearcache,
- end
- go
- create PROCEDURE [dbo].[msg_getAvailableUsersForRoom]
- @roomID int,
- @username nvarchar(128)
- as
- begin
- -- процедура для извлечения возможных пользователей для добавления
- -- SELECT 1 Result, Msg
- select 1 Result, '' Msg
- -- SELECT 2 users
- select
- iif(isnull(u.fio, '')='', username, u.fio) name,
- u.username username
- from as_users u
- where id not in (select userID from as_msg_roomUsers where roomID= @roomID)
- end
- go
- create PROCEDURE [dbo].[msg_getUsersForNewChat]
- @username nvarchar(128)
- as
- begin
- select 1 Result, '' Msg
- declare @isClient bit = dbo.sec_isUserInRole(@username, 'client')
- if(@isClient=1) begin
- return
- end
- select
- iif(isnull(u.fio, '')='', username, u.fio) name,
- u.username username
- from as_users u
- where username <> @username
- end
- go
- Create FUNCTION [dbo].[msg_getUsersForNewChat]
- (
- @type nvarchar(128),
- @itemID int,
- @username nvarchar(128)
- )
- RETURNS bit -- функция определяет - может ли создать комнату данного типа для itemID этот пользователь.
- AS
- BEGIN
- DECLARE @res bit = 1
- declare @isClient bit = dbo.sec_isUserInRole(@username, 'client')
- if(@isClient=1) set @res = 0
- return @res
- END
- go
- CREATE FUNCTION [dbo].[msg_getRoomItemName]
- (
- @roomID int,
- @type nvarchar(128),
- @itemID int,
- @userID int
- )
- RETURNS nvarchar(512) -- функция определяет - может ли создать комнату данного типа для itemID этот пользователь.
- AS
- BEGIN
- DECLARE @res nvarchar(512) = 'no name room'
- if(@type='userchat') begin
- set @res = isnull((SELECT STUFF(
- (
- SELECT ', ' + iif(isnull(u.fio, '') ='', u.username, u.fio )
- FROM as_msg_roomUsers ru inner join as_users u on u.id=ru.userID
- where ru.roomID = @roomID
- and ru.userID!=@userID
- FOR XML PATH(''), TYPE
- ).value('.','varchar(max)')
- ,1,2, ''
- )), '--')
- end
- -- ... custom types
- return @res
- END
- go
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement