Skip to content

Commit

Permalink
Minor refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
danidoni committed Feb 7, 2023
1 parent 19c3095 commit 8df92d5
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions src/api/app/services/trigger_controller_service/scm_extractor.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
module TriggerControllerService
# NOTE: this class is coupled to GitHub pull requests events and GitLab merge requests events.
class SCMExtractor
SCM_EXTRACTORS = {
'github' => GithubPayloadExtractor,
'gitlab' => GitlabPayloadExtractor,
'gitea' => GiteaPayloadExtractor
}.freeze

def initialize(scm, event, payload)
# TODO: What should we do when the user sends a wwwurlencoded payload? Raise an exception?
@payload = payload.deep_symbolize_keys
Expand All @@ -10,14 +16,10 @@ def initialize(scm, event, payload)

# TODO: What happens when some of the keys are missing?
def call
case @scm
when 'github'
SCMWebhook.new(payload: GithubPayloadExtractor.new(@event, @payload).payload)
when 'gitlab'
SCMWebhook.new(payload: GitlabPayloadExtractor.new(@event, @payload).payload)
when 'gitea'
SCMWebhook.new(payload: GiteaPayloadExtractor.new(@event, @payload).payload)
end
extractor = SCM_EXTRACTORS[@scm]
return unless extractor

SCMWebhook.new(payload: extractor.new(@event, @payload).payload)
end
end
end

0 comments on commit 8df92d5

Please sign in to comment.