29 lines
551 B
Crystal
29 lines
551 B
Crystal
require "option_parser"
|
|
require "uuid"
|
|
require "uuid/json"
|
|
|
|
|
|
|
|
require "dodb"
|
|
|
|
|
|
|
|
class TodoD::Storage
|
|
getter root : String
|
|
|
|
getter lists : DODB::DataBase(String, List)
|
|
getter tasks : DODB::DataBase(String, Task)
|
|
getter lists_per_user : DODB::Tags(List)
|
|
|
|
def initialize(@root)
|
|
@lists = DODB::DataBase(String, List).new("#{@root}/lists")
|
|
@lists_per_user = @lists.new_tags "user", &.users_with_read_permissions.map(&.to_s)
|
|
|
|
@tasks = DODB::DataBase(String, Task).new("#{@root}/tasks")
|
|
end
|
|
|
|
def new_list(list)
|
|
@lists[list.id] = list
|
|
end
|
|
end
|