view src/save_course.js.luan @ 28:99b71a377f2c

audio for textarea
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 02 Aug 2025 20:04:35 -0600
parents 3a80ddafe5a4
children 3117876debca
line wrap: on
line source

local Luan = require "luan:Luan.luan"
local error = Luan.error
local String = require "luan:String.luan"
local trim = String.trim or error()
local Time = require "luan:Time.luan"
local time_now = Time.now or error()
local Io = require "luan:Io.luan"
local Http = require "luan:http/Http.luan"
local User = require "site:/lib/User.luan"
local current_user = User.current or error()
local Db = require "site:/lib/Db.luan"
local run_in_transaction = Db.run_in_transaction or error()
local Course = require "site:/lib/Course.luan"
local get_course_by_id = Course.get_by_id or error()


return function()
	local user = current_user() or error()
	local parameters = Http.request.parameters
	local course_id = parameters.course
	run_in_transaction( function()
		local course
		if course_id ~= nil then
			course = get_course_by_id(course_id) or error()
			course.user_id == user.id or error()
		else
			course = Course.new{
				user_id = user.id
				language = parameters.language or error()
			}
		end
		course.name = parameters.name or error()
		course.ai_system_prompt = parameters.ai_system_prompt or error()
		local ai_first_message = parameters.ai_first_message or error()
		ai_first_message = trim(ai_first_message)
		course.ai_first_message = ai_first_message~="" and ai_first_message or nil
		course.updated = time_now()
		course.save()
	end )
	Io.stdout = Http.response.text_writer()
%>
	location = '/your_courses.html';
<%
end