# Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/

class RecentViewController < ApplicationController
  prepend_before_action :authentication_check

=begin

Resource:
GET /api/v1/recent_viewed

Response:
{
  ...
}

Test:
curl http://localhost/api/v1/recent_view -v -u #{login}:#{password} -H "Content-Type: application/json" -X GET

=end

  def index
    recent_viewed = RecentView.list(current_user, 10)

    if response_expand?
      list = recent_viewed.map(&:attributes_with_association_names)
      render json: list, status: :ok
      return
    end

    if response_full?
      assets = {}
      item_ids = []
      recent_viewed.each do |item|
        item_ids.push item.id
        assets = item.assets(assets)
      end
      render json: {
        record_ids: item_ids,
        assets:     assets,
      }, status: :ok
      return
    end

    all = recent_viewed.map(&:attributes_with_association_ids)
    render json: all, status: :ok
  end

=begin

Resource:
POST /api/v1/recent_viewed

Payload:
{
  "object": "Ticket",
  "o_id": 123,
}

Response:
{}

Test:
curl http://localhost/api/v1/recent_view -v -u #{login}:#{password} -H "Content-Type: application/json" -X POST -d '{"object": "Ticket","o_id": 123}'

=end

  def create

    RecentView.log(params[:object], params[:o_id], current_user)

    # return result
    render json: { message: 'ok' }
  end

end