mgtzm/src/main.zig

54 lines
1.3 KiB
Zig
Raw Normal View History

2022-10-20 11:23:15 +00:00
const std = @import("std");
const sqlite = @import("sqlite");
const Db = @import("Db.zig");
const Item = @import("Item.zig");
2022-10-21 16:58:44 +00:00
const Tag = @import("Tag.zig");
2022-10-21 21:38:22 +00:00
const json = @import("json.zig");
2022-10-20 11:23:15 +00:00
pub fn main() !void {
var db = try Db.init();
2022-10-22 03:15:36 +00:00
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = arena.allocator();
2022-10-21 16:58:44 +00:00
2022-10-21 21:38:22 +00:00
const jsonText: [:0]const u8 =
\\{
\\ "tags": {
2022-10-22 03:15:36 +00:00
\\ "title": "Programar sistema de TODO",
\\ "programming" : "zig",
\\ "due" : "2023-01-01"
2022-10-21 21:38:22 +00:00
\\ }
\\}
;
2022-10-21 16:58:44 +00:00
2022-10-21 21:38:22 +00:00
var jsonItem = json.Obj.newFromString(jsonText);
defer jsonItem.deinit();
2022-10-21 16:58:44 +00:00
2022-10-22 03:15:36 +00:00
var item = try Item.fromJson(jsonItem, allocator);
defer item.deinit();
2022-10-21 21:38:22 +00:00
2022-10-22 03:15:36 +00:00
try item.persist(&db);
2022-10-21 18:38:16 +00:00
// ----------
const jsonText2: [:0]const u8 =
\\{ "id" : 1 }
;
var jsonItem2 = json.Obj.newFromString(jsonText2);
defer jsonItem2.deinit();
var item2 = try Item.fromJson(jsonItem2, allocator);
defer item2.deinit();
var jobj = item2.toJson();
2022-10-21 21:38:22 +00:00
defer jobj.deinit();
2022-10-20 11:23:15 +00:00
2022-10-24 00:49:59 +00:00
const tags = try Item.getTagsById(item2.id.?, &db, allocator);
std.debug.print("{any}\n", .{tags});
2022-10-22 03:15:36 +00:00
std.debug.print("{s}\n", .{jobj.toString()});
2022-10-20 11:23:15 +00:00
}