Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
c8e9b6ed8685
Unverified
Commit
ed880e49
authored
Dec 15, 2016
by
Kamil Trzcinski
Browse files
Rename ChatService into ChatSlashCommandsService
parent
4637bfd66d78
Changes
4
Hide whitespace changes
Inline
Side-by-side
app/models/project.rb
View file @
c8e9b6ed
...
...
@@ -79,7 +79,6 @@ def update_forks_visibility_level
has_one
:last_event
,
->
{
order
'events.created_at DESC'
},
class_name:
'Event'
has_many
:boards
,
before_add: :validate_board_limit
,
dependent: :destroy
has_many
:chat_services
# Project services
has_one
:campfire_service
,
dependent: :destroy
...
...
app/models/project_services/chat_service.rb
→
app/models/project_services/chat_
slash_commands_
service.rb
View file @
c8e9b6ed
# Base class for Chat services
# This class is not meant to be used directly, but only to inherit from.
class
ChatService
<
Service
# This class is not meant to be used directly, but only to inher
r
it from.
class
ChatS
lashCommandsS
ervice
<
Service
default_value_for
:category
,
'chat'
prop_accessor
:token
has_many
:chat_names
,
foreign_key: :service_id
def
valid_token?
(
token
)
...
...
@@ -15,7 +17,39 @@ def supported_events
[]
end
def
can_test?
false
end
def
fields
[
{
type:
'text'
,
name:
'token'
,
placeholder:
''
}
]
end
def
trigger
(
params
)
raise
NotImplementedError
return
nil
unless
valid_token?
(
params
[
:token
])
user
=
find_chat_user
(
params
)
unless
user
url
=
authorize_chat_name_url
(
params
)
return
presenter
.
authorize_chat_name
(
url
)
end
Gitlab
::
ChatCommands
::
Command
.
new
(
presenter
,
project
,
user
,
params
).
execute
end
private
def
find_chat_user
(
params
)
ChatNames
::
FindUserService
.
new
(
self
,
params
).
execute
end
def
authorize_chat_name_url
(
params
)
ChatNames
::
AuthorizeUserService
.
new
(
self
,
params
).
execute
end
def
presenter
throw
NotImplementedError
end
end
app/models/project_services/mattermost_slash_commands_service.rb
View file @
c8e9b6ed
...
...
@@ -19,31 +19,7 @@ def to_param
'mattermost_slash_commands'
end
def
fields
[
{
type:
'text'
,
name:
'token'
,
placeholder:
''
}
]
end
def
trigger
(
params
)
return
nil
unless
valid_token?
(
params
[
:token
])
user
=
find_chat_user
(
params
)
unless
user
url
=
authorize_chat_name_url
(
params
)
return
Mattermost
::
Presenter
.
authorize_chat_name
(
url
)
end
Gitlab
::
ChatCommands
::
Command
.
new
(
project
,
user
,
params
).
execute
end
private
def
find_chat_user
(
params
)
ChatNames
::
FindUserService
.
new
(
self
,
params
).
execute
end
def
authorize_chat_name_url
(
params
)
ChatNames
::
AuthorizeUserService
.
new
(
self
,
params
).
execute
def
presenter
Gitlab
::
ChatCommands
::
Presenters
::
Mattermost
.
new
end
end
app/models/project_services/slack_slash_commands_service.rb
View file @
c8e9b6ed
class
SlackSlashCommandsService
<
ChatService
class
SlackSlashCommandsService
<
ChatS
lashCommandsS
ervice
include
TriggersHelper
prop_accessor
:token
def
can_test?
false
end
def
title
'Slack Slash Command'
end
...
...
@@ -19,31 +13,7 @@ def to_param
'slack_slash_commands'
end
def
fields
[
{
type:
'text'
,
name:
'token'
,
placeholder:
''
}
]
end
def
trigger
(
params
)
return
nil
unless
valid_token?
(
params
[
:token
])
user
=
find_chat_user
(
params
)
unless
user
url
=
authorize_chat_name_url
(
params
)
return
Gitlab
::
ChatCommands
::
Presenters
::
Access
.
new
(
url
).
authorize
end
Gitlab
::
ChatCommands
::
Command
.
new
(
project
,
user
,
params
).
execute
end
private
def
find_chat_user
(
params
)
ChatNames
::
FindUserService
.
new
(
self
,
params
).
execute
end
def
authorize_chat_name_url
(
params
)
ChatNames
::
AuthorizeUserService
.
new
(
self
,
params
).
execute
def
presenter
Gitlab
::
ChatCommands
::
Presenters
::
Mattermost
.
new
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment