Skip to content

Commit

Permalink
run prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelneu committed Oct 7, 2019
1 parent 7e01a09 commit 5bae6b7
Show file tree
Hide file tree
Showing 127 changed files with 1,748 additions and 991 deletions.
7 changes: 5 additions & 2 deletions backend/src/controllers/activity-controller.ts
Expand Up @@ -2,13 +2,16 @@ import { Authorized, Get, JsonController } from "routing-controllers";
import { Inject } from "typedi";
import { IActivity } from "../../../types/activity";
import { UserRole } from "../../../types/roles";
import { ActivityServiceToken, IActivityService } from "../services/activity-service";
import {
ActivityServiceToken,
IActivityService,
} from "../services/activity-service";

@JsonController("/activity")
export class ActivityController {
public constructor(
@Inject(ActivityServiceToken) private readonly _activity: IActivityService,
) { }
) {}

/**
* Gets the activity log.
Expand Down
37 changes: 28 additions & 9 deletions backend/src/controllers/settings-controller.ts
@@ -1,13 +1,31 @@
import { Authorized, BadRequestError, Body, CurrentUser, Get, JsonController, Put } from "routing-controllers";
import {
Authorized,
BadRequestError,
Body,
CurrentUser,
Get,
JsonController,
Put,
} from "routing-controllers";
import { Inject } from "typedi";
import { ActivityType } from "../../../types/activity";
import { UserRole } from "../../../types/roles";
import { ISettings } from "../../../types/settings";
import { WebSocketMessageType } from "../../../types/ws";
import { User } from "../entities/user";
import { ActivityServiceToken, IActivityService } from "../services/activity-service";
import { ISettingsService, SettingsServiceToken, UpdateSettingsError } from "../services/settings-service";
import { IWebSocketService, WebSocketServiceToken } from "../services/ws-service";
import {
ActivityServiceToken,
IActivityService,
} from "../services/activity-service";
import {
ISettingsService,
SettingsServiceToken,
UpdateSettingsError,
} from "../services/settings-service";
import {
IWebSocketService,
WebSocketServiceToken,
} from "../services/ws-service";
import { toPrettyJson } from "../utils/json";
import { UpdateSettingsApiRequest } from "../validation/update-settings";

Expand All @@ -17,7 +35,7 @@ export class SettingsController {
@Inject(SettingsServiceToken) private readonly _settings: ISettingsService,
@Inject(ActivityServiceToken) private readonly _activity: IActivityService,
@Inject(WebSocketServiceToken) private readonly _ws: IWebSocketService,
) { }
) {}

/**
* Gets the application settings.
Expand All @@ -32,7 +50,10 @@ export class SettingsController {
*/
@Put()
@Authorized(UserRole.Owner)
public async updateSettings(@CurrentUser() user: User, @Body() { data: settings }: UpdateSettingsApiRequest): Promise<ISettings> {
public async updateSettings(
@CurrentUser() user: User,
@Body() { data: settings }: UpdateSettingsApiRequest,
): Promise<ISettings> {
try {
const previousSettings = await this._settings.getSettings();
const nextSettings = await this._settings.updateSettings(settings);
Expand All @@ -44,9 +65,7 @@ export class SettingsController {
});

this._ws.broadcast(UserRole.Moderator, {
activity: [
activity,
],
activity: [activity],
type: WebSocketMessageType.Activity,
});

Expand Down
41 changes: 33 additions & 8 deletions backend/src/controllers/users-controller.ts
@@ -1,4 +1,14 @@
import { Authorized, BadRequestError, Body, CurrentUser, Get, HttpCode, JsonController, Post, QueryParam } from "routing-controllers";
import {
Authorized,
BadRequestError,
Body,
CurrentUser,
Get,
HttpCode,
JsonController,
Post,
QueryParam,
} from "routing-controllers";
import { Inject } from "typedi";
import { ActivityType } from "../../../types/activity";
import { UserRole } from "../../../types/roles";
Expand All @@ -8,7 +18,10 @@ import { IUserRoleResponseBody } from "../../../types/user-role";
import { IUserSignupResponseBody } from "../../../types/user-signup";
import { IUserVerifyResponseBody } from "../../../types/user-verify";
import { User } from "../entities/user";
import { ActivityServiceToken, IActivityService } from "../services/activity-service";
import {
ActivityServiceToken,
IActivityService,
} from "../services/activity-service";
import { IUserService, UserServiceToken } from "../services/user-service";
import { UserLoginApiRequest } from "../validation/user-login";
import { UserSignupApiRequest } from "../validation/user-signup";
Expand All @@ -21,14 +34,17 @@ export class UsersController {
public constructor(
@Inject(UserServiceToken) private readonly _users: IUserService,
@Inject(ActivityServiceToken) private readonly _activity: IActivityService,
) { }
) {}

/**
* Create a user.
*/
@HttpCode(201)
@Post("/signup")
public async signup(@Body() { data: { email, password } }: UserSignupApiRequest): Promise<IUserSignupResponseBody> {
public async signup(@Body()
{
data: { email, password },
}: UserSignupApiRequest): Promise<IUserSignupResponseBody> {
try {
const user = await this._users.signup(email, password);
await this._activity.addActivity(user, {
Expand All @@ -48,7 +64,9 @@ export class UsersController {
* @param token The token to verify.
*/
@Get("/verify")
public async verify(@QueryParam("token") token: string): Promise<IUserVerifyResponseBody> {
public async verify(
@QueryParam("token") token: string,
): Promise<IUserVerifyResponseBody> {
try {
const user = await this._users.verifyUserByVerifyToken(token);
await this._activity.addActivity(user, {
Expand All @@ -68,7 +86,10 @@ export class UsersController {
* @param body The user's login credentials
*/
@Post("/login")
public async login(@Body() { data: { email, password } }: UserLoginApiRequest): Promise<IUserLoginResponseBody> {
public async login(@Body()
{
data: { email, password },
}: UserLoginApiRequest): Promise<IUserLoginResponseBody> {
const user = await this._users.findUserWithCredentials(email, password);

if (!user) {
Expand All @@ -87,7 +108,9 @@ export class UsersController {
*/
@Get("/role")
@Authorized(UserRole.User)
public async getRole(@CurrentUser() user: User): Promise<IUserRoleResponseBody> {
public async getRole(
@CurrentUser() user: User,
): Promise<IUserRoleResponseBody> {
return {
role: user.role,
};
Expand All @@ -99,7 +122,9 @@ export class UsersController {
*/
@Get("/refreshtoken")
@Authorized(UserRole.User)
public async refreshLoginToken(@CurrentUser() user: User): Promise<IUserRefreshTokenResponseBody> {
public async refreshLoginToken(
@CurrentUser() user: User,
): Promise<IUserRefreshTokenResponseBody> {
return {
token: this._users.generateLoginToken(user),
};
Expand Down
8 changes: 7 additions & 1 deletion backend/src/entities/application-settings.ts
@@ -1,5 +1,11 @@
import { Exclude, Type } from "class-transformer";
import { IsDate, IsNumber, IsOptional, IsPositive, ValidateNested } from "class-validator";
import {
IsDate,
IsNumber,
IsOptional,
IsPositive,
ValidateNested,
} from "class-validator";
import { Column, Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm";
import { IApplicationSettings, IFormSettings } from "../../../types/settings";
import { FormSettings } from "./form-settings";
Expand Down
8 changes: 7 additions & 1 deletion backend/src/entities/choices-question.ts
@@ -1,4 +1,10 @@
import { Equals, IsArray, IsBoolean, IsOptional, IsString } from "class-validator";
import {
Equals,
IsArray,
IsBoolean,
IsOptional,
IsString,
} from "class-validator";
import { Column, Entity, ManyToOne } from "typeorm";
import { IChoicesQuestion, QuestionType } from "../../../types/questions";
import { FormSettings } from "./form-settings";
Expand Down
8 changes: 7 additions & 1 deletion backend/src/entities/email-settings.ts
@@ -1,6 +1,12 @@
import { Exclude, Type } from "class-transformer";
import { IsEmail, IsOptional, ValidateNested } from "class-validator";
import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from "typeorm";
import {
Column,
Entity,
JoinColumn,
ManyToOne,
PrimaryGeneratedColumn,
} from "typeorm";
import { IEmailSettings, IEmailTemplate } from "../../../types/settings";
import { EmailTemplate } from "./email-template";

Expand Down
68 changes: 45 additions & 23 deletions backend/src/entities/form-settings.ts
Expand Up @@ -29,42 +29,56 @@ export class FormSettings implements IFormSettings {
public title!: string;

@Exclude()
@OneToMany(() => ChoicesQuestion, (question) => question.form, { cascade: true, eager: true })
@OneToMany(() => ChoicesQuestion, (question) => question.form, {
cascade: true,
eager: true,
})
private choices!: ChoicesQuestion[];

@Exclude()
@OneToMany(() => CountryQuestion, (question) => question.form, { cascade: true, eager: true })
@OneToMany(() => CountryQuestion, (question) => question.form, {
cascade: true,
eager: true,
})
private countries!: CountryQuestion[];

@Exclude()
@OneToMany(() => NumberQuestion, (question) => question.form, { cascade: true, eager: true })
@OneToMany(() => NumberQuestion, (question) => question.form, {
cascade: true,
eager: true,
})
private numbers!: NumberQuestion[];

@Exclude()
@OneToMany(() => TextQuestion, (question) => question.form, { cascade: true, eager: true })
@OneToMany(() => TextQuestion, (question) => question.form, {
cascade: true,
eager: true,
})
private texts!: TextQuestion[];

@Expose()
@IsArray()
@ArrayType((values: IQuestion[]) => values.map(({ type }) => {
switch (type) {
case QuestionType.Text:
return TextQuestion;
@ArrayType((values: IQuestion[]) =>
values.map(({ type }) => {
switch (type) {
case QuestionType.Text:
return TextQuestion;

case QuestionType.Number:
return NumberQuestion;
case QuestionType.Number:
return NumberQuestion;

case QuestionType.Choices:
return ChoicesQuestion;
case QuestionType.Choices:
return ChoicesQuestion;

case QuestionType.Country:
return CountryQuestion;
case QuestionType.Country:
return CountryQuestion;

default:
enforceExhaustiveSwitch(type);
throw new TypeError("unknown question type");
}
}))
default:
enforceExhaustiveSwitch(type);
throw new TypeError("unknown question type");
}
}),
)
public get questions(): IQuestion[] {
return [
...(this.choices || []),
Expand All @@ -80,9 +94,17 @@ export class FormSettings implements IFormSettings {
return question;
});

this.choices = questionsWithIndex.filter(({ type }) => type === QuestionType.Choices) as ChoicesQuestion[];
this.countries = questionsWithIndex.filter(({ type }) => type === QuestionType.Country) as CountryQuestion[];
this.numbers = questionsWithIndex.filter(({ type }) => type === QuestionType.Number) as NumberQuestion[];
this.texts = questionsWithIndex.filter(({ type }) => type === QuestionType.Text) as TextQuestion[];
this.choices = questionsWithIndex.filter(
({ type }) => type === QuestionType.Choices,
) as ChoicesQuestion[];
this.countries = questionsWithIndex.filter(
({ type }) => type === QuestionType.Country,
) as CountryQuestion[];
this.numbers = questionsWithIndex.filter(
({ type }) => type === QuestionType.Number,
) as NumberQuestion[];
this.texts = questionsWithIndex.filter(
({ type }) => type === QuestionType.Text,
) as TextQuestion[];
}
}
8 changes: 7 additions & 1 deletion backend/src/entities/number-question.ts
@@ -1,4 +1,10 @@
import { Equals, IsBoolean, IsNumber, IsOptional, IsString } from "class-validator";
import {
Equals,
IsBoolean,
IsNumber,
IsOptional,
IsString,
} from "class-validator";
import { Column, Entity, ManyToOne } from "typeorm";
import { INumberQuestion, QuestionType } from "../../../types/questions";
import { FormSettings } from "./form-settings";
Expand Down
16 changes: 14 additions & 2 deletions backend/src/entities/settings.ts
@@ -1,7 +1,19 @@
import { Exclude, Type } from "class-transformer";
import { IsOptional, ValidateNested } from "class-validator";
import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from "typeorm";
import { IActivatable, IApplicationSettings, IEmailSettings, IFrontendSettings, ISettings } from "../../../types/settings";
import {
Column,
Entity,
JoinColumn,
ManyToOne,
PrimaryGeneratedColumn,
} from "typeorm";
import {
IActivatable,
IApplicationSettings,
IEmailSettings,
IFrontendSettings,
ISettings,
} from "../../../types/settings";
import { ApplicationSettings } from "./application-settings";
import { EmailSettings } from "./email-settings";
import { FrontendSettings } from "./frontend-settings";
Expand Down

0 comments on commit 5bae6b7

Please sign in to comment.