diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-02-20 15:37:37 +0100 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-02-20 15:37:37 +0100 |
commit | 218283b368161130f43333e75629870c9649b319 (patch) | |
tree | c266f2c98aa3b199569a482fc0a651c484dd486f /app/services/projects | |
parent | 4ef6ffaad3e9b7a29b438722e5e101de78521ec7 (diff) | |
parent | 65b125a5035cb021aeb81e168fd4ae1ad6c74c11 (diff) | |
download | gitlab-ce-218283b368161130f43333e75629870c9649b319.tar.gz |
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.rb | 39 | ||||
-rw-r--r-- | app/services/projects/upload_service.rb | 23 |
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 |