Skip to content

Commit

Permalink
Merge pull request #49 from tkiapril/chore/cleanup
Browse files Browse the repository at this point in the history
Housekeeping
  • Loading branch information
tkiapril committed Aug 7, 2023
2 parents 93b5f66 + 154e294 commit 4c937d5
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 30 deletions.
12 changes: 6 additions & 6 deletions ControlMessage.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import { decode, encode } from "https://deno.land/x/bencodex@0.2.2/mod.ts";

export type ControlMessage = { action: "reload" };
export type MarshaledControlMessage = ["reload"];

export const ReloadControlMessage: ControlMessage = { action: "reload" };
export type ReloadControlMessage = { action: "reload" };

export type EmitterControlMessages =
| typeof ReloadControlMessage
| ReloadControlMessage
| never;

export type ObserverControlMessages =
| typeof ReloadControlMessage
| ReloadControlMessage
| never;

export type ControlMessage = EmitterControlMessages | ObserverControlMessages;
export type MarshaledControlMessage = [ReloadControlMessage["action"]];

export function serializeControlMessage(msg: ControlMessage): Uint8Array {
return encode([msg.action] satisfies MarshaledControlMessage);
}
Expand Down
3 changes: 1 addition & 2 deletions control.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import type { AmqpChannel } from "https://deno.land/x/amqp@v0.23.1/mod.ts";
import {
EmitterControlMessages,
ObserverControlMessages,
ReloadControlMessage,
serializeControlMessage,
} from "./ControlMessage.ts";
import {
Expand All @@ -29,7 +28,7 @@ export function reload(
} | {
routingKey: typeof ControlObserverRoutingKey;
reloadMessage: ObserverControlMessages;
} = { routingKey: destination, reloadMessage: ReloadControlMessage };
} = { routingKey: destination, reloadMessage: { action: "reload" } };
amqpChannel.publish(
{
exchange: ControlExchangeName,
Expand Down
7 changes: 2 additions & 5 deletions emitter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@ import {

import type { PrismaClient } from "./prisma-shim.ts";

import {
deserializeControlMessage,
ReloadControlMessage,
} from "./ControlMessage.ts";
import { deserializeControlMessage } from "./ControlMessage.ts";
import { deserializeEventMessage, EventMessage } from "./EventMessage.ts";
import {
ControlEmitterRoutingKey,
Expand Down Expand Up @@ -114,7 +111,7 @@ export async function emitter(
`Received message from control queue, action: ${message.action}.`,
);
if (
message.action === ReloadControlMessage.action
message.action === "reload"
) {
logger.info(
"Received reload control message, reloading configuration.",
Expand Down
7 changes: 2 additions & 5 deletions observer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@ import {

import Prisma, { type PrismaClient } from "./prisma-shim.ts";

import {
deserializeControlMessage,
ReloadControlMessage,
} from "./ControlMessage.ts";
import { deserializeControlMessage } from "./ControlMessage.ts";
import { serializeEventMessage } from "./EventMessage.ts";
import {
ControlExchangeName,
Expand Down Expand Up @@ -98,7 +95,7 @@ export async function observer(
`Received message from control queue, action: ${message.action}.`,
);
if (
message.action === ReloadControlMessage.action
message.action === "reload"
) {
logger.info(
"Received reload control message, reloading configuration.",
Expand Down
24 changes: 12 additions & 12 deletions prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
provider = "prisma-client-js"
output = "../generated/client"
provider = "prisma-client-js"
output = "../generated/client"
}

datasource db {
Expand Down Expand Up @@ -63,33 +63,33 @@ model EmitDestination {
topic2 Bytes?
topic3 Bytes?
Source EventSource @relation(fields: [sourceAddress, abiHash], references: [address, abiHash])
Source EventSource @relation(fields: [sourceAddress, abiHash], references: [address, abiHash])
Permission Permission[]
@@unique([sourceAddress, abiHash, webhookUrl, topic1, topic2, topic3])
}

model User {
id Int @id @default(autoincrement())
email String @unique
password String
id Int @id @default(autoincrement())
email String @unique
password String
Permission Permission[]
}

model Permission {
id Int @id @default(autoincrement())
userId Int
id Int @id @default(autoincrement())
userId Int
// SQLite doesn't support ENUM
type String // EventAbi, EventSource, EmitDestination
type String // EventAbi, EventSource, EmitDestination
abiHash Bytes?
sourceAddress Bytes?
destinationId Int?
User User @relation(fields: [userId], references: [id], onDelete: Cascade)
Abi EventAbi? @relation(fields: [abiHash], references: [hash], onDelete: Cascade)
Source EventSource? @relation(fields: [abiHash, sourceAddress], references: [abiHash, address], onDelete: Cascade)
User User @relation(fields: [userId], references: [id], onDelete: Cascade)
Abi EventAbi? @relation(fields: [abiHash], references: [hash], onDelete: Cascade)
Source EventSource? @relation(fields: [abiHash, sourceAddress], references: [abiHash, address], onDelete: Cascade)
Destination EmitDestination? @relation(fields: [destinationId], references: [id], onDelete: Cascade)
}

0 comments on commit 4c937d5

Please sign in to comment.