diff src/lib/Course.luan @ 24:87fe70201aa8

courses work
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 31 Jul 2025 22:30:26 -0600
parents 0c17c233c45a
children 3a80ddafe5a4
line wrap: on
line diff
--- a/src/lib/Course.luan	Wed Jul 30 23:29:33 2025 -0600
+++ b/src/lib/Course.luan	Thu Jul 31 22:30:26 2025 -0600
@@ -3,6 +3,8 @@
 local ipairs = Luan.ipairs or error()
 local Number = require "luan:Number.luan"
 local long = Number.long or error()
+local Html = require "luan:Html.luan"
+local html_encode = Html.encode or error()
 local Db = require "site:/lib/Db.luan"
 local languages = require "site:/lib/languages.luan"
 
@@ -15,6 +17,7 @@
 		id = doc.id
 		user_id = doc.course_user_id
 		language = doc.course_language
+		updated = doc.course_updated
 		name = doc.name
 		ai_system_prompt = doc.ai_system_prompt
 	}
@@ -26,6 +29,7 @@
 		id = course.id
 		course_user_id = long(course.user_id)
  		course_language = course.language or error()
+		course_updated = long(course.updated)
 		name = course.name or error()
 		ai_system_prompt = course.ai_system_prompt or error()
 	}
@@ -34,9 +38,13 @@
 function Course.new(course)
 
 	function course.save()
-		local doc = to_doc(chat)
+		local doc = to_doc(course)
 		Db.save(doc)
-		chat.id = doc.id
+		course.id = doc.id
+	end
+
+	function course.name_html()
+		return html_encode(course.name)
 	end
 
 	function course.language_name()
@@ -46,7 +54,7 @@
 	return course
 end
 
-local function search(query,sort,rows)
+function Course.search(query,sort,rows)
 	rows = rows or 1000000
 	local courses = {}
 	local docs = Db.search(query,1,rows,{sort=sort})
@@ -56,10 +64,6 @@
 	return courses
 end
 
-function Course.get_for_language(language)
-	return search("course_language:"..language)
-end
-
 function Course.get_by_id(id)
 	local doc = Db.get_document("id:"..id)
 	return doc and doc.type=="course" and from_doc(doc) or nil