Building db stuff
This commit is contained in:
parent
46f0b5038c
commit
dc959607f9
5 changed files with 84 additions and 19 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -2,5 +2,4 @@ zig-out/
|
||||||
zig-cache/
|
zig-cache/
|
||||||
*.core
|
*.core
|
||||||
static/
|
static/
|
||||||
.jetzig
|
.jetzig
|
||||||
src/app/database/
|
|
||||||
BIN
src/app/database/data.db
Normal file
BIN
src/app/database/data.db
Normal file
Binary file not shown.
12
src/app/views/search.zig
Normal file
12
src/app/views/search.zig
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
const std = @import("std");
|
||||||
|
const jetzig = @import("jetzig");
|
||||||
|
const search = @import("../../db.zig");
|
||||||
|
|
||||||
|
pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View {
|
||||||
|
var root = try data.object();
|
||||||
|
const params = try request.params();
|
||||||
|
const query = params.get("q");
|
||||||
|
try root.put("q",query);
|
||||||
|
//try root.put("q", data.string("Welcome"));
|
||||||
|
return request.render(.ok);
|
||||||
|
}
|
||||||
54
src/db.zig
54
src/db.zig
|
|
@ -0,0 +1,54 @@
|
||||||
|
const std = @import("std");
|
||||||
|
const sql = @import("sqlite");
|
||||||
|
|
||||||
|
pub fn loadDb(path: []u8) !sql.sqlite.Db{
|
||||||
|
try sql.sqlite.Db.init(.{
|
||||||
|
.mode = sql.sqlite.Db.Mode{ .File = path},
|
||||||
|
.open_flags = .{
|
||||||
|
.write = true,
|
||||||
|
.create = true,
|
||||||
|
},
|
||||||
|
.threading_mode = .MultiThread,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const addArtist = \\INSERT INTO artists ('artist', 'plays', 'url') VALUES (?,?)
|
||||||
|
;
|
||||||
|
|
||||||
|
const addTrack = \\INSERT INTO tracks ('artist', 'track', 'album', 'plays', 'url') VALUES (?,?,?,?)
|
||||||
|
;
|
||||||
|
|
||||||
|
const getArtist = \\SELECT artist, plays FROM artists WHERE artist == ?
|
||||||
|
;
|
||||||
|
|
||||||
|
const getTrack = \\SELECT artist, track, album, plays FROM tracks WHERE track == ?
|
||||||
|
;
|
||||||
|
|
||||||
|
const getTrackSearch = \\SELECT url FROM artists WHERE artist == ?
|
||||||
|
;
|
||||||
|
|
||||||
|
const getArtistSearch = \\SELECT url FROM artists WHERE artist == ?
|
||||||
|
;
|
||||||
|
|
||||||
|
pub var db = loadDb("/home/swebb/Source/zuletzt/src/app/database/data.db");
|
||||||
|
|
||||||
|
pub fn search(query: []const u8) !void{
|
||||||
|
var artistSearch = try db.prepare(getArtistSearch);
|
||||||
|
defer artistSearch.deinit();
|
||||||
|
var trackSearch = try db.prepare(getTrackSearch);
|
||||||
|
defer trackSearch.deinit();
|
||||||
|
|
||||||
|
const artistResults = try artistSearch.one(
|
||||||
|
struct {
|
||||||
|
artist: [128:0]u8,
|
||||||
|
plays: usize,
|
||||||
|
},
|
||||||
|
.{},
|
||||||
|
.{ .artist = query},
|
||||||
|
);
|
||||||
|
|
||||||
|
if (artistResults) |r|{
|
||||||
|
std.log.debug("Artist: {}, Plays: {}", .{r.name, r.plays});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
34
src/main.zig
34
src/main.zig
|
|
@ -87,35 +87,35 @@ pub const jetzig_options = struct {
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
var db = try sqlite.Db.init(.{
|
//var db = try sqlite.Db.init(.{
|
||||||
.mode = sqlite.Db.Mode{ .File = "/home/swebb/Source/zuletzt/src/app/database/data.db" },
|
// .mode = sqlite.Db.Mode{ .File = "/home/swebb/Source/zuletzt/src/app/database/data.db" },
|
||||||
.open_flags = .{
|
// .open_flags = .{
|
||||||
.write = true,
|
// .write = true,
|
||||||
.create = true,
|
// .create = true,
|
||||||
},
|
// },
|
||||||
.threading_mode = .MultiThread,
|
// .threading_mode = .MultiThread,
|
||||||
});
|
//});
|
||||||
|
|
||||||
//const create =
|
//const create =
|
||||||
// \\CREATE TABLE artists ('artist', 'plays')
|
// \\CREATE TABLE artists ('artist', 'plays')
|
||||||
//;
|
//;
|
||||||
|
|
||||||
const query =
|
//const query =
|
||||||
\\INSERT INTO artists ('artist', 'plays') VALUES (?,?)
|
// \\INSERT INTO artists ('artist', 'plays') VALUES (?,?)
|
||||||
;
|
//;
|
||||||
|
|
||||||
//var build = try db.prepare(create);
|
//var build = try db.prepare(create);
|
||||||
//defer build.deinit();
|
//defer build.deinit();
|
||||||
|
|
||||||
//try build.exec(.{},.{});
|
//try build.exec(.{},.{});
|
||||||
|
|
||||||
var stmt = try db.prepare(query);
|
//var stmt = try db.prepare(query);
|
||||||
defer stmt.deinit();
|
//defer stmt.deinit();
|
||||||
|
|
||||||
try stmt.exec(.{}, .{
|
//try stmt.exec(.{}, .{
|
||||||
.artist = "Wilco",
|
// .artist = "Wilco",
|
||||||
.plays = 2500,
|
// .plays = 2500,
|
||||||
});
|
//});
|
||||||
|
|
||||||
|
|
||||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue