receptor

Real-time messaging app. Available as a website and as MacOS, Linux, and Windows application.

Stars
21
Committers
1

Receptor

Real-time messaging app. Available as a web, MacOS, Linux, and Windows application.

Database Schema

Events

// Websocket events
enum Event {
  Connect = "connect",
  Disconnect = "disconnect",
  AddFriend = "addFriend",
  AcceptFriend = "acceptFriend",
  RemoveFriend = "removeFriend",
  Notification = "notification",
  Login = "login",
  Logout = "logout",
  GetUser = "getUser",
  JoinRoom = "joinRoom",
  LeaveRoom = "leaveRoom",
  RoomMessage = "sendRoomMsg",
  UpdateUser = "updateUser",
}

API

For full API documentation try import this postman collection

Reqeust

type Body = {
  username: string;
  email: string;
  password: string;
};

Response

type Response = {
  userId: number;
};

Reqeust

type Body = {
  email: string;
  password: string;
};

Response

type Response = {
  user: User;
  token: string;
};

Reqeust

Query Param. Description Type Default
q Search by email and username string Empty string
page Number of the current page number 1
limit Number of items per response number 10

Response

type Reponse = {
  users: Array<User>;
  count: number;
};

Reqeust

Access only by authorized users

type Headers = {
  authorization: string; // Bearer auth token
};

Response

type Reponse = Array<User & { roomId: number }>;

Reqeust

Access only by authorized users

type Headers = {
  authorization: string; // Bearer auth token
};

Response

type Reponse = Array<Message & { user: User }>;

Reqeust

Access only by authorized users

type Headers = {
  authorization: string; // Bearer auth token
};

Response

type Reponse = Array<{
  id: number;
  name: string;
  type: string;
  createdAt: Date;
  updatedAt: Data;
  participants: Array<User>;
}>;

Reqeust

type Body = {
  groupName: string;
  userIds: number[];
};

Response

type Reponse = {
  roomId: number;
};

Reqeust

Access only by authorized users

type Headers = {
  authorization: string; // Bearer auth token
};

Response

type Reponse = {
  roomId: number;
};

Reqeust

Access only by authorized users

type Headers = {
  authorization: string; // Bearer auth token
};

Response

type Reponse = {
  roomId: number;
};