* Rubocop enabled style/alias * Enabled Style/ArrayJoin Cop * Enabled Style/Attr * Enabled Case Equality * Enabled CharacterLiteral * Enabled ColonMethodCall Cop * Enabled CommentAnnotation cop * Enabled PreferredHashMethods Cop * Enabled DoubleNegation Cop * Enabled EachWithObject Cop * Enabled EmptyLiteral Cop * Enabled EvenOdd Cop * Enabled IfWithSemicolon Cop * Enabled Lambda and LambdaCall Cop * Enabled LineEndConcatenation Cop * Enabled ModuleFunction Cop; * Enable NegatedIf and NegatedWhile Cop * Enabled NilComparison Cop * Enabled Not Cop * Enabled NumericLiterals Cop * Enabled OneLineConditional Cop * Enabled PercentLiteralDelimiters Cop * Excluded internal/users_controller from negated_if cop * Reverted the double negation change from github_issue_tag and github_issue.rb" * Enabled PerlBackrefs Cop * Changed Regexp.last_match(1) to Regexp.last_match(0) * Enabled proc cop * Enabled RaiseArgs Cop * Reverted Regexp.last_match(0) to Regexp.last_match(1) * Enabled SelfAssignment Cop * Enabled SingleLineMethods Cop * Enabled SpecialGlobalVars Cop * Enabled VariableInterpolation Cop * Enabled WhenThen Cop * Enabled WhileUntilModifier Cop * Enabled WordArray Cop * Enabled IfUnlessModifier Cop * Enabled GuardClause Cop
30 lines
1.1 KiB
Ruby
30 lines
1.1 KiB
Ruby
class VideoStatesController < ApplicationController
|
|
skip_before_action :verify_authenticity_token
|
|
# Not authorized using pundit because user this is not accessed via user session
|
|
# This is purely for responding to AWS video state changes.
|
|
|
|
def create
|
|
unless valid_user
|
|
render json: { message: "invalid_user" }, status: 422
|
|
return
|
|
end
|
|
begin
|
|
logger.info "VIDEO STATES: #{params}"
|
|
request_json = JSON.parse(request.raw_post, symbolize_names: true)
|
|
logger.info "VIDEO STATES: #{request_json}"
|
|
rescue StandardError
|
|
end
|
|
request_json = JSON.parse(request.raw_post, symbolize_names: true)
|
|
message_json = JSON.parse(request_json[:Message], symbolize_names: true)
|
|
@article = Article.find_by_video_code(message_json[:input][:key])
|
|
@article.update(video_state: "COMPLETED") # Only is called on completion
|
|
NotifyMailer.video_upload_complete_email(@article).deliver
|
|
render json: { message: "Video state updated" }
|
|
end
|
|
|
|
def valid_user
|
|
user = User.find_by_secret(params[:key])
|
|
user = nil unless user.has_role?(:super_admin)
|
|
user
|
|
end
|
|
end
|