pain and misery
This commit is contained in:
parent
894e562400
commit
62ec4dc3ab
3 changed files with 45 additions and 48 deletions
Binary file not shown.
|
|
@ -1,54 +1,17 @@
|
||||||
const std = @import("std");
|
pub const addArtist = \\INSERT INTO artists ('artist', 'plays', 'url') VALUES (?,?)
|
||||||
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 (?,?,?,?)
|
pub const addTrack = \\INSERT INTO tracks ('artist', 'track', 'album', 'plays', 'url') VALUES (?,?,?,?)
|
||||||
;
|
;
|
||||||
|
|
||||||
const getArtist = \\SELECT artist, plays FROM artists WHERE artist == ?
|
pub const getArtist = \\SELECT artist, plays FROM artists WHERE artist == ?
|
||||||
;
|
;
|
||||||
|
|
||||||
const getTrack = \\SELECT artist, track, album, plays FROM tracks WHERE track == ?
|
pub const getTrack = \\SELECT artist, track, album, plays FROM tracks WHERE track == ?
|
||||||
;
|
;
|
||||||
|
|
||||||
const getTrackSearch = \\SELECT url FROM artists WHERE artist == ?
|
pub const getTrackSearch = \\SELECT url FROM artists WHERE artist == ?
|
||||||
;
|
;
|
||||||
|
|
||||||
const getArtistSearch = \\SELECT artist, plays FROM artists WHERE artist == ?
|
pub const getArtistSearch = \\SELECT artist, plays FROM artists WHERE artist LIKE '%' || ? || '%'
|
||||||
;
|
;
|
||||||
|
|
||||||
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});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +1,46 @@
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const jetzig = @import("jetzig");
|
const jetzig = @import("jetzig");
|
||||||
const search = @import("../../db.zig");
|
const queries = @import("../lib/db.zig");
|
||||||
|
const sqlite = @import("sqlite");
|
||||||
|
|
||||||
pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View {
|
pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View {
|
||||||
var root = try data.object();
|
_ = data;
|
||||||
|
const allocator = std.heap.page_allocator;
|
||||||
|
var db = try sqlite.Db.init(.{
|
||||||
|
.mode = sqlite.Db.Mode{ .File = "/home/swebb/Source/zuletzt/src/app/database/data.db" },
|
||||||
|
.open_flags = .{
|
||||||
|
.write = true,
|
||||||
|
.create = true,
|
||||||
|
},
|
||||||
|
.threading_mode = .MultiThread,
|
||||||
|
});
|
||||||
|
//var root = try data.object();
|
||||||
const params = try request.params();
|
const params = try request.params();
|
||||||
const query = params.get("q");
|
const query: ?[]const u8 = if (params.get("q")) |param| param.string.value else null;
|
||||||
try root.put("q",query);
|
if (query != null){
|
||||||
|
// sql.search(query, db);
|
||||||
|
var artistSearch = try db.prepare(queries.getArtistSearch);
|
||||||
|
defer artistSearch.deinit();
|
||||||
|
|
||||||
|
const artistResults = try artistSearch.all(
|
||||||
|
struct{
|
||||||
|
artist: []u8,
|
||||||
|
plays: usize,
|
||||||
|
},
|
||||||
|
allocator,
|
||||||
|
.{},
|
||||||
|
.{ .artist = query},
|
||||||
|
);
|
||||||
|
|
||||||
|
for (artistResults) |r|{
|
||||||
|
std.log.debug("artist: {s}, Plays: {}", .{r.artist, r.plays});
|
||||||
|
//std.log.debug("{s}", .{r});
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
return request.render(.bad_request);
|
||||||
|
}
|
||||||
|
//const query = params.get("q");
|
||||||
|
//try root.put("q",query);
|
||||||
//try root.put("q", data.string("Welcome"));
|
//try root.put("q", data.string("Welcome"));
|
||||||
return request.render(.ok);
|
return request.render(.ok);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue