Skip to content
Snippets Groups Projects
learning_objects_controller.rb 2.31 KiB
Newer Older
class LearningObjectsController < ApplicationController
  before_action :set_learning_object, only: [:show, :edit, :update, :destroy]
  after_action :register_view, only: [:show]

  # GET /learning_objects
  # GET /learning_objects.json
    @learning_objects = learning_object_repository.all
  # GET /learning_objects/1
  # GET /learning_objects/1.json
    unless @learning_object.nil?
      @like_counts = repository.for(:edge).get_in_edges_count "Likes", @learning_object.id
      @view_counts = repository.for(:edge).get_in_edges_count "Views", @learning_object.id
  # GET /learning_objects/new
    @learning_object = LearningObject.new
  # GET /learning_objects/1/edit
  def edit
  # POST /learning_objects
  # POST /learning_objects.json
  def create
    @learning_object = LearningObject.new(learning_object_params)
      if learning_object_repository.save @learning_object
        format.html { redirect_to @learning_object, notice: 'Learning object was successfully created.' }
      else
        format.html { render :new }
      end
    end
  # PATCH/PUT /learning_objects/1
  # PATCH/PUT /learning_objects/1.json
      if learning_object_repository.update(learning_object_params)
        format.html { redirect_to @learning_object, notice: 'Learning object was successfully updated.' }
      else
        format.html { render :edit }
      end
    end
  # DELETE /learning_objects/1
  # DELETE /learning_objects/1.json
    learning_object_repository.destroy @learning_object

    respond_to do |format|
      format.html { redirect_to learning_objects_url, notice: 'Learning object was successfully destroyed.' }
    end

  def learning_object_repository
      repository.for(:learning_object)
  end

    # Use callbacks to share common setup or constraints between actions.
    def set_learning_object
      @learning_object = learning_object_repository.get_by_dspaceid params[:id]
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def learning_object_params
      params[:learning_object]
    end

    def register_view
      repository.for(:edge).create_edge('Views', '#14:0', @learning_object.first["@rid"])
    end