diff --git a/app/controllers/api/v1/projects_controller.rb b/app/controllers/api/v1/projects_controller.rb index 4b9c447..727601b 100644 --- a/app/controllers/api/v1/projects_controller.rb +++ b/app/controllers/api/v1/projects_controller.rb @@ -42,4 +42,20 @@ def packages def images @projects = Project.reviewed.with_readme.select{|p| p.readme_image_urls.present? } end + + def esd + @projects = Project.all.where.not(last_synced_at: nil).where(est: true) + + if params[:sort].present? || params[:order].present? + sort = params[:sort].presence || 'projects.updated_at' + if params[:order] == 'asc' + @projects = @projects.order(Arel.sql(sort).asc.nulls_last) + else + @projects = @projects.order(Arel.sql(sort).desc.nulls_last) + end + end + + @pagy, @projects = pagy_countless(@projects) + render :index + end end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index e7b7088..d3deb81 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -23,6 +23,7 @@ resources :jobs resources :projects, constraints: { id: /.*/ }, only: [:index, :show] do collection do + get :esd get :lookup get :packages get :images