# frozen_string_literal: true class AppsController < ApplicationController skip_before_action :authenticate_request, only: [:show] def index authorize App folder_id = params[:folder] if folder_id.blank? @scope = App.where(organization: @current_user.organization) else @folder = Folder.find folder_id @scope = @folder.apps end @apps = @scope.order("created_at desc") .page(params[:page]) .per(10) .includes(:user) @meta = { total_pages: @apps.total_pages, folder_count: @scope.count, total_count: App.where(organization: @current_user.organization).count, current_page: @apps.current_page } end def create authorize App @app = App.create({ name: "Untitled app", organization: @current_user.organization, current_version: AppVersion.new(name: "v0"), user: @current_user }) AppUser.create(app: @app, user: @current_user, role: "admin") end def show @app = App.find params[:id] # Logic to bypass auth for public apps unless @app.is_public authenticate_request authorize @app end end def update @app = App.find params[:id] authorize @app @app.update(params["app"].permit("name", "current_version_id", "is_public")) end def users @app = App.find params[:app_id] @app_users = AppUser.where(app: @app).includes(:user) end end