Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions config.seed.test.ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ services:
disable_smtp: true
db:
connection_uri: {env(CI_MONGODB_URI)}
type: mongodb
options:
useUnifiedTopology: true
useNewUrlParser: true
Expand Down
1 change: 1 addition & 0 deletions config.test.ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ services:
recaptcha_sitekey: {env(TEST_RECAPTCHA_SITEKEY)}
db:
connection_uri: {env(CI_MONGODB_URI)}
type: mongodb
options:
useUnifiedTopology: true
useNewUrlParser: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
atlas = false
type = "mongodb"
connection_uri = read("env:MONGODB_URI")
options = new {
useUnifiedTopology = true
Expand Down
117 changes: 62 additions & 55 deletions server/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,60 +72,17 @@ export class AppModule implements NestModule {
}

static register(options): DynamicModule {
const imports = [
MongooseModule.forRoot(
options.db.connection_uri,
options.db.options
),
ConfigModule.forRoot({
load: [() => options || {}],
}),
ThrottlerModule.forRoot({
ttl: options.throttle.ttl,
limit: options.throttle.limit,
}),
UsersModule,
WikidataModule,
PersonalityModule,
ClaimModule,
ClaimReviewModule,
ReviewTaskModule,
ClaimRevisionModule,
HistoryModule,
StateEventModule,
SourceModule,
SpeechModule,
ParagraphModule,
SentenceModule,
StatsModule,
ViewModule,
EmailModule,
SitemapModule,
OryModule,
ReportModule,
CaptchaModule,
TopicModule,
ImageModule,
SearchModule,
FileManagementModule,
DebateModule,
EditorModule,
BadgeModule,
EditorParseModule,
NotificationModule,
CommentModule,
NameSpaceModule,
AutomatedFactCheckingModule,
CopilotChatModule,
UnattributedModule,
DailyReportModule,
SummarizationCrawlerModule,
ChatbotModule,
VerificationRequestModule,
FeatureFlagModule,
GroupModule,
HomeModule, // Home module must be the last imported module because it contains the root endpoint, may causing some endpoints to be confused as namespace parameters
];
const imports = [];
if (options.db.type === "mongodb") {
imports.push(
MongooseModule.forRoot(
options.db.connection_uri,
options.db.options
)
);
} else {
throw new Error("Invalid DB_TYPE in configuration");
}
if (options.feature_flag) {
imports.push(
UnleashModule.forRoot({
Expand All @@ -141,7 +98,57 @@ export class AppModule implements NestModule {
return {
module: AppModule,
global: true,
imports,
imports: [
...imports,
ConfigModule.forRoot({
load: [() => options || {}],
}),
ThrottlerModule.forRoot({
ttl: options.throttle.ttl,
limit: options.throttle.limit,
}),
UsersModule,
WikidataModule,
PersonalityModule.register(),
ClaimModule,
ClaimReviewModule,
ReviewTaskModule,
ClaimRevisionModule,
HistoryModule,
StateEventModule,
SourceModule,
SpeechModule,
ParagraphModule,
SentenceModule,
StatsModule,
ViewModule,
EmailModule,
SitemapModule,
OryModule,
ReportModule,
CaptchaModule,
TopicModule,
ImageModule,
SearchModule,
FileManagementModule,
DebateModule,
EditorModule,
BadgeModule,
EditorParseModule,
NotificationModule,
CommentModule,
NameSpaceModule,
AutomatedFactCheckingModule,
CopilotChatModule,
UnattributedModule,
DailyReportModule,
SummarizationCrawlerModule,
ChatbotModule,
VerificationRequestModule,
FeatureFlagModule,
GroupModule,
HomeModule, // Home module must be the last imported module because it contains the root endpoint, may causing some endpoints to be confused as namespace parameters
],
controllers: [RootController],
providers: [
{
Expand Down
2 changes: 1 addition & 1 deletion server/claim-review/dto/create-claim-review.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
IsOptional,
IsString,
} from "class-validator";
import { Personality } from "../../personality/schemas/personality.schema";
import { Personality } from "../../personality/mongo/schemas/personality.schema";
import { Claim } from "../../claim/schemas/claim.schema";
import { ApiProperty } from "@nestjs/swagger";

Expand Down
2 changes: 1 addition & 1 deletion server/claim-review/schemas/claim-review.schema.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import { Personality } from "../../personality/schemas/personality.schema";
import { Personality } from "../../personality/mongo/schemas/personality.schema";
import * as mongoose from "mongoose";
import { Claim } from "../../claim/schemas/claim.schema";
import { softDeletePlugin } from "mongoose-softdelete-typescript";
Expand Down
16 changes: 10 additions & 6 deletions server/claim/claim-revision/claim-revision.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ import {
import { ContentModelEnum } from "../../types/enums";
import { ImageService } from "../types/image/image.service";
import { DebateService } from "../types/debate/debate.service";
import { FindAllOptions } from "../../personality/personality.service";
import { UtilService } from "../../util";
import { IFindAllOptions } from "../../interfaces/personality.interface";

@Injectable()
export class ClaimRevisionService {
Expand Down Expand Up @@ -84,9 +84,9 @@ export class ClaimRevisionService {
async findAll({
searchText,
pageSize,
skipedDocuments,
skippedDocuments,
nameSpace,
}: FindAllOptions) {
}: IFindAllOptions) {
const aggregationPipeline = [
{
$search: {
Expand Down Expand Up @@ -131,7 +131,7 @@ export class ClaimRevisionService {
$facet: {
rows: [
{
$skip: skipedDocuments || 0,
$skip: skippedDocuments || 0,
},
{
$limit: pageSize,
Expand Down Expand Up @@ -204,9 +204,13 @@ export class ClaimRevisionService {
if (sources && Array.isArray(sources)) {
for (let source of sources) {
try {
const existingSources = await this.sourceService.getSourceByHref(source);
const existingSources =
await this.sourceService.getSourceByHref(source);
if (existingSources) {
this.sourceService.updateTargetId(existingSources._id, claimId)
this.sourceService.updateTargetId(
existingSources._id,
claimId
);
} else {
await this.sourceService.create({
href: source,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import * as mongoose from "mongoose";
import { Claim } from "../../schemas/claim.schema";
import { Personality } from "../../../personality/schemas/personality.schema";
import { Personality } from "../../../personality/mongo/schemas/personality.schema";
import { ContentModelEnum } from "../../../types/enums";

export type ClaimRevisionDocument = ClaimRevision & mongoose.Document;
Expand Down
6 changes: 4 additions & 2 deletions server/claim/claim.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ import {
Res,
Header,
UseGuards,
Inject,
} from "@nestjs/common";
import { ClaimReviewService } from "../claim-review/claim-review.service";
import { ClaimService } from "./claim.service";
import { ConfigService } from "@nestjs/config";
import type { Request, Response } from "express";
import { parse } from "url";
import { PersonalityService } from "../personality/personality.service";
import { ViewService } from "../view/view.service";
import * as mongoose from "mongoose";
import { CreateClaimDTO } from "./dto/create-claim.dto";
Expand All @@ -37,6 +37,7 @@ import { ImageService } from "./types/image/image.service";
import { ImageDocument } from "./types/image/schemas/image.schema";
import { CreateDebateClaimDTO } from "./dto/create-debate-claim.dto";
import { AbilitiesGuard } from "../auth/ability/abilities.guard";
import type { IPersonalityService } from "../interfaces/personality.service.interface";
import {
AdminUserAbility,
CheckAbilities,
Expand All @@ -60,7 +61,8 @@ export class ClaimController {
constructor(
private claimReviewService: ClaimReviewService,
private reviewTaskService: ReviewTaskService,
private personalityService: PersonalityService,
@Inject("PersonalityService")
private readonly personalityService: IPersonalityService,
private claimService: ClaimService,
private sentenceService: SentenceService,
private configService: ConfigService,
Expand Down
2 changes: 1 addition & 1 deletion server/claim/claim.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const ClaimModel = MongooseModule.forFeature([
ClaimRevisionModule,
SentenceModule,
ParserModule,
PersonalityModule,
PersonalityModule.register(),
HistoryModule,
StateEventModule,
ConfigModule,
Expand Down
2 changes: 1 addition & 1 deletion server/claim/dto/create-claim.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
IsOptional,
} from "class-validator";
import { ContentModelEnum } from "../../types/enums";
import { Personality } from "../../personality/schemas/personality.schema";
import { Personality } from "../../personality/mongo/schemas/personality.schema";
import { ApiProperty } from "@nestjs/swagger";
import { Group } from "../../group/schemas/group.schema";

Expand Down
2 changes: 1 addition & 1 deletion server/claim/dto/create-debate-claim.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
ArrayMinSize,
} from "class-validator";
import { ContentModelEnum } from "../../types/enums";
import { Personality } from "../../personality/schemas/personality.schema";
import { Personality } from "../../personality/mongo/schemas/personality.schema";
import { ApiProperty } from "@nestjs/swagger";

export class CreateDebateClaimDTO {
Expand Down
2 changes: 1 addition & 1 deletion server/claim/dto/update-debate.dto.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { IsBoolean, IsString } from "class-validator";
import { Personality } from "../../personality/schemas/personality.schema";
import { Personality } from "../../personality/mongo/schemas/personality.schema";
import { ApiProperty } from "@nestjs/swagger";

export class UpdateDebateDto {
Expand Down
2 changes: 1 addition & 1 deletion server/claim/schemas/claim.schema.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import * as mongoose from "mongoose";
import { Personality } from "../../personality/schemas/personality.schema";
import { Personality } from "../../personality/mongo/schemas/personality.schema";
import { ClaimRevision } from "../claim-revision/schema/claim-revision.schema";
import { softDeletePlugin } from "mongoose-softdelete-typescript";
import { NameSpaceEnum } from "../../auth/name-space/schemas/name-space.schema";
Expand Down
6 changes: 3 additions & 3 deletions server/claim/types/sentence/sentence.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ interface FindAllOptionsFilters {
searchText: string;
pageSize: number;
language?: string;
skipedDocuments?: number;
skippedDocuments?: number;
filter?: string | string[];
nameSpace?: string;
}
Expand Down Expand Up @@ -55,7 +55,7 @@ export class SentenceService {
async findAll({
searchText,
pageSize,
skipedDocuments,
skippedDocuments,
filter,
nameSpace,
}: FindAllOptionsFilters) {
Expand Down Expand Up @@ -140,7 +140,7 @@ export class SentenceService {
$facet: {
rows: [
{
$skip: skipedDocuments || 0,
$skip: skippedDocuments || 0,
},
{
$limit: pageSize,
Expand Down
2 changes: 1 addition & 1 deletion server/claim/types/speech/schemas/speech.schema.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import * as mongoose from "mongoose";
import { Personality } from "../../../../personality/schemas/personality.schema";
import { Personality } from "../../../../personality/mongo/schemas/personality.schema";
import { Paragraph } from "../../paragraph/schemas/paragraph.schema";
import { ClaimRevision } from "../../../../claim/claim-revision/schema/claim-revision.schema";

Expand Down
6 changes: 6 additions & 0 deletions server/config/db.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { ConfigService } from "@nestjs/config";

// FIXME: Find a better way to inject configService directly into modules
export default {
type: new ConfigService().get<string>("db.type") || "mongodb",
};
15 changes: 12 additions & 3 deletions server/home/home.controller.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
import { Controller, Get, Header, Redirect, Req, Res } from "@nestjs/common";
import {
Controller,
Get,
Header,
Inject,
Redirect,
Req,
Res,
} from "@nestjs/common";
import { ViewService } from "../view/view.service";
import type { Response } from "express";
import { parse } from "url";
import { PersonalityService } from "../personality/personality.service";
import { StatsService } from "../stats/stats.service";
import { IsPublic } from "../auth/decorators/is-public.decorator";
import type { BaseRequest } from "../types";
Expand All @@ -11,12 +18,14 @@ import { ClaimRevisionService } from "../claim/claim-revision/claim-revision.ser
import { ApiTags } from "@nestjs/swagger";
import { ClaimReviewService } from "../claim-review/claim-review.service";
import { NameSpaceEnum } from "../auth/name-space/schemas/name-space.schema";
import type { IPersonalityService } from "../interfaces/personality.service.interface";

@Controller("/")
export class HomeController {
constructor(
private viewService: ViewService,
private personalityService: PersonalityService,
@Inject("PersonalityService")
private readonly personalityService: IPersonalityService,
private statsService: StatsService,
private debateService: DebateService,
private claimRevisionService: ClaimRevisionService,
Expand Down
2 changes: 1 addition & 1 deletion server/home/home.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { ClaimReviewModule } from "../claim-review/claim-review.module";

@Module({
imports: [
PersonalityModule,
PersonalityModule.register(),
StatsModule,
ViewModule,
DebateModule,
Expand Down
Loading
Loading