summaryrefslogtreecommitdiff
path: root/app/services/upload_service.rb
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-05-04 10:47:10 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-05-04 10:47:10 +0000
commitba608dc0f2c2377f7ca2095a8bc4e5d44921b67f (patch)
treea5540d9278c738f216f2bdc2f4a290c2a5e75cf7 /app/services/upload_service.rb
parentef71bf6278759aafb1a480916cfafb9c9650eddc (diff)
parent43ff7386411af0f538710f3627622f71e5e34472 (diff)
downloadgitlab-ce-ba608dc0f2c2377f7ca2095a8bc4e5d44921b67f.tar.gz
Merge branch '12910-uploader-pers-snippet' into 'master'
Prepare uploaders for personal snippets comments See merge request !11022
Diffstat (limited to 'app/services/upload_service.rb')
-rw-r--r--app/services/upload_service.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/services/upload_service.rb b/app/services/upload_service.rb
new file mode 100644
index 00000000000..6c5b2baff41
--- /dev/null
+++ b/app/services/upload_service.rb
@@ -0,0 +1,20 @@
+class UploadService
+ def initialize(model, file, uploader_class = FileUploader)
+ @model, @file, @uploader_class = model, file, uploader_class
+ end
+
+ def execute
+ return nil unless @file && @file.size <= max_attachment_size
+
+ uploader = @uploader_class.new(@model)
+ uploader.store!(@file)
+
+ uploader.to_h
+ end
+
+ private
+
+ def max_attachment_size
+ current_application_settings.max_attachment_size.megabytes.to_i
+ end
+end