Skip to content
Snippets Groups Projects
Commit 4c6799b9 authored by Matheus Agio Nerone's avatar Matheus Agio Nerone
Browse files

basic upload

parent 610106aa
No related branches found
No related tags found
No related merge requests found
...@@ -33,6 +33,7 @@ class LearningObjectsController < ApplicationController ...@@ -33,6 +33,7 @@ class LearningObjectsController < ApplicationController
collection_struct = Struct.new(:id) collection_struct = Struct.new(:id)
collection = collection_struct.new('4') collection = collection_struct.new('4')
repo = Dspace::Client.instance.repository.collection_repository repo = Dspace::Client.instance.repository.collection_repository
strategy = DSpaceRest::Strategies::Uploads::CurlStrategy.new(repo.rest_client.url,repo.rest_client.options[:headers][:rest_dspace_token])
args = {} args = {}
args['name'] = learning_object_params[:name] args['name'] = learning_object_params[:name]
...@@ -58,6 +59,12 @@ class LearningObjectsController < ApplicationController ...@@ -58,6 +59,12 @@ class LearningObjectsController < ApplicationController
learning_object_params[:subjects].each do |subject| learning_object_params[:subjects].each do |subject|
subjects << subject_repository.find_by_name(subject) subjects << subject_repository.find_by_name(subject)
end end
file = learning_object_params[:file]
learning_object_params[:file] = nil
repo = Dspace::Client.instance.repository.item_repository
bitstream_response = repo.create_bitstream_for(response, file.tempfile.path, strategy)
@learning_object = LearningObject.new(learning_object_params) @learning_object = LearningObject.new(learning_object_params)
@learning_object.id_dspace = response.id @learning_object.id_dspace = response.id
@learning_object.subjects = subjects @learning_object.subjects = subjects
...@@ -65,9 +72,12 @@ class LearningObjectsController < ApplicationController ...@@ -65,9 +72,12 @@ class LearningObjectsController < ApplicationController
@learning_object.last_modified = Time.now @learning_object.last_modified = Time.now
@learning_object.publisher = current_user @learning_object.publisher = current_user
@learning_object.metadata = lo.to_h[:metadata] @learning_object.metadata = lo.to_h[:metadata]
@learning_object.bitstreams = []
@learning_object.bitstreams << bitstream_response.as_json
respond_to do |format| respond_to do |format|
if learning_object_repository.create @learning_object if learning_object_repository.create @learning_object
learning_object_repository.create_relations(@learning_object) learning_object_repository.create_relations @learning_object
format.html { redirect_to me_users_path, notice: 'Learning object was successfully created.' } format.html { redirect_to me_users_path, notice: 'Learning object was successfully created.' }
else else
format.html { render :new } format.html { render :new }
......
...@@ -7,7 +7,7 @@ class LearningObject ...@@ -7,7 +7,7 @@ class LearningObject
:type, :grade_level, :bitstreams, :metadata, :likes, :views, :type, :grade_level, :bitstreams, :metadata, :likes, :views,
:downloads, :subjects, :attributes, :score, :publisher, :downloads, :subjects, :attributes, :score, :publisher,
:school_level, :language, :source, :license, :copyright, :school_level, :language, :source, :license, :copyright,
:country, :keywords :country, :keywords, :file
validates_presence_of :name, :created_at, :type, :likes, :views, :downloads validates_presence_of :name, :created_at, :type, :likes, :views, :downloads
validates_numericality_of :likes, greater_than_or_equal_to: 0 validates_numericality_of :likes, greater_than_or_equal_to: 0
......
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
<option value="<%= school_level %>"><%= school_level %></option> <option value="<%= school_level %>"><%= school_level %></option>
<% end %> <% end %>
</select> </select>
<%= f.file_field :file %>
<br> <br>
<br> <br>
<%= f.submit %> <%= f.submit %>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment