todod/altsrc/main.cr

34 lines
730 B
Crystal
Raw Permalink Normal View History

2019-12-12 06:26:17 +01:00
require "option_parser"
require "uuid"
require "uuid/json"
require "ipc"
require "authd"
2019-12-13 05:47:45 +01:00
require "dodb"
require "./todod.cr"
2019-12-12 06:26:17 +01:00
class TodoD::Storage
getter root : String
getter lists : DODB::DataBase(List)
getter lists_by_id : DODB::Index(List)
2019-12-13 05:47:45 +01:00
getter lists_per_user : DODB::Tags(List)
2019-12-12 06:26:17 +01:00
getter tasks : DODB::DataBase(Task)
getter tasks_by_id : DODB::Index(Task)
2019-12-12 06:26:17 +01:00
def initialize(@root)
@lists = DODB::DataBase(List).new("#{@root}/lists")
2019-12-13 05:47:45 +01:00
@lists_per_user = @lists.new_tags "user", &.users_with_read_permissions.map(&.to_s)
@lists_by_id = @lists.new_index "id", &.id
2019-12-12 06:26:17 +01:00
@tasks = DODB::DataBase(Task).new("#{@root}/tasks")
@tasks_by_id = @tasks.new_index "id", &.id
2019-12-12 06:26:17 +01:00
end
def new_list(list)
@lists << list
2019-12-12 06:26:17 +01:00
end
end