Merged in feature/logVersioning (pull request #40)

Can Sync Versioning

* started

* client

* jobcansync

* tests
This commit is contained in:
Michael McGuinness
2025-01-29 16:26:11 +00:00
parent 0ac5ff9e15
commit 058f8dba7f
21 changed files with 543 additions and 146 deletions
@@ -1,6 +1,13 @@
CREATE TABLE clients (
id uuid primary key DEFAULT gen_random_uuid(),
name TEXT not null,
canSync boolean not null default false,
UNIQUE (name)
);
CREATE TABLE clientCanSync (
id uuid primary key DEFAULT gen_random_uuid(),
clientId uuid not null,
canSync boolean not null,
addedAt timestamp not null default current_timestamp,
foreign key (clientId) references clients(id)
);
@@ -1,6 +1,13 @@
CREATE TABLE jobs (
id uuid primary key DEFAULT gen_random_uuid(),
clientId uuid not null,
canSync boolean not null default false,
foreign key (clientId) references clients(id)
);
CREATE TABLE jobCanSync (
id uuid primary key DEFAULT gen_random_uuid(),
jobId uuid not null,
canSync boolean not null,
addedAt timestamp not null default current_timestamp,
foreign key (jobId) references jobs(id)
);
+14 -2
View File
@@ -2,7 +2,19 @@
INSERT INTO clients (name) VALUES ($1) RETURNING id;
-- name: GetClient :one
SELECT id, name, canSync FROM clients WHERE id = $1;
SELECT c.id, c.name, coalesce(cs.canSync, false) as canSync
FROM clients as c
LEFT JOIN (
SELECT clientId, canSync
FROM clientCanSync
WHERE clientId = $1
ORDER BY addedAt DESC
LIMIT 1
) as cs on cs.clientId = c.id
WHERE c.id = $1;
-- name: UpdateClient :exec
UPDATE clients SET name = $1, canSync = $2 WHERE id = $3;
UPDATE clients SET name = $1 WHERE id = $2;
-- name: AddClientCanSync :exec
INSERT INTO clientCanSync (canSync, clientId) VALUES ($1, $2);
+12 -3
View File
@@ -1,8 +1,17 @@
-- name: GetJob :one
SELECT id, clientId, canSync FROM jobs WHERE id = $1 LIMIT 1;
SELECT j.id, j.clientId, coalesce(cs.canSync, false) as canSync
FROM jobs as j
LEFT JOIN (
SELECT jobId, canSync
FROM jobCanSync
WHERE jobId = $1
ORDER BY addedAt DESC
LIMIT 1
) as cs on cs.jobId = j.id
WHERE j.id = $1;
-- name: CreateJob :one
INSERT INTO jobs (clientId) VALUES ($1) RETURNING id;
-- name: UpdateJob :exec
UPDATE jobs SET canSync = $1 WHERE id = $2;
-- name: AddJobCanSync :exec
INSERT INTO jobCanSync (canSync, jobId) VALUES ($1, $2);