Merged in feature/logVersioning (pull request #40)
Can Sync Versioning * started * client * jobcansync * tests
This commit is contained in:
@@ -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)
|
||||
);
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
Reference in New Issue
Block a user