sparkletown/sparkle

View on GitHub
src/api/table.ts

Summary

Maintainability
A
3 hrs
Test Coverage
import Bugsnag from "@bugsnag/js";
import firebase from "firebase/app";

import { Table } from "types/Table";

interface UpdateVenueTableOptions {
  venueId: string;
  newTable: Table;
  defaultTables: Table[];
}

export const updateVenueTable = async ({
  venueId,
  newTable,
  defaultTables,
}: UpdateVenueTableOptions) =>
  await firebase.functions().httpsCallable("venue-updateTables")({
    venueId,
    newTable,
    defaultTables,
  });

interface DeleteVenueTableOptions {
  venueId: string;
  tableName: string;
  defaultTables: Table[];
}

export const deleteTable = async ({
  venueId,
  tableName,
  defaultTables,
}: DeleteVenueTableOptions) =>
  await firebase
    .functions()
    .httpsCallable("venue-deleteTable")({
      venueId,
      tableName,
      defaultTables,
    })
    .catch((e) => {
      Bugsnag.notify(e, (event) => {
        event.addMetadata("api/admin::deleteTable", {
          venueId,
          tableName,
        });
      });
      throw e;
    });