diff options
Diffstat (limited to 'freeswitch-model.lua')
-rw-r--r-- | freeswitch-model.lua | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/freeswitch-model.lua b/freeswitch-model.lua index 3095cde..149bf32 100644 --- a/freeswitch-model.lua +++ b/freeswitch-model.lua @@ -56,3 +56,49 @@ list_files = function() table.sort(retval, function(a,b) return a.filename < b.filename end) return cfe({ type="structure", value=retval, label="List of Freeswitch files" }) end + +function getnewfile() + local filename = cfe({ label="File Name", descr="Must be in "..baseurl }) + return cfe({ type="group", value={filename=filename}, label="Freeswitch File" }) +end + +function createfile(filedetails) + local success = true + local path = string.match(filedetails.value.filename.value, "^%s*(.*%S)%s*$") or "" + if not string.find(path, "/") then + path = baseurl.."/"..path + end + + if not is_valid_filename(path) then + success = false + filedetails.value.filename.errtxt = "Invalid filename" + else + if not fs.is_dir(baseurl) then fs.create_directory(baseurl) end + if posix.stat(path) then + success = false + filedetails.value.filename.errtxt = "Filename already exists" + end + end + + if success then + fs.create_file(path) + else + filedetails.errtxt = "Failed to Create File" + end + + return filedetails +end + +function deletefile(filename) + local retval = cfe({ label="Delete Freeswitch File result", errtxt = "Failed to delete Freeswitch File - invalid filename" }) + for i,file in ipairs(list_files().value) do + if filename == file.filename then + retval.value = "Deleted Freeswitch File" + retval.errtxt = nil + os.remove(filename) + break + end + end + + return retval +end |