class Desktopapp::DesktopAppAppstore < Sinatra::Base
	
	get '/desktop_appstore/appstore' do
		erb :appstore
	end

	get '/desktop_appstore/widgets' do
		erb :'appstore/widgets'
	end

	get '/desktop_appstore/getuserwidgets' do
		# @widgets = current_user.desktop.desktop_widgets
		# @groups = Array.new
		# @sections = current_user.desktop.sections

		# @sections.each do |section|
		# 	@groups << section.groups
		# end
		
		# @widgets.each do |widget|
		# 	@count = 0;
		# 	@sectionids = Array.new
		# 	@groups.each do |group|
		# 		group.each do |grp|
		# 			@widge = 0
		# 			@gid = widget.id.to_s
		# 			@widge = grp.tiles.where(:data_content.all => [@gid]).count
		# 			@count = @count + @widge
		# 			if @widge > 0
		# 				@sectionids << grp.section_id
		# 			end
		# 		end
		# 	end
		# 	if @count > 0
		# 		widget.status = "Installed"
		# 		widget.section = @sectionids
		# 	else
		# 		widget.status = "Downloaded"
		# 	end
		# end
		# @widgets.to_json
		current_user.to_json
	end

	get '/desktop_appstore/widgets_settings' do
		what = params["what"]
		@widgetid = params["widget"]
		@sectionid = params["section"]
		@msg = Array.new
		case what
			when "remove"
				@section = Section.find(@sectionid)
				@groups = @section.groups
				@groups.each do |group|
					@tile = group.tiles.where(:data_content.all => [@widgetid])
					if @tile.count > 0
						@thistile = @tile 
					end
				end
				@t = Tile.find(@thistile.first.id)
				@t.delete
				@msg << {"success"=>true}
			when "add"
				@widget = current_user.desktop.desktop_widgets.find(@widgetid)
				@section = Section.find(@sectionid)
				@groups = @section.groups
				@totalwidgets = 0
				@groups.each do |group|
					@tile = group.tiles.where(:data_content.all => [@widgetid]).count
					if @tile > 0
						@msg << {"success"=>false,"error"=>"Duplicate widget"}
					else
						no_of_widgets = group.tiles.where(:data_category.all => ["widget"]).count
						@totalwidgets = @totalwidgets + no_of_widgets
					end
				end
				if @totalwidgets >= 12
					@msg << {"success"=>false,"error"=>"Section full"}
				else
					wshape = @widget.shape
					wdata_content = @widgetid
					wdata_category = "widget"
					wname = @widget.name
					if @groups.first.tiles.where(:data_category.all => ["widget"]).count >= 6
						groupid = @groups.last.id
					else
						groupid = @groups.first.id
					end
					Tile.create(data_category: wdata_category,data_content: wdata_content, group_id: groupid, position: 10, title: wname, shape: wshape)
					@msg << {"success"=>true}
				end
		end
		@msg.to_json 
	end

end