From 8a2246bccc544710820778812bb2e1c94d3242d5 Mon Sep 17 00:00:00 2001 From: Andy Espagnolo Date: Tue, 25 Jun 2024 15:06:19 -0300 Subject: [PATCH] refactor: remove back folder (#1869) --- src/{back => }/clients/BlockNative.ts | 6 +-- src/entities/Badges/storeBadgeSpec.ts | 2 +- src/entities/Project/types.ts | 6 +-- src/entities/Proposal/jobs.test.ts | 4 +- src/entities/Proposal/jobs.ts | 4 +- src/entities/Proposal/model.ts | 2 +- src/entities/Updates/model.test.ts | 4 +- src/{back => }/jobs/BadgeAirdrop.ts | 12 ++--- src/{back => }/jobs/PingSnapshot.ts | 2 +- .../jobs/UpdatesMissingForumPost.ts | 8 +-- src/{back => }/jobs/jobLocks.test.ts | 0 src/{back => }/jobs/jobLocks.ts | 0 ...1692114399675_create-airdrop-jobs-table.ts | 4 +- ...28726163_user-notification-config-table.ts | 2 +- .../1702322343224_create-events-table.ts | 2 +- .../1702576442869_create-financials-table.ts | 2 +- .../1703696214229_financial-optional-link.ts | 2 +- .../1705427899770_events-nullable-address.ts | 2 +- .../1706037450493_events-delegation-types.ts | 2 +- .../1715012697856_create-projects-table.ts | 2 +- .../1715019261618_create-personnel-table.ts | 4 +- ...5519126_create-project-milestones-table.ts | 4 +- ..._create-project-milestone-updates-table.ts | 4 +- .../1716383233795_milestone-delivery-date.ts | 2 +- ...716924746895_create-project-links-table.ts | 4 +- ...716925443361_remove-project-link-column.ts | 2 +- ..._add-project-id-column-to-updates-table.ts | 2 +- ...267_add-unique-constraint-project-table.ts | 2 +- src/{back => }/models/AirdropJob.ts | 0 src/{back => }/models/Event.ts | 2 +- src/{back => }/models/Financial.ts | 10 ++-- src/{back => }/models/Personnel.ts | 2 +- src/{back => }/models/Project.ts | 10 ++-- src/{back => }/models/ProjectLink.ts | 0 src/{back => }/models/ProjectMilestone.ts | 0 .../models/ProjectMilestoneUpdate.ts | 0 .../models/UserNotificationConfig.ts | 0 src/{back => }/routes/airdrop.ts | 0 src/{back => }/routes/badges.ts | 8 +-- src/{back => }/routes/bid.ts | 2 +- src/{back => }/routes/budget.ts | 10 ++-- src/{back => }/routes/coauthor.ts | 12 ++--- src/{back => }/routes/committee.ts | 2 +- src/{back => }/routes/common.ts | 0 src/{back => }/routes/debug.ts | 6 +-- src/{back => }/routes/events.ts | 0 src/{back => }/routes/newsletter.ts | 6 +-- src/{back => }/routes/notification.ts | 6 +-- src/{back => }/routes/project.ts | 6 +-- src/{back => }/routes/proposal.ts | 44 +++++++-------- src/{back => }/routes/sitemap.ts | 4 +- src/{back => }/routes/snapshot.ts | 10 ++-- src/{back => }/routes/subscription.ts | 4 +- src/{back => }/routes/surveyTopics.ts | 3 +- src/{back => }/routes/update.ts | 16 +++--- src/{back => }/routes/user.ts | 2 +- src/{back => }/routes/vestings.ts | 4 +- src/{back => }/routes/votes.ts | 20 +++---- src/{back => }/routes/webhooks.ts | 6 +-- src/server.ts | 54 +++++++++---------- src/services/BadgesService.test.ts | 2 +- src/services/BadgesService.ts | 22 ++++---- src/services/DiscourseService.ts | 4 +- src/services/FinancialService.ts | 4 +- src/services/ProjectService.ts | 8 +-- src/services/ProposalService.ts | 10 ++-- src/{back => }/services/coauthor.ts | 8 +-- src/{back => }/services/discord.ts | 26 ++++----- src/{back => }/services/events.ts | 36 ++++++------- src/{back => }/services/notification.ts | 28 +++++----- src/{back => }/services/update.ts | 30 +++++------ src/{back => }/services/user.ts | 25 ++++----- src/{back => }/services/vote.test.ts | 8 +-- src/{back => }/services/vote.ts | 20 +++---- src/{back => }/types/AirdropJob.ts | 0 src/{back => }/types/BlockNative.ts | 0 .../utils/contractInteractions.test.ts | 0 src/{back => }/utils/contractInteractions.ts | 9 ++-- src/{back => }/utils/validations.test.ts | 2 +- src/{back => }/utils/validations.ts | 25 ++++----- 80 files changed, 303 insertions(+), 305 deletions(-) rename src/{back => }/clients/BlockNative.ts (86%) rename src/{back => }/jobs/BadgeAirdrop.ts (82%) rename src/{back => }/jobs/PingSnapshot.ts (50%) rename src/{back => }/jobs/UpdatesMissingForumPost.ts (67%) rename src/{back => }/jobs/jobLocks.test.ts (100%) rename src/{back => }/jobs/jobLocks.ts (100%) rename src/{back => }/models/AirdropJob.ts (100%) rename src/{back => }/models/Event.ts (96%) rename src/{back => }/models/Financial.ts (91%) rename src/{back => }/models/Personnel.ts (87%) rename src/{back => }/models/Project.ts (91%) rename src/{back => }/models/ProjectLink.ts (100%) rename src/{back => }/models/ProjectMilestone.ts (100%) rename src/{back => }/models/ProjectMilestoneUpdate.ts (100%) rename src/{back => }/models/UserNotificationConfig.ts (100%) rename src/{back => }/routes/airdrop.ts (100%) rename src/{back => }/routes/badges.ts (94%) rename src/{back => }/routes/bid.ts (93%) rename src/{back => }/routes/budget.ts (86%) rename src/{back => }/routes/coauthor.ts (90%) rename src/{back => }/routes/committee.ts (77%) rename src/{back => }/routes/common.ts (100%) rename src/{back => }/routes/debug.ts (92%) rename src/{back => }/routes/events.ts (100%) rename src/{back => }/routes/newsletter.ts (87%) rename src/{back => }/routes/notification.ts (94%) rename src/{back => }/routes/project.ts (97%) rename src/{back => }/routes/proposal.ts (94%) rename src/{back => }/routes/sitemap.ts (96%) rename src/{back => }/routes/snapshot.ts (90%) rename src/{back => }/routes/subscription.ts (93%) rename src/{back => }/routes/surveyTopics.ts (83%) rename src/{back => }/routes/update.ts (94%) rename src/{back => }/routes/user.ts (97%) rename src/{back => }/routes/vestings.ts (85%) rename src/{back => }/routes/votes.ts (86%) rename src/{back => }/routes/webhooks.ts (89%) rename src/{back => }/services/coauthor.ts (66%) rename src/{back => }/services/discord.ts (93%) rename src/{back => }/services/events.ts (92%) rename src/{back => }/services/notification.ts (96%) rename src/{back => }/services/update.ts (90%) rename src/{back => }/services/user.ts (92%) rename src/{back => }/services/vote.test.ts (96%) rename src/{back => }/services/vote.ts (85%) rename src/{back => }/types/AirdropJob.ts (100%) rename src/{back => }/types/BlockNative.ts (100%) rename src/{back => }/utils/contractInteractions.test.ts (100%) rename src/{back => }/utils/contractInteractions.ts (97%) rename src/{back => }/utils/validations.test.ts (98%) rename src/{back => }/utils/validations.ts (91%) diff --git a/src/back/clients/BlockNative.ts b/src/clients/BlockNative.ts similarity index 86% rename from src/back/clients/BlockNative.ts rename to src/clients/BlockNative.ts index 27703eac4..a7d70acf4 100644 --- a/src/back/clients/BlockNative.ts +++ b/src/clients/BlockNative.ts @@ -1,10 +1,10 @@ import { ethers } from 'ethers' import fetch from 'isomorphic-fetch' -import { PolygonGasData } from '../../entities/Badges/types' -import { ErrorService } from '../../services/ErrorService' -import { ErrorCategory } from '../../utils/errorCategories' +import { PolygonGasData } from '../entities/Badges/types' +import { ErrorService } from '../services/ErrorService' import { BlockNativeResponse } from '../types/BlockNative' +import { ErrorCategory } from '../utils/errorCategories' export class BlockNative { static async getPolygonGasData(): Promise { diff --git a/src/entities/Badges/storeBadgeSpec.ts b/src/entities/Badges/storeBadgeSpec.ts index c7c7f830f..a49092bca 100644 --- a/src/entities/Badges/storeBadgeSpec.ts +++ b/src/entities/Badges/storeBadgeSpec.ts @@ -1,13 +1,13 @@ import { ethers } from 'ethers' import { NFTStorage } from 'nft.storage' -import { getIpfsAddress } from '../../back/utils/contractInteractions' import { NFT_STORAGE_API_KEY, POLYGON_RAFTS_CONTRACT_ADDRESS, RAFT_OWNER_PK, TRIMMED_OTTERSPACE_RAFT_ID, } from '../../constants' +import { getIpfsAddress } from '../../utils/contractInteractions' import { toIsoStringDate } from '../../utils/date/toIsoString' import logger from '../../utils/logger' diff --git a/src/entities/Project/types.ts b/src/entities/Project/types.ts index 40569c5cf..d66ee1edd 100644 --- a/src/entities/Project/types.ts +++ b/src/entities/Project/types.ts @@ -1,9 +1,9 @@ import isEthereumAddress from 'validator/lib/isEthereumAddress' import { ZodSchema, z } from 'zod' -import { PersonnelAttributes } from '../../back/models/Personnel' -import { ProjectLink } from '../../back/models/ProjectLink' -import { ProjectMilestone } from '../../back/models/ProjectMilestone' +import { PersonnelAttributes } from '../../models/Personnel' +import { ProjectLink } from '../../models/ProjectLink' +import { ProjectMilestone } from '../../models/ProjectMilestone' const addressCheck = (data: string) => !data || (!!data && isEthereumAddress(data)) diff --git a/src/entities/Proposal/jobs.test.ts b/src/entities/Proposal/jobs.test.ts index 59b431b08..a8b359f02 100644 --- a/src/entities/Proposal/jobs.test.ts +++ b/src/entities/Proposal/jobs.test.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { cloneDeep } from 'lodash' -import { DiscordService } from '../../back/services/discord' -import { NotificationService } from '../../back/services/notification' import { BudgetService } from '../../services/BudgetService' import { DiscourseService } from '../../services/DiscourseService' +import { DiscordService } from '../../services/discord' +import { NotificationService } from '../../services/notification' import Time from '../../utils/date/Time' import logger from '../../utils/logger' import CoauthorModel from '../Coauthor/model' diff --git a/src/entities/Proposal/jobs.ts b/src/entities/Proposal/jobs.ts index 5144a2868..42f2bd36d 100644 --- a/src/entities/Proposal/jobs.ts +++ b/src/entities/Proposal/jobs.ts @@ -2,8 +2,6 @@ import JobContext from 'decentraland-gatsby/dist/entities/Job/context' import snakeCase from 'lodash/snakeCase' import { Pool } from 'pg' -import { DiscordService } from '../../back/services/discord' -import { NotificationService } from '../../back/services/notification' import { BadgesService } from '../../services/BadgesService' import BidService from '../../services/BidService' import { BudgetService } from '../../services/BudgetService' @@ -11,6 +9,8 @@ import { DiscourseService } from '../../services/DiscourseService' import { ErrorService } from '../../services/ErrorService' import { ProjectService } from '../../services/ProjectService' import { ProposalService } from '../../services/ProposalService' +import { DiscordService } from '../../services/discord' +import { NotificationService } from '../../services/notification' import { ErrorCategory } from '../../utils/errorCategories' import { isProdEnv } from '../../utils/governanceEnvs' import logger from '../../utils/logger' diff --git a/src/entities/Proposal/model.ts b/src/entities/Proposal/model.ts index 5f1ee4fa1..2a40ce6d7 100644 --- a/src/entities/Proposal/model.ts +++ b/src/entities/Proposal/model.ts @@ -15,7 +15,7 @@ import { toLower } from 'lodash' import isEthereumAddress from 'validator/lib/isEthereumAddress' import isUUID from 'validator/lib/isUUID' -import ProjectModel from '../../back/models/Project' +import ProjectModel from '../../models/Project' import Time from '../../utils/date/Time' import { UnpublishedBidStatus } from '../Bid/types' import CoauthorModel from '../Coauthor/model' diff --git a/src/entities/Updates/model.test.ts b/src/entities/Updates/model.test.ts index 063f05ee9..3dd6ac642 100644 --- a/src/entities/Updates/model.test.ts +++ b/src/entities/Updates/model.test.ts @@ -1,10 +1,10 @@ import crypto from 'crypto' -import { Project } from '../../back/models/Project' -import { UpdateService } from '../../back/services/update' import * as VestingUtils from '../../clients/VestingData' import { VestingWithLogs } from '../../clients/VestingData' +import { Project } from '../../models/Project' import { ProjectService } from '../../services/ProjectService' +import { UpdateService } from '../../services/update' import Time from '../../utils/date/Time' import { getMonthsBetweenDates } from '../../utils/date/getMonthsBetweenDates' import { ProjectStatus } from '../Grant/types' diff --git a/src/back/jobs/BadgeAirdrop.ts b/src/jobs/BadgeAirdrop.ts similarity index 82% rename from src/back/jobs/BadgeAirdrop.ts rename to src/jobs/BadgeAirdrop.ts index 28bf1fece..732876b6b 100644 --- a/src/back/jobs/BadgeAirdrop.ts +++ b/src/jobs/BadgeAirdrop.ts @@ -1,11 +1,11 @@ -import { ActionStatus } from '../../entities/Badges/types' -import { BadgesService } from '../../services/BadgesService' -import { ErrorService } from '../../services/ErrorService' -import { ErrorCategory } from '../../utils/errorCategories' -import { isProdEnv } from '../../utils/governanceEnvs' -import logger from '../../utils/logger' +import { ActionStatus } from '../entities/Badges/types' import AirdropJobModel, { AirdropJobAttributes } from '../models/AirdropJob' +import { BadgesService } from '../services/BadgesService' +import { ErrorService } from '../services/ErrorService' import { AirdropJobStatus } from '../types/AirdropJob' +import { ErrorCategory } from '../utils/errorCategories' +import { isProdEnv } from '../utils/governanceEnvs' +import logger from '../utils/logger' export async function runQueuedAirdropJobs() { const pendingJobs = await AirdropJobModel.getPending() diff --git a/src/back/jobs/PingSnapshot.ts b/src/jobs/PingSnapshot.ts similarity index 50% rename from src/back/jobs/PingSnapshot.ts rename to src/jobs/PingSnapshot.ts index bf2820285..0106111ea 100644 --- a/src/back/jobs/PingSnapshot.ts +++ b/src/jobs/PingSnapshot.ts @@ -1,4 +1,4 @@ -import { SnapshotStatusService } from '../../services/SnapshotStatusService' +import { SnapshotStatusService } from '../services/SnapshotStatusService' export async function pingSnapshot() { await SnapshotStatusService.ping() diff --git a/src/back/jobs/UpdatesMissingForumPost.ts b/src/jobs/UpdatesMissingForumPost.ts similarity index 67% rename from src/back/jobs/UpdatesMissingForumPost.ts rename to src/jobs/UpdatesMissingForumPost.ts index a5c6baf5b..72a66c77a 100644 --- a/src/back/jobs/UpdatesMissingForumPost.ts +++ b/src/jobs/UpdatesMissingForumPost.ts @@ -1,7 +1,7 @@ -import UpdateModel from '../../entities/Updates/model' -import { DiscourseService } from '../../services/DiscourseService' -import { ProposalService } from '../../services/ProposalService' -import logger from '../../utils/logger' +import UpdateModel from '../entities/Updates/model' +import { DiscourseService } from '../services/DiscourseService' +import { ProposalService } from '../services/ProposalService' +import logger from '../utils/logger' export async function restoreMissingUpdatesForumPost() { const affectedUpdates = await UpdateModel.getUpdatesWithoutForumPost() diff --git a/src/back/jobs/jobLocks.test.ts b/src/jobs/jobLocks.test.ts similarity index 100% rename from src/back/jobs/jobLocks.test.ts rename to src/jobs/jobLocks.test.ts diff --git a/src/back/jobs/jobLocks.ts b/src/jobs/jobLocks.ts similarity index 100% rename from src/back/jobs/jobLocks.ts rename to src/jobs/jobLocks.ts diff --git a/src/migrations/1692114399675_create-airdrop-jobs-table.ts b/src/migrations/1692114399675_create-airdrop-jobs-table.ts index 3ea5113ea..61f66d1d2 100644 --- a/src/migrations/1692114399675_create-airdrop-jobs-table.ts +++ b/src/migrations/1692114399675_create-airdrop-jobs-table.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { ColumnDefinitions, MigrationBuilder } from "node-pg-migrate" -import AirdropJobModel from "../back/models/AirdropJob" -import { AirdropJobStatus } from "../back/types/AirdropJob" +import AirdropJobModel from "../models/AirdropJob" +import { AirdropJobStatus } from "../types/AirdropJob" export const shorthands: ColumnDefinitions | undefined = undefined diff --git a/src/migrations/1696628726163_user-notification-config-table.ts b/src/migrations/1696628726163_user-notification-config-table.ts index db11544c8..0f39a276d 100644 --- a/src/migrations/1696628726163_user-notification-config-table.ts +++ b/src/migrations/1696628726163_user-notification-config-table.ts @@ -1,6 +1,6 @@ import { MigrationBuilder } from 'node-pg-migrate' -import Model from '../back/models/UserNotificationConfig' +import Model from '../models/UserNotificationConfig' export async function up(pgm: MigrationBuilder): Promise { pgm.createTable(Model.tableName, { diff --git a/src/migrations/1702322343224_create-events-table.ts b/src/migrations/1702322343224_create-events-table.ts index 0fdbdb78c..c6167c7a0 100644 --- a/src/migrations/1702322343224_create-events-table.ts +++ b/src/migrations/1702322343224_create-events-table.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { ColumnDefinitions, MigrationBuilder } from "node-pg-migrate" -import EventModel from "../back/models/Event" +import EventModel from "../models/Event" import { EventType } from "../shared/types/events" export const shorthands: ColumnDefinitions | undefined = undefined diff --git a/src/migrations/1702576442869_create-financials-table.ts b/src/migrations/1702576442869_create-financials-table.ts index d0d5f9965..94ddd1b0b 100644 --- a/src/migrations/1702576442869_create-financials-table.ts +++ b/src/migrations/1702576442869_create-financials-table.ts @@ -1,5 +1,5 @@ import { ColumnDefinitions, MigrationBuilder } from "node-pg-migrate" -import Model from "../back/models/Financial" +import Model from "../models/Financial" import UpdateModel from "../entities/Updates/model" import { FinancialRecordCateogry } from "../entities/Updates/types" diff --git a/src/migrations/1703696214229_financial-optional-link.ts b/src/migrations/1703696214229_financial-optional-link.ts index 6c8f20ec2..beed18201 100644 --- a/src/migrations/1703696214229_financial-optional-link.ts +++ b/src/migrations/1703696214229_financial-optional-link.ts @@ -1,5 +1,5 @@ import { MigrationBuilder } from "node-pg-migrate" -import Model from "../back/models/Financial" +import Model from "../models/Financial" export async function up(pgm: MigrationBuilder): Promise { diff --git a/src/migrations/1705427899770_events-nullable-address.ts b/src/migrations/1705427899770_events-nullable-address.ts index d81f4d1fa..43d74e3b8 100644 --- a/src/migrations/1705427899770_events-nullable-address.ts +++ b/src/migrations/1705427899770_events-nullable-address.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { ColumnDefinitions, MigrationBuilder } from "node-pg-migrate" -import EventModel from "../back/models/Event" +import EventModel from "../models/Event" export const shorthands: ColumnDefinitions | undefined = undefined diff --git a/src/migrations/1706037450493_events-delegation-types.ts b/src/migrations/1706037450493_events-delegation-types.ts index 947e08587..06ef32788 100644 --- a/src/migrations/1706037450493_events-delegation-types.ts +++ b/src/migrations/1706037450493_events-delegation-types.ts @@ -1,5 +1,5 @@ import { ColumnDefinitions, MigrationBuilder } from "node-pg-migrate" -import EventModel from "../back/models/Event" +import EventModel from "../models/Event" import { EventType } from "../shared/types/events" import { EVENT_TYPE } from "./1702322343224_create-events-table" diff --git a/src/migrations/1715012697856_create-projects-table.ts b/src/migrations/1715012697856_create-projects-table.ts index d56c95e5e..519ef92c7 100644 --- a/src/migrations/1715012697856_create-projects-table.ts +++ b/src/migrations/1715012697856_create-projects-table.ts @@ -1,6 +1,6 @@ import { MigrationBuilder } from 'node-pg-migrate' -import Model from '../back/models/Project' +import Model from '../models/Project' import { ProjectStatus } from "../entities/Grant/types" import ProposalModel from "../entities/Proposal/model" diff --git a/src/migrations/1715019261618_create-personnel-table.ts b/src/migrations/1715019261618_create-personnel-table.ts index 4b35de831..86338ed7e 100644 --- a/src/migrations/1715019261618_create-personnel-table.ts +++ b/src/migrations/1715019261618_create-personnel-table.ts @@ -1,7 +1,7 @@ import { MigrationBuilder } from "node-pg-migrate" -import Model from "../back/models/Personnel" -import ProjectModel from "../back/models/Project" +import Model from "../models/Personnel" +import ProjectModel from "../models/Project" export async function up(pgm: MigrationBuilder): Promise { pgm.createTable(Model.tableName, { diff --git a/src/migrations/1715085519126_create-project-milestones-table.ts b/src/migrations/1715085519126_create-project-milestones-table.ts index 7d62adac1..884efff6f 100644 --- a/src/migrations/1715085519126_create-project-milestones-table.ts +++ b/src/migrations/1715085519126_create-project-milestones-table.ts @@ -1,6 +1,6 @@ import { MigrationBuilder } from "node-pg-migrate" -import ProjectModel from "../back/models/Project" -import Model, { ProjectMilestoneStatus } from "../back/models/ProjectMilestone" +import ProjectModel from "../models/Project" +import Model, { ProjectMilestoneStatus } from "../models/ProjectMilestone" const STATUS_TYPE = 'project_milestone_status_type' diff --git a/src/migrations/1715087554704_create-project-milestone-updates-table.ts b/src/migrations/1715087554704_create-project-milestone-updates-table.ts index b069866c5..e6ee74f08 100644 --- a/src/migrations/1715087554704_create-project-milestone-updates-table.ts +++ b/src/migrations/1715087554704_create-project-milestone-updates-table.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { MigrationBuilder } from "node-pg-migrate" -import Model from "../back/models/ProjectMilestoneUpdate" -import ProjectMilestoneModel from "../back/models/ProjectMilestone" +import Model from "../models/ProjectMilestoneUpdate" +import ProjectMilestoneModel from "../models/ProjectMilestone" const LEGACY_TABLE_NAME = 'proposal_updates' diff --git a/src/migrations/1716383233795_milestone-delivery-date.ts b/src/migrations/1716383233795_milestone-delivery-date.ts index 90901ec3b..f0024bee1 100644 --- a/src/migrations/1716383233795_milestone-delivery-date.ts +++ b/src/migrations/1716383233795_milestone-delivery-date.ts @@ -1,6 +1,6 @@ import { ColumnDefinitions, MigrationBuilder } from 'node-pg-migrate' -import Model from '../back/models/ProjectMilestone' +import Model from '../models/ProjectMilestone' export const shorthands: ColumnDefinitions | undefined = undefined diff --git a/src/migrations/1716924746895_create-project-links-table.ts b/src/migrations/1716924746895_create-project-links-table.ts index b438f94f7..d4083cbd4 100644 --- a/src/migrations/1716924746895_create-project-links-table.ts +++ b/src/migrations/1716924746895_create-project-links-table.ts @@ -1,6 +1,6 @@ import { MigrationBuilder } from "node-pg-migrate" -import ProjectModel from "../back/models/Project" -import Model from "../back/models/ProjectLink" +import ProjectModel from "../models/Project" +import Model from "../models/ProjectLink" export async function up(pgm: MigrationBuilder): Promise { pgm.createTable(Model.tableName, { diff --git a/src/migrations/1716925443361_remove-project-link-column.ts b/src/migrations/1716925443361_remove-project-link-column.ts index 7591a3bfc..755deab2a 100644 --- a/src/migrations/1716925443361_remove-project-link-column.ts +++ b/src/migrations/1716925443361_remove-project-link-column.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { ColumnDefinitions, MigrationBuilder } from "node-pg-migrate" -import Model from "../back/models/Project" +import Model from "../models/Project" export const shorthands: ColumnDefinitions | undefined = undefined diff --git a/src/migrations/1717082952079_add-project-id-column-to-updates-table.ts b/src/migrations/1717082952079_add-project-id-column-to-updates-table.ts index eb455c92a..82dfc1629 100644 --- a/src/migrations/1717082952079_add-project-id-column-to-updates-table.ts +++ b/src/migrations/1717082952079_add-project-id-column-to-updates-table.ts @@ -1,6 +1,6 @@ import type { MigrationBuilder } from "node-pg-migrate" import UpdateModel from "../entities/Updates/model" -import ProjectModel from "../back/models/Project" +import ProjectModel from "../models/Project" export async function up(pgm: MigrationBuilder): Promise { pgm.addColumn(UpdateModel.tableName, { diff --git a/src/migrations/1717171439267_add-unique-constraint-project-table.ts b/src/migrations/1717171439267_add-unique-constraint-project-table.ts index f1d54aaa8..6d497c67a 100644 --- a/src/migrations/1717171439267_add-unique-constraint-project-table.ts +++ b/src/migrations/1717171439267_add-unique-constraint-project-table.ts @@ -1,5 +1,5 @@ import type { MigrationBuilder } from "node-pg-migrate" -import ProjectModel from "../back/models/Project" +import ProjectModel from "../models/Project" const constraintName = 'unique_proposal_id' diff --git a/src/back/models/AirdropJob.ts b/src/models/AirdropJob.ts similarity index 100% rename from src/back/models/AirdropJob.ts rename to src/models/AirdropJob.ts diff --git a/src/back/models/Event.ts b/src/models/Event.ts similarity index 96% rename from src/back/models/Event.ts rename to src/models/Event.ts index 213b48dbd..56feb535c 100644 --- a/src/back/models/Event.ts +++ b/src/models/Event.ts @@ -1,7 +1,7 @@ import { Model } from 'decentraland-gatsby/dist/entities/Database/model' import { SQL, conditional, join, table } from 'decentraland-gatsby/dist/entities/Database/utils' -import { Event, EventFilter, EventType } from '../../shared/types/events' +import { Event, EventFilter, EventType } from '../shared/types/events' const LATEST_EVENTS_LIMIT = 50 diff --git a/src/back/models/Financial.ts b/src/models/Financial.ts similarity index 91% rename from src/back/models/Financial.ts rename to src/models/Financial.ts index 99b1d23e0..373b04280 100644 --- a/src/back/models/Financial.ts +++ b/src/models/Financial.ts @@ -1,11 +1,11 @@ import { Model } from 'decentraland-gatsby/dist/entities/Database/model' import { SQL, join, table } from 'decentraland-gatsby/dist/entities/Database/utils' -import { NewGrantCategory } from '../../entities/Grant/types' -import ProposalModel from '../../entities/Proposal/model' -import { ProposalAttributes } from '../../entities/Proposal/types' -import UpdateModel from '../../entities/Updates/model' -import { FinancialRecord } from '../../entities/Updates/types' +import { NewGrantCategory } from '../entities/Grant/types' +import ProposalModel from '../entities/Proposal/model' +import { ProposalAttributes } from '../entities/Proposal/types' +import UpdateModel from '../entities/Updates/model' +import { FinancialRecord } from '../entities/Updates/types' export type FinancialAttributes = { id: number diff --git a/src/back/models/Personnel.ts b/src/models/Personnel.ts similarity index 87% rename from src/back/models/Personnel.ts rename to src/models/Personnel.ts index 872e5e446..ab7a7d20c 100644 --- a/src/back/models/Personnel.ts +++ b/src/models/Personnel.ts @@ -1,6 +1,6 @@ import { Model } from 'decentraland-gatsby/dist/entities/Database/model' -import { TeamMember } from '../../entities/Grant/types' +import { TeamMember } from '../entities/Grant/types' export type PersonnelAttributes = TeamMember & { id: string diff --git a/src/back/models/Project.ts b/src/models/Project.ts similarity index 91% rename from src/back/models/Project.ts rename to src/models/Project.ts index 40c98eece..3d5bfdfcb 100644 --- a/src/back/models/Project.ts +++ b/src/models/Project.ts @@ -3,11 +3,11 @@ import { SQL, table } from 'decentraland-gatsby/dist/entities/Database/utils' import isEthereumAddress from 'validator/lib/isEthereumAddress' import isUUID from 'validator/lib/isUUID' -import CoauthorModel from '../../entities/Coauthor/model' -import { CoauthorStatus } from '../../entities/Coauthor/types' -import { ProjectStatus } from '../../entities/Grant/types' -import ProposalModel from '../../entities/Proposal/model' -import { ProjectFunding } from '../../entities/Proposal/types' +import CoauthorModel from '../entities/Coauthor/model' +import { CoauthorStatus } from '../entities/Coauthor/types' +import { ProjectStatus } from '../entities/Grant/types' +import ProposalModel from '../entities/Proposal/model' +import { ProjectFunding } from '../entities/Proposal/types' import PersonnelModel, { PersonnelAttributes } from './Personnel' import ProjectLinkModel, { ProjectLink } from './ProjectLink' diff --git a/src/back/models/ProjectLink.ts b/src/models/ProjectLink.ts similarity index 100% rename from src/back/models/ProjectLink.ts rename to src/models/ProjectLink.ts diff --git a/src/back/models/ProjectMilestone.ts b/src/models/ProjectMilestone.ts similarity index 100% rename from src/back/models/ProjectMilestone.ts rename to src/models/ProjectMilestone.ts diff --git a/src/back/models/ProjectMilestoneUpdate.ts b/src/models/ProjectMilestoneUpdate.ts similarity index 100% rename from src/back/models/ProjectMilestoneUpdate.ts rename to src/models/ProjectMilestoneUpdate.ts diff --git a/src/back/models/UserNotificationConfig.ts b/src/models/UserNotificationConfig.ts similarity index 100% rename from src/back/models/UserNotificationConfig.ts rename to src/models/UserNotificationConfig.ts diff --git a/src/back/routes/airdrop.ts b/src/routes/airdrop.ts similarity index 100% rename from src/back/routes/airdrop.ts rename to src/routes/airdrop.ts diff --git a/src/back/routes/badges.ts b/src/routes/badges.ts similarity index 94% rename from src/back/routes/badges.ts rename to src/routes/badges.ts index 3042b465a..8196165de 100644 --- a/src/back/routes/badges.ts +++ b/src/routes/badges.ts @@ -4,7 +4,7 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import { storeBadgeSpec } from '../../entities/Badges/storeBadgeSpec' +import { storeBadgeSpec } from '../entities/Badges/storeBadgeSpec' import { ActionStatus, BadgeCreationResult, @@ -12,9 +12,9 @@ import { RevokeOrReinstateResult, UserBadges, toOtterspaceRevokeReason, -} from '../../entities/Badges/types' -import { BadgesService } from '../../services/BadgesService' -import CacheService, { TTL_24_HS } from '../../services/CacheService' +} from '../entities/Badges/types' +import { BadgesService } from '../services/BadgesService' +import CacheService, { TTL_24_HS } from '../services/CacheService' import { AirdropOutcome } from '../types/AirdropJob' import { createSpec } from '../utils/contractInteractions' import { diff --git a/src/back/routes/bid.ts b/src/routes/bid.ts similarity index 93% rename from src/back/routes/bid.ts rename to src/routes/bid.ts index 8f39edd85..dd56e75b5 100644 --- a/src/back/routes/bid.ts +++ b/src/routes/bid.ts @@ -3,7 +3,7 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import BidService from '../../services/BidService' +import BidService from '../services/BidService' export default routes((route) => { route.get('/bids/:tenderId/get-user-bid', auth({ optional: true }), handleAPI(getUserBid)) diff --git a/src/back/routes/budget.ts b/src/routes/budget.ts similarity index 86% rename from src/back/routes/budget.ts rename to src/routes/budget.ts index ed95b18ae..d6cfaea79 100644 --- a/src/back/routes/budget.ts +++ b/src/routes/budget.ts @@ -3,11 +3,11 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import { TransparencyBudget } from '../../clients/Transparency' -import { Budget, BudgetWithContestants, CategoryBudget } from '../../entities/Budget/types' -import { QuarterBudgetAttributes } from '../../entities/QuarterBudget/types' -import { toNewGrantCategory } from '../../entities/QuarterCategoryBudget/utils' -import { BudgetService } from '../../services/BudgetService' +import { TransparencyBudget } from '../clients/Transparency' +import { Budget, BudgetWithContestants, CategoryBudget } from '../entities/Budget/types' +import { QuarterBudgetAttributes } from '../entities/QuarterBudget/types' +import { toNewGrantCategory } from '../entities/QuarterCategoryBudget/utils' +import { BudgetService } from '../services/BudgetService' import { validateId } from '../utils/validations' export default routes((route) => { diff --git a/src/back/routes/coauthor.ts b/src/routes/coauthor.ts similarity index 90% rename from src/back/routes/coauthor.ts rename to src/routes/coauthor.ts index b003cc5bd..49d600144 100644 --- a/src/back/routes/coauthor.ts +++ b/src/routes/coauthor.ts @@ -6,18 +6,18 @@ import validate from 'decentraland-gatsby/dist/entities/Route/validate' import schema from 'decentraland-gatsby/dist/entities/Schema' import { Request } from 'express' -import CoauthorModel from '../../entities/Coauthor/model' +import CoauthorModel from '../entities/Coauthor/model' import { CoauthorAttributes, CoauthorStatus, UpdateStatus, toCoauthorStatusType, updateStatusScheme, -} from '../../entities/Coauthor/types' -import { isCoauthoringUpdatable } from '../../entities/Coauthor/utils' -import ProposalModel from '../../entities/Proposal/model' -import { ProposalAttributes } from '../../entities/Proposal/types' -import logger from '../../utils/logger' +} from '../entities/Coauthor/types' +import { isCoauthoringUpdatable } from '../entities/Coauthor/utils' +import ProposalModel from '../entities/Proposal/model' +import { ProposalAttributes } from '../entities/Proposal/types' +import logger from '../utils/logger' import { validateAddress } from '../utils/validations' export default routes((route) => { diff --git a/src/back/routes/committee.ts b/src/routes/committee.ts similarity index 77% rename from src/back/routes/committee.ts rename to src/routes/committee.ts index 54acec84f..cc3baa155 100644 --- a/src/back/routes/committee.ts +++ b/src/routes/committee.ts @@ -1,7 +1,7 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' -import { COMMITTEE_ADDRESSES } from '../../entities/Committee/isDAOCommittee' +import { COMMITTEE_ADDRESSES } from '../entities/Committee/isDAOCommittee' export default routes((router) => { return router.get( diff --git a/src/back/routes/common.ts b/src/routes/common.ts similarity index 100% rename from src/back/routes/common.ts rename to src/routes/common.ts diff --git a/src/back/routes/debug.ts b/src/routes/debug.ts similarity index 92% rename from src/back/routes/debug.ts rename to src/routes/debug.ts index 2fa72c507..044a2932f 100644 --- a/src/back/routes/debug.ts +++ b/src/routes/debug.ts @@ -2,11 +2,11 @@ import { WithAuth, auth } from 'decentraland-gatsby/dist/entities/Auth/middlewar import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' -import { DEBUG_ADDRESSES } from '../../constants' -import CacheService from '../../services/CacheService' -import { ErrorService } from '../../services/ErrorService' +import { DEBUG_ADDRESSES } from '../constants' import { giveAndRevokeLandOwnerBadges, giveTopVoterBadges, runQueuedAirdropJobs } from '../jobs/BadgeAirdrop' import { restoreMissingUpdatesForumPost } from '../jobs/UpdatesMissingForumPost' +import CacheService from '../services/CacheService' +import { ErrorService } from '../services/ErrorService' import { validateDebugAddress } from '../utils/validations' const FUNCTIONS_MAP: { [key: string]: () => Promise } = { diff --git a/src/back/routes/events.ts b/src/routes/events.ts similarity index 100% rename from src/back/routes/events.ts rename to src/routes/events.ts diff --git a/src/back/routes/newsletter.ts b/src/routes/newsletter.ts similarity index 87% rename from src/back/routes/newsletter.ts rename to src/routes/newsletter.ts index 8a2274727..22bd487ef 100644 --- a/src/back/routes/newsletter.ts +++ b/src/routes/newsletter.ts @@ -5,9 +5,9 @@ import { Request } from 'express' import fetch from 'isomorphic-fetch' import isEmail from 'validator/lib/isEmail' -import { ErrorService } from '../../services/ErrorService' -import { NewsletterSubscriptionResult } from '../../shared/types/newsletter' -import { ErrorCategory } from '../../utils/errorCategories' +import { ErrorService } from '../services/ErrorService' +import { NewsletterSubscriptionResult } from '../shared/types/newsletter' +import { ErrorCategory } from '../utils/errorCategories' export default routes((router) => { router.post('/newsletter-subscribe', handleAPI(handleSubscription)) diff --git a/src/back/routes/notification.ts b/src/routes/notification.ts similarity index 94% rename from src/back/routes/notification.ts rename to src/routes/notification.ts index 055d35a31..90f0d0be6 100644 --- a/src/back/routes/notification.ts +++ b/src/routes/notification.ts @@ -6,12 +6,12 @@ import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' import isArray from 'lodash/isArray' -import UserModel from '../../entities/User/model' -import { NotificationCustomType } from '../../shared/types/notifications' -import { NotificationType } from '../../utils/notifications' +import UserModel from '../entities/User/model' import UserNotificationConfigModel, { UserNotificationConfigAttributes } from '../models/UserNotificationConfig' import { DiscordService } from '../services/discord' import { NotificationService } from '../services/notification' +import { NotificationCustomType } from '../shared/types/notifications' +import { NotificationType } from '../utils/notifications' import { validateDebugAddress } from '../utils/validations' export default routes((router) => { diff --git a/src/back/routes/project.ts b/src/routes/project.ts similarity index 97% rename from src/back/routes/project.ts rename to src/routes/project.ts index 6060c73fa..5f0b223f3 100644 --- a/src/back/routes/project.ts +++ b/src/routes/project.ts @@ -8,12 +8,12 @@ import { PersonnelInCreationSchema, ProjectLinkInCreationSchema, ProjectMilestoneInCreationSchema, -} from '../../entities/Project/types' -import CacheService, { TTL_1_HS } from '../../services/CacheService' -import { ProjectService } from '../../services/ProjectService' +} from '../entities/Project/types' import PersonnelModel, { PersonnelAttributes } from '../models/Personnel' import ProjectLinkModel, { ProjectLink } from '../models/ProjectLink' import ProjectMilestoneModel, { ProjectMilestone } from '../models/ProjectMilestone' +import CacheService, { TTL_1_HS } from '../services/CacheService' +import { ProjectService } from '../services/ProjectService' import { isValidDate, validateCanEditProject, validateId } from '../utils/validations' export default routes((route) => { diff --git a/src/back/routes/proposal.ts b/src/routes/proposal.ts similarity index 94% rename from src/back/routes/proposal.ts rename to src/routes/proposal.ts index be5ce27ea..04a57ed9e 100644 --- a/src/back/routes/proposal.ts +++ b/src/routes/proposal.ts @@ -8,12 +8,12 @@ import { Request } from 'express' import isEthereumAddress from 'validator/lib/isEthereumAddress' import isUUID from 'validator/lib/isUUID' -import { SnapshotGraphql } from '../../clients/SnapshotGraphql' -import { BidRequest, BidRequestSchema } from '../../entities/Bid/types' -import CoauthorModel from '../../entities/Coauthor/model' -import { CoauthorStatus } from '../../entities/Coauthor/types' -import { hasOpenSlots } from '../../entities/Committee/utils' -import { GrantRequest, getGrantRequestSchema, toGrantSubtype } from '../../entities/Grant/types' +import { SnapshotGraphql } from '../clients/SnapshotGraphql' +import { BidRequest, BidRequestSchema } from '../entities/Bid/types' +import CoauthorModel from '../entities/Coauthor/model' +import { CoauthorStatus } from '../entities/Coauthor/types' +import { hasOpenSlots } from '../entities/Committee/utils' +import { GrantRequest, getGrantRequestSchema, toGrantSubtype } from '../entities/Grant/types' import { SUBMISSION_THRESHOLD_DRAFT, SUBMISSION_THRESHOLD_GOVERNANCE, @@ -22,8 +22,8 @@ import { SUBMISSION_THRESHOLD_PITCH, SUBMISSION_THRESHOLD_POLL, SUBMISSION_THRESHOLD_TENDER, -} from '../../entities/Proposal/constants' -import ProposalModel from '../../entities/Proposal/model' +} from '../entities/Proposal/constants' +import ProposalModel from '../entities/Proposal/model' import { CatalystType, HiringType, @@ -56,7 +56,7 @@ import { newProposalPitchScheme, newProposalPollScheme, newProposalTenderScheme, -} from '../../entities/Proposal/types' +} from '../entities/Proposal/types' import { DEFAULT_CHOICES, MAX_PROPOSAL_LIMIT, @@ -73,19 +73,19 @@ import { toProposalStatus, toProposalType, toSortingOrder, -} from '../../entities/Proposal/utils' -import { SNAPSHOT_DURATION } from '../../entities/Snapshot/constants' -import { isSameAddress } from '../../entities/Snapshot/utils' -import BidService from '../../services/BidService' -import { DiscourseService } from '../../services/DiscourseService' -import { ErrorService } from '../../services/ErrorService' -import { ProjectService } from '../../services/ProjectService' -import { ProposalInCreation, ProposalService } from '../../services/ProposalService' -import { getProfile } from '../../utils/Catalyst' -import Time from '../../utils/date/Time' -import { ErrorCategory } from '../../utils/errorCategories' -import { isProdEnv } from '../../utils/governanceEnvs' -import logger from '../../utils/logger' +} from '../entities/Proposal/utils' +import { SNAPSHOT_DURATION } from '../entities/Snapshot/constants' +import { isSameAddress } from '../entities/Snapshot/utils' +import BidService from '../services/BidService' +import { DiscourseService } from '../services/DiscourseService' +import { ErrorService } from '../services/ErrorService' +import { ProjectService } from '../services/ProjectService' +import { ProposalInCreation, ProposalService } from '../services/ProposalService' +import { getProfile } from '../utils/Catalyst' +import Time from '../utils/date/Time' +import { ErrorCategory } from '../utils/errorCategories' +import { isProdEnv } from '../utils/governanceEnvs' +import logger from '../utils/logger' import { validateAddress, validateId, validateIsDaoCommittee, validateStatusUpdate } from '../utils/validations' export default routes((route) => { diff --git a/src/back/routes/sitemap.ts b/src/routes/sitemap.ts similarity index 96% rename from src/back/routes/sitemap.ts rename to src/routes/sitemap.ts index 92c0ee048..04c14019a 100644 --- a/src/back/routes/sitemap.ts +++ b/src/routes/sitemap.ts @@ -2,8 +2,8 @@ import { handleRaw } from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import ProposalModel from '../../entities/Proposal/model' -import { SITEMAP_ITEMS_PER_PAGE, governanceUrl, proposalUrl } from '../../entities/Proposal/utils' +import ProposalModel from '../entities/Proposal/model' +import { SITEMAP_ITEMS_PER_PAGE, governanceUrl, proposalUrl } from '../entities/Proposal/utils' export default routes((router) => { const routePrefix = '/governance' diff --git a/src/back/routes/snapshot.ts b/src/routes/snapshot.ts similarity index 90% rename from src/back/routes/snapshot.ts rename to src/routes/snapshot.ts index 090ab52de..d5114c6cf 100644 --- a/src/back/routes/snapshot.ts +++ b/src/routes/snapshot.ts @@ -3,11 +3,11 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import { SnapshotSubgraph } from '../../clients/SnapshotSubgraph' -import { SNAPSHOT_SPACE } from '../../entities/Snapshot/constants' -import { getDelegations as getSnapshotDelegations } from '../../entities/Snapshot/utils' -import { SnapshotService } from '../../services/SnapshotService' -import { SnapshotStatusService } from '../../services/SnapshotStatusService' +import { SnapshotSubgraph } from '../clients/SnapshotSubgraph' +import { SNAPSHOT_SPACE } from '../entities/Snapshot/constants' +import { getDelegations as getSnapshotDelegations } from '../entities/Snapshot/utils' +import { SnapshotService } from '../services/SnapshotService' +import { SnapshotStatusService } from '../services/SnapshotStatusService' import { validateAddress, validateAddresses, diff --git a/src/back/routes/subscription.ts b/src/routes/subscription.ts similarity index 93% rename from src/back/routes/subscription.ts rename to src/routes/subscription.ts index 85da0d31e..c7f018494 100644 --- a/src/back/routes/subscription.ts +++ b/src/routes/subscription.ts @@ -3,8 +3,8 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import SubscriptionModel from '../../entities/Subscription/model' -import { SubscriptionAttributes } from '../../entities/Subscription/types' +import SubscriptionModel from '../entities/Subscription/model' +import { SubscriptionAttributes } from '../entities/Subscription/types' import { getProposal } from './proposal' diff --git a/src/back/routes/surveyTopics.ts b/src/routes/surveyTopics.ts similarity index 83% rename from src/back/routes/surveyTopics.ts rename to src/routes/surveyTopics.ts index a2998090b..2cb805ce9 100644 --- a/src/back/routes/surveyTopics.ts +++ b/src/routes/surveyTopics.ts @@ -3,7 +3,7 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import { SurveyTopicsService } from '../../services/SurveyTopicsService' +import { SurveyTopicsService } from '../services/SurveyTopicsService' export default routes((route) => { route.get('/proposals/:proposal/survey-topics', handleAPI(getProposalSurveyTopics)) @@ -14,6 +14,7 @@ async function getProposalSurveyTopics(req: Request<{ proposal: string }>) { const id = req.params.proposal if (!id || id.length < 1) return [] return SurveyTopicsService.getProposalSurveyTopics(id) + // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (e: any) { throw new RequestError(e, RequestError.NotFound) } diff --git a/src/back/routes/update.ts b/src/routes/update.ts similarity index 94% rename from src/back/routes/update.ts rename to src/routes/update.ts index 6b381cf7d..291eed679 100644 --- a/src/back/routes/update.ts +++ b/src/routes/update.ts @@ -13,7 +13,7 @@ import { FinancialUpdateSectionSchema, GeneralUpdateSectionSchema, UpdateGeneralSection, -} from '../../entities/Updates/types' +} from '../entities/Updates/types' import { getCurrentUpdate, getFundsReleasedSinceLatestUpdate, @@ -22,15 +22,15 @@ import { getPendingUpdates, getPublicUpdates, getReleases, -} from '../../entities/Updates/utils' -import { DiscourseService } from '../../services/DiscourseService' -import { ErrorService } from '../../services/ErrorService' -import { FinancialService } from '../../services/FinancialService' -import { ProjectService } from '../../services/ProjectService' -import { VestingService } from '../../services/VestingService' -import { ErrorCategory } from '../../utils/errorCategories' +} from '../entities/Updates/utils' import type { Project } from '../models/Project' +import { DiscourseService } from '../services/DiscourseService' +import { ErrorService } from '../services/ErrorService' +import { FinancialService } from '../services/FinancialService' +import { ProjectService } from '../services/ProjectService' +import { VestingService } from '../services/VestingService' import { UpdateService } from '../services/update' +import { ErrorCategory } from '../utils/errorCategories' import { validateIsAuthorOrCoauthor } from '../utils/validations' export default routes((route) => { diff --git a/src/back/routes/user.ts b/src/routes/user.ts similarity index 97% rename from src/back/routes/user.ts rename to src/routes/user.ts index f0cace271..410e01ae3 100644 --- a/src/back/routes/user.ts +++ b/src/routes/user.ts @@ -3,7 +3,7 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import { validateAccountTypes } from '../../entities/User/utils' +import { validateAccountTypes } from '../entities/User/utils' import { UserService } from '../services/user' import { validateAddress } from '../utils/validations' diff --git a/src/back/routes/vestings.ts b/src/routes/vestings.ts similarity index 85% rename from src/back/routes/vestings.ts rename to src/routes/vestings.ts index a7ac22ddd..a80d25cdd 100644 --- a/src/back/routes/vestings.ts +++ b/src/routes/vestings.ts @@ -2,8 +2,8 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import { VestingWithLogs } from '../../clients/VestingData' -import { VestingService } from '../../services/VestingService' +import { VestingWithLogs } from '../clients/VestingData' +import { VestingService } from '../services/VestingService' import { validateAddress } from '../utils/validations' export default routes((router) => { diff --git a/src/back/routes/votes.ts b/src/routes/votes.ts similarity index 86% rename from src/back/routes/votes.ts rename to src/routes/votes.ts index 54be64176..55ddce6da 100644 --- a/src/back/routes/votes.ts +++ b/src/routes/votes.ts @@ -4,17 +4,17 @@ import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' import isNumber from 'lodash/isNumber' -import { SnapshotGraphql } from '../../clients/SnapshotGraphql' -import { SnapshotVote } from '../../clients/SnapshotTypes' -import ProposalModel from '../../entities/Proposal/model' -import { ProposalAttributes } from '../../entities/Proposal/types' -import VotesModel from '../../entities/Votes/model' -import { VoteAttributes, VotesForProposals } from '../../entities/Votes/types' -import { getVoteByAddress, toProposalIds } from '../../entities/Votes/utils' -import { ProposalService } from '../../services/ProposalService' -import { SnapshotService } from '../../services/SnapshotService' -import Time from '../../utils/date/Time' +import { SnapshotGraphql } from '../clients/SnapshotGraphql' +import { SnapshotVote } from '../clients/SnapshotTypes' +import ProposalModel from '../entities/Proposal/model' +import { ProposalAttributes } from '../entities/Proposal/types' +import VotesModel from '../entities/Votes/model' +import { VoteAttributes, VotesForProposals } from '../entities/Votes/types' +import { getVoteByAddress, toProposalIds } from '../entities/Votes/utils' +import { ProposalService } from '../services/ProposalService' +import { SnapshotService } from '../services/SnapshotService' import { VoteService } from '../services/vote' +import Time from '../utils/date/Time' import { validateAddress, validateId } from '../utils/validations' export default routes((route) => { diff --git a/src/back/routes/webhooks.ts b/src/routes/webhooks.ts similarity index 89% rename from src/back/routes/webhooks.ts rename to src/routes/webhooks.ts index 41627d9b4..d0543a7ea 100644 --- a/src/back/routes/webhooks.ts +++ b/src/routes/webhooks.ts @@ -3,10 +3,10 @@ import handleAPI from 'decentraland-gatsby/dist/entities/Route/handle' import routes from 'decentraland-gatsby/dist/entities/Route/routes' import { Request } from 'express' -import { ErrorService } from '../../services/ErrorService' -import { AlchemyBlock } from '../../shared/types/events' -import { ErrorCategory } from '../../utils/errorCategories' +import { ErrorService } from '../services/ErrorService' import { EventsService } from '../services/events' +import { AlchemyBlock } from '../shared/types/events' +import { ErrorCategory } from '../utils/errorCategories' import { validateAlchemyWebhookSignature, validateDiscourseWebhookSignature } from '../utils/validations' export default routes((route) => { diff --git a/src/server.ts b/src/server.ts index d1d313a1d..2dfad1e01 100644 --- a/src/server.ts +++ b/src/server.ts @@ -15,35 +15,35 @@ import { register } from 'prom-client' import swaggerUi from 'swagger-ui-express' import YAML from 'yaml' -import { giveAndRevokeLandOwnerBadges, giveTopVoterBadges, runQueuedAirdropJobs } from './back/jobs/BadgeAirdrop' -import { pingSnapshot } from './back/jobs/PingSnapshot' -import { withLock } from './back/jobs/jobLocks' -import airdrops from './back/routes/airdrop' -import badges from './back/routes/badges' -import bid from './back/routes/bid' -import budget from './back/routes/budget' -import coauthor from './back/routes/coauthor' -import committee from './back/routes/committee' -import common from './back/routes/common' -import debug from './back/routes/debug' -import events from './back/routes/events' -import newsletter from './back/routes/newsletter' -import notification from './back/routes/notification' -import project from './back/routes/project' -import proposal from './back/routes/proposal' -import sitemap from './back/routes/sitemap' -import snapshot from './back/routes/snapshot' -import subscription from './back/routes/subscription' -import proposalSurveyTopics from './back/routes/surveyTopics' -import update from './back/routes/update' -import users from './back/routes/user' -import vestings from './back/routes/vestings' -import score from './back/routes/votes' -import webhooks from './back/routes/webhooks' -import { DiscordService } from './back/services/discord' -import { EventsService } from './back/services/events' import { updateGovernanceBudgets } from './entities/Budget/jobs' import { activateProposals, finishProposal, publishBids } from './entities/Proposal/jobs' +import { giveAndRevokeLandOwnerBadges, giveTopVoterBadges, runQueuedAirdropJobs } from './jobs/BadgeAirdrop' +import { pingSnapshot } from './jobs/PingSnapshot' +import { withLock } from './jobs/jobLocks' +import airdrops from './routes/airdrop' +import badges from './routes/badges' +import bid from './routes/bid' +import budget from './routes/budget' +import coauthor from './routes/coauthor' +import committee from './routes/committee' +import common from './routes/common' +import debug from './routes/debug' +import events from './routes/events' +import newsletter from './routes/newsletter' +import notification from './routes/notification' +import project from './routes/project' +import proposal from './routes/proposal' +import sitemap from './routes/sitemap' +import snapshot from './routes/snapshot' +import subscription from './routes/subscription' +import proposalSurveyTopics from './routes/surveyTopics' +import update from './routes/update' +import users from './routes/user' +import vestings from './routes/vestings' +import score from './routes/votes' +import webhooks from './routes/webhooks' +import { DiscordService } from './services/discord' +import { EventsService } from './services/events' const jobs = manager() jobs.cron('@eachMinute', finishProposal) diff --git a/src/services/BadgesService.test.ts b/src/services/BadgesService.test.ts index e232f30b7..726dc903d 100644 --- a/src/services/BadgesService.test.ts +++ b/src/services/BadgesService.test.ts @@ -1,9 +1,9 @@ -import AirdropJobModel from '../back/models/AirdropJob' import * as BadgesUtils from '../entities/Badges/utils' import CoauthorModel from '../entities/Coauthor/model' import { createTestProposal } from '../entities/Proposal/testHelpers' import { ProposalStatus, ProposalType } from '../entities/Proposal/types' import { getChecksumAddress } from '../entities/Snapshot/utils' +import AirdropJobModel from '../models/AirdropJob' import { BadgesService } from './BadgesService' diff --git a/src/services/BadgesService.ts b/src/services/BadgesService.ts index d37965c19..72ed2ab5a 100644 --- a/src/services/BadgesService.ts +++ b/src/services/BadgesService.ts @@ -1,16 +1,5 @@ import crypto from 'crypto' -import AirdropJobModel from '../back/models/AirdropJob' -import { VoteService } from '../back/services/vote' -import { AirdropJobStatus, AirdropOutcome } from '../back/types/AirdropJob' -import { - airdropWithRetry, - createSpecWithRetry, - estimateGas, - getBadgesSignerAndContract, - reinstateBadge, - revokeBadge, -} from '../back/utils/contractInteractions' import { OtterspaceBadge, OtterspaceSubgraph } from '../clients/OtterspaceSubgraph' import { LAND_OWNER_BADGE_SPEC_CID, @@ -50,6 +39,17 @@ import { ProposalWithOutcome } from '../entities/Proposal/outcome' import { ProposalAttributes, ProposalStatus, ProposalType } from '../entities/Proposal/types' import { getChecksumAddress } from '../entities/Snapshot/utils' import { inBackground } from '../helpers' +import AirdropJobModel from '../models/AirdropJob' +import { VoteService } from '../services/vote' +import { AirdropJobStatus, AirdropOutcome } from '../types/AirdropJob' +import { + airdropWithRetry, + createSpecWithRetry, + estimateGas, + getBadgesSignerAndContract, + reinstateBadge, + revokeBadge, +} from '../utils/contractInteractions' import { ErrorCategory } from '../utils/errorCategories' import logger from '../utils/logger' diff --git a/src/services/DiscourseService.ts b/src/services/DiscourseService.ts index f5ce652a9..800712638 100644 --- a/src/services/DiscourseService.ts +++ b/src/services/DiscourseService.ts @@ -1,5 +1,3 @@ -import { UpdateService } from '../back/services/update' -import { VoteService } from '../back/services/vote' import { Discourse } from '../clients/Discourse' import { requiredEnv } from '../config' import ProposalModel from '../entities/Proposal/model' @@ -14,6 +12,8 @@ import { getPublicUpdates, getUpdateUrl } from '../entities/Updates/utils' import UserModel from '../entities/User/model' import { filterComments } from '../entities/User/utils' import { inBackground } from '../helpers' +import { UpdateService } from '../services/update' +import { VoteService } from '../services/vote' import { DiscourseComment, DiscourseNewPost, DiscoursePost, DiscoursePostInTopic } from '../shared/types/discourse' import { DclProfile } from '../utils/Catalyst/types' import { ErrorCategory } from '../utils/errorCategories' diff --git a/src/services/FinancialService.ts b/src/services/FinancialService.ts index 0bbd34f51..1469fd309 100644 --- a/src/services/FinancialService.ts +++ b/src/services/FinancialService.ts @@ -1,8 +1,8 @@ import RequestError from 'decentraland-gatsby/dist/entities/Route/error' -import { FinancialAttributes, FinancialAttributesExtended } from '../back/models/Financial' -import FinancialModel from '../back/models/Financial' import { FinancialRecord } from '../entities/Updates/types' +import { FinancialAttributes, FinancialAttributesExtended } from '../models/Financial' +import FinancialModel from '../models/Financial' import { ErrorCategory } from '../utils/errorCategories' import { ErrorService } from './ErrorService' diff --git a/src/services/ProjectService.ts b/src/services/ProjectService.ts index fa3bc4ed8..f7629556d 100644 --- a/src/services/ProjectService.ts +++ b/src/services/ProjectService.ts @@ -1,9 +1,5 @@ import crypto from 'crypto' -import PersonnelModel, { PersonnelAttributes } from '../back/models/Personnel' -import ProjectModel, { Project, ProjectAttributes } from '../back/models/Project' -import ProjectLinkModel, { ProjectLink } from '../back/models/ProjectLink' -import ProjectMilestoneModel, { ProjectMilestone, ProjectMilestoneStatus } from '../back/models/ProjectMilestone' import { TransparencyVesting } from '../clients/Transparency' import { getVestingWithLogs } from '../clients/VestingData' import UnpublishedBidModel from '../entities/Bid/model' @@ -26,6 +22,10 @@ import UpdateModel from '../entities/Updates/model' import { IndexedUpdate, UpdateAttributes } from '../entities/Updates/types' import { getPublicUpdates } from '../entities/Updates/utils' import { formatError, inBackground } from '../helpers' +import PersonnelModel, { PersonnelAttributes } from '../models/Personnel' +import ProjectModel, { Project, ProjectAttributes } from '../models/Project' +import ProjectLinkModel, { ProjectLink } from '../models/ProjectLink' +import ProjectMilestoneModel, { ProjectMilestone, ProjectMilestoneStatus } from '../models/ProjectMilestone' import Time from '../utils/date/Time' import { ErrorCategory } from '../utils/errorCategories' import { isProdEnv } from '../utils/governanceEnvs' diff --git a/src/services/ProposalService.ts b/src/services/ProposalService.ts index 263569ab0..cd529c617 100644 --- a/src/services/ProposalService.ts +++ b/src/services/ProposalService.ts @@ -2,11 +2,6 @@ import crypto from 'crypto' import { SQLStatement } from 'decentraland-gatsby/dist/entities/Database/utils' import RequestError from 'decentraland-gatsby/dist/entities/Route/error' -import { DiscordService } from '../back/services/discord' -import { EventsService } from '../back/services/events' -import { NotificationService } from '../back/services/notification' -import { UpdateService } from '../back/services/update' -import { validateId } from '../back/utils/validations' import { SnapshotProposalContent } from '../clients/SnapshotTypes' import UnpublishedBidModel from '../entities/Bid/model' import CoauthorModel from '../entities/Coauthor/model' @@ -26,9 +21,14 @@ import { isGrantProposalSubmitEnabled, isProjectProposal } from '../entities/Pro import { SNAPSHOT_SPACE } from '../entities/Snapshot/constants' import VotesModel from '../entities/Votes/model' import { getEnvironmentChainId } from '../helpers' +import { DiscordService } from '../services/discord' +import { EventsService } from '../services/events' +import { NotificationService } from '../services/notification' +import { UpdateService } from '../services/update' import { DiscoursePost } from '../shared/types/discourse' import { getProfile } from '../utils/Catalyst' import Time from '../utils/date/Time' +import { validateId } from '../utils/validations' import { DiscourseService } from './DiscourseService' import { ProjectService } from './ProjectService' diff --git a/src/back/services/coauthor.ts b/src/services/coauthor.ts similarity index 66% rename from src/back/services/coauthor.ts rename to src/services/coauthor.ts index a4bd5b6ab..a77526b2f 100644 --- a/src/back/services/coauthor.ts +++ b/src/services/coauthor.ts @@ -1,7 +1,7 @@ -import CoauthorModel from '../../entities/Coauthor/model' -import { CoauthorStatus } from '../../entities/Coauthor/types' -import { ProposalAttributes } from '../../entities/Proposal/types' -import { isSameAddress } from '../../entities/Snapshot/utils' +import CoauthorModel from '../entities/Coauthor/model' +import { CoauthorStatus } from '../entities/Coauthor/types' +import { ProposalAttributes } from '../entities/Proposal/types' +import { isSameAddress } from '../entities/Snapshot/utils' export class CoauthorService { static async getAllFromProposalId(proposalId: ProposalAttributes['id'], status?: CoauthorStatus) { diff --git a/src/back/services/discord.ts b/src/services/discord.ts similarity index 93% rename from src/back/services/discord.ts rename to src/services/discord.ts index 247a60a72..ea8a4e544 100644 --- a/src/back/services/discord.ts +++ b/src/services/discord.ts @@ -1,17 +1,17 @@ import type { Client, EmbedBuilder, Snowflake } from 'discord.js' -import { DISCORD_SERVICE_ENABLED } from '../../constants' -import { getProfileUrl } from '../../entities/Profile/utils' -import { ProposalWithOutcome } from '../../entities/Proposal/outcome' -import { ProposalStatus, ProposalType } from '../../entities/Proposal/types' -import { isGovernanceProcessProposal, proposalUrl } from '../../entities/Proposal/utils' -import { getPublicUpdates, getUpdateNumber, getUpdateUrl } from '../../entities/Updates/utils' -import UserModel from '../../entities/User/model' -import { getEnumDisplayName, inBackground } from '../../helpers' -import { ErrorService } from '../../services/ErrorService' -import { getProfile } from '../../utils/Catalyst' -import { ErrorCategory } from '../../utils/errorCategories' -import { isProdEnv } from '../../utils/governanceEnvs' +import { DISCORD_SERVICE_ENABLED } from '../constants' +import { getProfileUrl } from '../entities/Profile/utils' +import { ProposalWithOutcome } from '../entities/Proposal/outcome' +import { ProposalStatus, ProposalType } from '../entities/Proposal/types' +import { isGovernanceProcessProposal, proposalUrl } from '../entities/Proposal/utils' +import { getPublicUpdates, getUpdateNumber, getUpdateUrl } from '../entities/Updates/utils' +import UserModel from '../entities/User/model' +import { getEnumDisplayName, inBackground } from '../helpers' +import { ErrorService } from '../services/ErrorService' +import { getProfile } from '../utils/Catalyst' +import { ErrorCategory } from '../utils/errorCategories' +import { isProdEnv } from '../utils/governanceEnvs' import { UpdateService } from './update' @@ -51,7 +51,7 @@ type EmbedMessageProps = { function shortenText(text: string, maxLength: number) { if (text.length > maxLength) { - return text.substring(0, maxLength) + '...' + return text.substring(0, maxLength) + '' } return text } diff --git a/src/back/services/events.ts b/src/services/events.ts similarity index 92% rename from src/back/services/events.ts rename to src/services/events.ts index a6dd18d88..f9cbc7cdd 100644 --- a/src/back/services/events.ts +++ b/src/services/events.ts @@ -2,19 +2,20 @@ import crypto from 'crypto' import { ethers } from 'ethers' import isEthereumAddress from 'validator/lib/isEthereumAddress' -import ProposalModel from '../../entities/Proposal/model' -import { ProposalAttributes } from '../../entities/Proposal/types' -import { SNAPSHOT_SPACE } from '../../entities/Snapshot/constants' -import UpdateModel from '../../entities/Updates/model' -import { UpdateAttributes } from '../../entities/Updates/types' -import UserModel from '../../entities/User/model' -import { UserAttributes } from '../../entities/User/types' -import { DISCOURSE_USER } from '../../entities/User/utils' -import { addressShortener } from '../../helpers' -import CacheService, { TTL_1_HS } from '../../services/CacheService' -import { DiscourseService } from '../../services/DiscourseService' -import { ErrorService } from '../../services/ErrorService' -import { DiscourseWebhookPost } from '../../shared/types/discourse' +import ProposalModel from '../entities/Proposal/model' +import { ProposalAttributes } from '../entities/Proposal/types' +import { SNAPSHOT_SPACE } from '../entities/Snapshot/constants' +import UpdateModel from '../entities/Updates/model' +import { UpdateAttributes } from '../entities/Updates/types' +import UserModel from '../entities/User/model' +import { UserAttributes } from '../entities/User/types' +import { DISCOURSE_USER } from '../entities/User/utils' +import { addressShortener } from '../helpers' +import EventModel from '../models/Event' +import CacheService, { TTL_1_HS } from '../services/CacheService' +import { DiscourseService } from '../services/DiscourseService' +import { ErrorService } from '../services/ErrorService' +import { DiscourseWebhookPost } from '../shared/types/discourse' import { ActivityTickerEvent, AlchemyBlock, @@ -28,11 +29,10 @@ import { ProposalCreatedEvent, UpdateCreatedEvent, VotedEvent, -} from '../../shared/types/events' -import { DEFAULT_AVATAR_IMAGE, getProfiles } from '../../utils/Catalyst' -import { DclProfile } from '../../utils/Catalyst/types' -import { ErrorCategory } from '../../utils/errorCategories' -import EventModel from '../models/Event' +} from '../shared/types/events' +import { DEFAULT_AVATAR_IMAGE, getProfiles } from '../utils/Catalyst' +import { DclProfile } from '../utils/Catalyst/types' +import { ErrorCategory } from '../utils/errorCategories' import { NotificationService } from './notification' diff --git a/src/back/services/notification.ts b/src/services/notification.ts similarity index 96% rename from src/back/services/notification.ts rename to src/services/notification.ts index 46ba01c68..19f6bd093 100644 --- a/src/back/services/notification.ts +++ b/src/services/notification.ts @@ -1,20 +1,20 @@ import { ChainId } from '@dcl/schemas/dist/dapps/chain-id' import { ethers } from 'ethers' -import { DCL_NOTIFICATIONS_SERVICE_ENABLED, NOTIFICATIONS_SERVICE_ENABLED, PUSH_CHANNEL_ID } from '../../constants' -import ProposalModel from '../../entities/Proposal/model' -import { ProposalWithOutcome } from '../../entities/Proposal/outcome' -import { ProposalAttributes, ProposalStatus, ProposalType } from '../../entities/Proposal/types' -import { proposalUrl } from '../../entities/Proposal/utils' -import { getUpdateUrl } from '../../entities/Updates/utils' -import { inBackground } from '../../helpers' -import { ErrorService } from '../../services/ErrorService' -import { ProjectUpdateCommentedEvent, ProposalCommentedEvent } from '../../shared/types/events' -import { DclNotification, Notification, NotificationCustomType, Recipient } from '../../shared/types/notifications' -import { ErrorCategory } from '../../utils/errorCategories' -import { isProdEnv } from '../../utils/governanceEnvs' -import logger from '../../utils/logger' -import { NotificationType, Notifications, getCaipAddress, getPushNotificationsEnv } from '../../utils/notifications' +import { DCL_NOTIFICATIONS_SERVICE_ENABLED, NOTIFICATIONS_SERVICE_ENABLED, PUSH_CHANNEL_ID } from '../constants' +import ProposalModel from '../entities/Proposal/model' +import { ProposalWithOutcome } from '../entities/Proposal/outcome' +import { ProposalAttributes, ProposalStatus, ProposalType } from '../entities/Proposal/types' +import { proposalUrl } from '../entities/Proposal/utils' +import { getUpdateUrl } from '../entities/Updates/utils' +import { inBackground } from '../helpers' +import { ErrorService } from '../services/ErrorService' +import { ProjectUpdateCommentedEvent, ProposalCommentedEvent } from '../shared/types/events' +import { DclNotification, Notification, NotificationCustomType, Recipient } from '../shared/types/notifications' +import { ErrorCategory } from '../utils/errorCategories' +import { isProdEnv } from '../utils/governanceEnvs' +import logger from '../utils/logger' +import { NotificationType, Notifications, getCaipAddress, getPushNotificationsEnv } from '../utils/notifications' import { areValidAddresses } from '../utils/validations' import { CoauthorService } from './coauthor' diff --git a/src/back/services/update.ts b/src/services/update.ts similarity index 90% rename from src/back/services/update.ts rename to src/services/update.ts index afd2bd92f..337c18e94 100644 --- a/src/back/services/update.ts +++ b/src/services/update.ts @@ -2,27 +2,27 @@ import crypto from 'crypto' import logger from 'decentraland-gatsby/dist/entities/Development/logger' import RequestError from 'decentraland-gatsby/dist/entities/Route/error' -import { Discourse } from '../../clients/Discourse' -import { VestingWithLogs, getVestingWithLogs } from '../../clients/VestingData' -import { ProposalAttributes } from '../../entities/Proposal/types' -import UpdateModel from '../../entities/Updates/model' -import { UpdateAttributes, UpdateStatus } from '../../entities/Updates/types' +import { Discourse } from '../clients/Discourse' +import { VestingWithLogs, getVestingWithLogs } from '../clients/VestingData' +import { ProposalAttributes } from '../entities/Proposal/types' +import UpdateModel from '../entities/Updates/model' +import { UpdateAttributes, UpdateStatus } from '../entities/Updates/types' import { getCurrentUpdate, getNextPendingUpdate, getUpdateUrl, isBetweenLateThresholdDate, -} from '../../entities/Updates/utils' -import { inBackground } from '../../helpers' -import { DiscourseService } from '../../services/DiscourseService' -import { ErrorService } from '../../services/ErrorService' -import { FinancialService } from '../../services/FinancialService' -import { ProjectService } from '../../services/ProjectService' -import { DiscoursePost } from '../../shared/types/discourse' -import Time from '../../utils/date/Time' -import { getMonthsBetweenDates } from '../../utils/date/getMonthsBetweenDates' -import { ErrorCategory } from '../../utils/errorCategories' +} from '../entities/Updates/utils' +import { inBackground } from '../helpers' import { Project } from '../models/Project' +import { DiscourseService } from '../services/DiscourseService' +import { ErrorService } from '../services/ErrorService' +import { FinancialService } from '../services/FinancialService' +import { ProjectService } from '../services/ProjectService' +import { DiscoursePost } from '../shared/types/discourse' +import Time from '../utils/date/Time' +import { getMonthsBetweenDates } from '../utils/date/getMonthsBetweenDates' +import { ErrorCategory } from '../utils/errorCategories' import { DiscordService } from './discord' import { EventsService } from './events' diff --git a/src/back/services/user.ts b/src/services/user.ts similarity index 92% rename from src/back/services/user.ts rename to src/services/user.ts index e3862cce2..2e26db4cb 100644 --- a/src/back/services/user.ts +++ b/src/services/user.ts @@ -1,20 +1,15 @@ import { ChainId } from '@dcl/schemas/dist/dapps/chain-id' -import { PUSH_CHANNEL_ID } from '../../constants' -import { isSameAddress } from '../../entities/Snapshot/utils' -import { GATSBY_DISCOURSE_CONNECT_THREAD, MESSAGE_TIMEOUT_TIME } from '../../entities/User/constants' -import UserModel from '../../entities/User/model' -import { AccountType, UserAttributes, ValidationComment, ValidationMessage } from '../../entities/User/types' -import { - formatValidationMessage, - getValidationComment, - toAccountType, - validateComment, -} from '../../entities/User/utils' -import { DiscourseService } from '../../services/DiscourseService' -import { ErrorService } from '../../services/ErrorService' -import { isProdEnv } from '../../utils/governanceEnvs' -import { getCaipAddress, getPushNotificationsEnv } from '../../utils/notifications' +import { PUSH_CHANNEL_ID } from '../constants' +import { isSameAddress } from '../entities/Snapshot/utils' +import { GATSBY_DISCOURSE_CONNECT_THREAD, MESSAGE_TIMEOUT_TIME } from '../entities/User/constants' +import UserModel from '../entities/User/model' +import { AccountType, UserAttributes, ValidationComment, ValidationMessage } from '../entities/User/types' +import { formatValidationMessage, getValidationComment, toAccountType, validateComment } from '../entities/User/utils' +import { DiscourseService } from '../services/DiscourseService' +import { ErrorService } from '../services/ErrorService' +import { isProdEnv } from '../utils/governanceEnvs' +import { getCaipAddress, getPushNotificationsEnv } from '../utils/notifications' import { DiscordService } from './discord' diff --git a/src/back/services/vote.test.ts b/src/services/vote.test.ts similarity index 96% rename from src/back/services/vote.test.ts rename to src/services/vote.test.ts index 7471b9811..bc8072361 100644 --- a/src/back/services/vote.test.ts +++ b/src/services/vote.test.ts @@ -1,7 +1,7 @@ -import CacheService from '../../services/CacheService' -import { SnapshotService } from '../../services/SnapshotService' -import { SNAPSHOT_VOTES_30_DAYS } from '../../utils/votes/Votes-30days' -import { SNAPSHOT_VOTES_AUGUST_2023 } from '../../utils/votes/Votes-August-2023' +import CacheService from '../services/CacheService' +import { SnapshotService } from '../services/SnapshotService' +import { SNAPSHOT_VOTES_30_DAYS } from '../utils/votes/Votes-30days' +import { SNAPSHOT_VOTES_AUGUST_2023 } from '../utils/votes/Votes-August-2023' import { VoteService } from './vote' diff --git a/src/back/services/vote.ts b/src/services/vote.ts similarity index 85% rename from src/back/services/vote.ts rename to src/services/vote.ts index 4e45bcf9f..5963f5eb0 100644 --- a/src/back/services/vote.ts +++ b/src/services/vote.ts @@ -1,13 +1,13 @@ -import { getQueryTimestamp } from '../../clients/SnapshotGraphql' -import { SnapshotVote } from '../../clients/SnapshotTypes' -import { VOTES_VP_THRESHOLD } from '../../constants' -import VoteModel from '../../entities/Votes/model' -import { Participation, VoteCount, Voter } from '../../entities/Votes/types' -import CacheService, { TTL_1_HS, TTL_24_HS } from '../../services/CacheService' -import { SnapshotService } from '../../services/SnapshotService' -import Time from '../../utils/date/Time' -import { getAMonthAgo, getAWeekAgo } from '../../utils/date/date' -import { getPreviousMonthStartAndEnd } from '../../utils/date/getPreviousMonthStartAndEnd' +import { getQueryTimestamp } from '../clients/SnapshotGraphql' +import { SnapshotVote } from '../clients/SnapshotTypes' +import { VOTES_VP_THRESHOLD } from '../constants' +import VoteModel from '../entities/Votes/model' +import { Participation, VoteCount, Voter } from '../entities/Votes/types' +import CacheService, { TTL_1_HS, TTL_24_HS } from '../services/CacheService' +import { SnapshotService } from '../services/SnapshotService' +import Time from '../utils/date/Time' +import { getAMonthAgo, getAWeekAgo } from '../utils/date/date' +import { getPreviousMonthStartAndEnd } from '../utils/date/getPreviousMonthStartAndEnd' const DEFAULT_TOP_VOTERS_LIMIT = 5 diff --git a/src/back/types/AirdropJob.ts b/src/types/AirdropJob.ts similarity index 100% rename from src/back/types/AirdropJob.ts rename to src/types/AirdropJob.ts diff --git a/src/back/types/BlockNative.ts b/src/types/BlockNative.ts similarity index 100% rename from src/back/types/BlockNative.ts rename to src/types/BlockNative.ts diff --git a/src/back/utils/contractInteractions.test.ts b/src/utils/contractInteractions.test.ts similarity index 100% rename from src/back/utils/contractInteractions.test.ts rename to src/utils/contractInteractions.test.ts diff --git a/src/back/utils/contractInteractions.ts b/src/utils/contractInteractions.ts similarity index 97% rename from src/back/utils/contractInteractions.ts rename to src/utils/contractInteractions.ts index fd1a15033..b610dcb80 100644 --- a/src/back/utils/contractInteractions.ts +++ b/src/utils/contractInteractions.ts @@ -3,13 +3,14 @@ import { Contract } from '@ethersproject/contracts' import { abi as BadgesAbi } from '@otterspace-xyz/contracts/out/Badges.sol/Badges.json' import { BigNumber, ethers } from 'ethers' -import { POLYGON_BADGES_CONTRACT_ADDRESS, RAFT_OWNER_PK, TRIMMED_OTTERSPACE_RAFT_ID } from '../../constants' -import { ActionStatus, BadgeCreationResult, GasConfig } from '../../entities/Badges/types' -import RpcService from '../../services/RpcService' -import logger from '../../utils/logger' import { BlockNative } from '../clients/BlockNative' +import { POLYGON_BADGES_CONTRACT_ADDRESS, RAFT_OWNER_PK, TRIMMED_OTTERSPACE_RAFT_ID } from '../constants' +import { ActionStatus, BadgeCreationResult, GasConfig } from '../entities/Badges/types' +import RpcService from '../services/RpcService' import { AirdropJobStatus, AirdropOutcome } from '../types/AirdropJob' +import logger from './logger' + const TRANSACTION_UNDERPRICED_ERROR_CODE = '-32000' const TRANSACTION_REPLACED_CODE = 'TRANSACTION_REPLACED' diff --git a/src/back/utils/validations.test.ts b/src/utils/validations.test.ts similarity index 98% rename from src/back/utils/validations.test.ts rename to src/utils/validations.test.ts index 5441edea4..113fcbb47 100644 --- a/src/back/utils/validations.test.ts +++ b/src/utils/validations.test.ts @@ -1,6 +1,6 @@ import RequestError from 'decentraland-gatsby/dist/entities/Route/error' -import { EventType } from '../../shared/types/events' +import { EventType } from '../shared/types/events' import { validateEventTypesFilters, validateId } from './validations' diff --git a/src/back/utils/validations.ts b/src/utils/validations.ts similarity index 91% rename from src/back/utils/validations.ts rename to src/utils/validations.ts index c2cf82c02..96930f377 100644 --- a/src/back/utils/validations.ts +++ b/src/utils/validations.ts @@ -5,18 +5,19 @@ import isArray from 'lodash/isArray' import isEthereumAddress from 'validator/lib/isEthereumAddress' import isUUID from 'validator/lib/isUUID' -import { SnapshotProposal } from '../../clients/SnapshotTypes' -import { ALCHEMY_DELEGATIONS_WEBHOOK_SECRET, DISCOURSE_WEBHOOK_SECRET } from '../../constants' -import isDAOCommittee from '../../entities/Committee/isDAOCommittee' -import isDebugAddress from '../../entities/Debug/isDebugAddress' -import { ProjectStatus } from '../../entities/Grant/types' -import { ProposalAttributes, ProposalStatus, ProposalStatusUpdate } from '../../entities/Proposal/types' -import { isProjectProposal, isValidProposalStatusUpdate } from '../../entities/Proposal/utils' -import { validateUniqueAddresses } from '../../entities/Transparency/utils' -import { ErrorService } from '../../services/ErrorService' -import { ProjectService } from '../../services/ProjectService' -import { EventFilterSchema } from '../../shared/types/events' -import { ErrorCategory } from '../../utils/errorCategories' +import { SnapshotProposal } from '../clients/SnapshotTypes' +import { ALCHEMY_DELEGATIONS_WEBHOOK_SECRET, DISCOURSE_WEBHOOK_SECRET } from '../constants' +import isDAOCommittee from '../entities/Committee/isDAOCommittee' +import isDebugAddress from '../entities/Debug/isDebugAddress' +import { ProjectStatus } from '../entities/Grant/types' +import { ProposalAttributes, ProposalStatus, ProposalStatusUpdate } from '../entities/Proposal/types' +import { isProjectProposal, isValidProposalStatusUpdate } from '../entities/Proposal/utils' +import { validateUniqueAddresses } from '../entities/Transparency/utils' +import { ErrorService } from '../services/ErrorService' +import { ProjectService } from '../services/ProjectService' +import { EventFilterSchema } from '../shared/types/events' + +import { ErrorCategory } from './errorCategories' export function validateDates(start?: string, end?: string) { const validatedStart = new Date(validateDate(start)!)