[CORL 133] API Review (#2197)

* refactor: removed unused subscription code

* refactor: removed management api's

* refactor: cleanup of connections

* refactor: refactored comments edge

* refactor: simplified connection resolving

* feat: added story connection edge

* fix: added story index

* feat: added user pagination and user edge

* fix: added filter to comment query

* fix: removed unused resolvers

* fix: creating a comment reply should require auth

* refactor: cleanup of graph files

* feat: removed display name, made username non-unique

* fix: fixed tests

* fix: fixed tests

* fix: added more api docs

* fix: fixed bug with installer

* refactor: fixes and updates

* fix: added linting for graphql, fixed schema

* feat: added docker build tests

* fix: upped output timeout

* fix: fixed stacktraces in production builds

* fix: removed `git add`

- `git add` was causing issues with
    partial staged changs on files

* feat: improved error messaging for auth

* refactor: cleaned up queue names

* fix: merge error
This commit is contained in:
Wyatt Johnson
2019-03-12 14:12:21 +00:00
committed by Kiwi
parent 37959f9398
commit d37333be89
125 changed files with 1272 additions and 1539 deletions
+1 -1
View File
@@ -26,7 +26,7 @@ export default class Task<T, U = any> {
*
* @param data the data for the job to add.
*/
public async add(data: T) {
public async add(data: T): Promise<Queue.Job<T> | undefined> {
const job = await this.queue.add(data, {
// We always remove the job when it's complete, no need to fill up Redis
// with completed entries if we don't need to.
+7 -9
View File
@@ -2,11 +2,10 @@ import Queue from "bull";
import { Db } from "mongodb";
import { Config } from "talk-server/config";
import Task from "talk-server/queue/Task";
import { createMailerTask, Mailer } from "talk-server/queue/tasks/mailer";
import { createMailerTask, MailerQueue } from "talk-server/queue/tasks/mailer";
import {
createScraperTask,
ScraperData,
ScraperQueue,
} from "talk-server/queue/tasks/scraper";
import { createRedisClient } from "talk-server/services/redis";
import TenantCache from "talk-server/services/tenant/cache";
@@ -14,9 +13,8 @@ import TenantCache from "talk-server/services/tenant/cache";
const createQueueOptions = async (
config: Config
): Promise<Queue.QueueOptions> => {
const client = await createRedisClient(config);
const subscriber = await createRedisClient(config);
const blockingClient = await createRedisClient(config);
const client = createRedisClient(config);
const subscriber = createRedisClient(config);
// Return the options that can be used by the Queue.
return {
@@ -30,7 +28,7 @@ const createQueueOptions = async (
case "client":
return client;
case "bclient":
return blockingClient;
return createRedisClient(config);
}
},
@@ -49,8 +47,8 @@ export interface QueueOptions {
}
export interface TaskQueue {
mailer: Mailer;
scraper: Task<ScraperData>;
mailer: MailerQueue;
scraper: ScraperQueue;
}
export async function createQueue(options: QueueOptions): Promise<TaskQueue> {
+2 -2
View File
@@ -137,7 +137,7 @@ export interface MailerInput {
tenantID: string;
}
export class Mailer {
export class MailerQueue {
private task: Task<MailerData>;
private content: MailerContent;
private tenantCache: TenantCache;
@@ -205,4 +205,4 @@ export class Mailer {
export const createMailerTask = (
queue: Queue.QueueOptions,
options: MailProcessorOptions
) => new Mailer(queue, options);
) => new MailerQueue(queue, options);
@@ -1,5 +1,6 @@
import Queue, { Job } from "bull";
import { Db } from "mongodb";
import now from "performance-now";
import logger from "talk-server/logger";
import Task from "talk-server/queue/Task";
@@ -31,6 +32,9 @@ const createJobProcessor = ({ mongo }: ScrapeProcessorOptions) => async (
tenantID,
});
// Mark the start time.
const startTime = now();
log.debug("starting to scrape the story");
try {
@@ -41,8 +45,15 @@ const createJobProcessor = ({ mongo }: ScrapeProcessorOptions) => async (
throw err;
}
// Compute the end time.
const responseTime = Math.round(now() - startTime);
log.debug({ responseTime }, "scraped the story");
};
export type ScraperQueue = Task<ScraperData>;
export function createScraperTask(
queue: Queue.QueueOptions,
options: ScrapeProcessorOptions