From 8f0b8929ba8e06bc2e7eb8d175b5ed233b5507de Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sun, 15 Feb 2026 22:04:17 -0600 Subject: [PATCH] ars apis --- admin/app/controllers/arses_controller.rb | 36 +++++++++++++++++++++++ admin/config/routes.rb | 2 ++ 2 files changed, 38 insertions(+) diff --git a/admin/app/controllers/arses_controller.rb b/admin/app/controllers/arses_controller.rb index 7e0c83dd4..a04ee43b2 100644 --- a/admin/app/controllers/arses_controller.rb +++ b/admin/app/controllers/arses_controller.rb @@ -2,6 +2,42 @@ class ArsesController < ApplicationController respond_to :json + def index + if params[:code] != Rails.application.config.data_dump_code + render :json => {error: "Unauthorized"}, :status => 401 + return + end + + @arses = Ars.all + render :json => @arses + end + + def update + if params[:code] != Rails.application.config.data_dump_code + render :json => {error: "Unauthorized"}, :status => 401 + return + end + + @ars = Ars.find_by_id(params[:id]) + if @ars.nil? + render :json => {error: "Not Found"}, :status => 404 + return + end + + allowed = [:password, :username, :active, :beta, :name, :provider, :id_int, :ip, :port, :continent, :country, :city, :subdivision, :latitude, :longitude] + + update_hash = {} + allowed.each do |attr| + update_hash[attr] = params[attr] if params.has_key?(attr) + end + + if @ars.update_attributes(update_hash, as: :admin) + render :json => @ars, :status => :ok + else + render :json => @ars.errors, :status => :unprocessable_entity + end + end + # create or update a client_artifact row def get_or_create name = params[:name] diff --git a/admin/config/routes.rb b/admin/config/routes.rb index 4dd029239..d716ced1b 100644 --- a/admin/config/routes.rb +++ b/admin/config/routes.rb @@ -44,6 +44,8 @@ JamAdmin::Application.routes.draw do match '/api/jam_tracks/released' => 'jam_track#dump_released', :via => :get, as: 'released_jamtracks_csv' match '/api/arses/register' => 'arses#get_or_create', :via => :post + match '/api/arses' => 'arses#index', :via => :get + match '/api/arses/:id' => 'arses#update', :via => :post mount Resque::Server.new, :at => "/resque"