Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-02-20 17:37:37 +0300
committerDouwe Maan <douwe@gitlab.com>2015-02-20 17:37:37 +0300
commit218283b368161130f43333e75629870c9649b319 (patch)
treec266f2c98aa3b199569a482fc0a651c484dd486f /app/services/projects
parent4ef6ffaad3e9b7a29b438722e5e101de78521ec7 (diff)
parent65b125a5035cb021aeb81e168fd4ae1ad6c74c11 (diff)
Merge branch 'extend_markdown_upload' into generic-uploads
# Conflicts: # app/controllers/files_controller.rb # app/controllers/projects/uploads_controller.rb # app/uploaders/attachment_uploader.rb
Diffstat (limited to 'app/services/projects')
-rw-r--r--app/services/projects/image_service.rb39
-rw-r--r--app/services/projects/upload_service.rb23
2 files changed, 23 insertions, 39 deletions
diff --git a/app/services/projects/image_service.rb b/app/services/projects/image_service.rb
deleted file mode 100644
index 7ca7e82c4a3..00000000000
--- a/app/services/projects/image_service.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-module Projects
- class ImageService < BaseService
- include Rails.application.routes.url_helpers
- def initialize(repository, params, root_url)
- @repository, @params, @root_url = repository, params.dup, root_url
- end
-
- def execute
- uploader = FileUploader.new('uploads', upload_path, accepted_images)
- image = @params['markdown_img']
-
- if image && correct_mime_type?(image)
- alt = image.original_filename
- uploader.store!(image)
- link = {
- 'alt' => File.basename(alt, '.*'),
- 'url' => File.join(@root_url, uploader.url)
- }
- else
- link = nil
- end
- end
-
- protected
-
- def upload_path
- base_dir = FileUploader.generate_dir
- File.join(@repository.path_with_namespace, base_dir)
- end
-
- def accepted_images
- %w(png jpg jpeg gif)
- end
-
- def correct_mime_type?(image)
- accepted_images.map{ |format| image.content_type.include? format }.any?
- end
- end
-end
diff --git a/app/services/projects/upload_service.rb b/app/services/projects/upload_service.rb
new file mode 100644
index 00000000000..b2466b52ad9
--- /dev/null
+++ b/app/services/projects/upload_service.rb
@@ -0,0 +1,23 @@
+module Projects
+ class UploadService < BaseService
+ include Rails.application.routes.url_helpers
+ def initialize(project, file)
+ @project, @file = project, file
+ end
+
+ def execute
+ return nil unless @file
+
+ uploader = FileUploader.new(@project)
+ uploader.store!(@file)
+
+ filename = uploader.image? ? uploader.file.basename : uploader.file.filename
+
+ {
+ 'alt' => filename,
+ 'url' => project_upload_url(@project, secret: uploader.secret, filename: uploader.file.filename),
+ 'is_image' => uploader.image?
+ }
+ end
+ end
+end