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
7 changes: 3 additions & 4 deletions src/server/controller/cycleData/links/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ import { Objects } from 'utils/objects'
import { BaseProtocol, DB } from 'server/db/db'
import { LinkRepository } from 'server/db/repository/assessmentCycle/links'
import { ActivityLogRepository } from 'server/db/repository/public/activityLog'
import { visitDescriptionLinks } from 'server/worker/tasks/verifyLinks/visitDescriptionLinks/visitDescriptionLinks'
import { visitNationalDataPointLinks } from 'server/worker/tasks/verifyLinks/visitNationalDataPointLinks/visitNationalDataPointLinks'
import { LinksService } from 'server/service/links'

type Props = {
assessment: Assessment
Expand Down Expand Up @@ -51,7 +50,7 @@ export const update = async (props: Props): Promise<Link> => {
sectionName,
})
)
await visitDescriptionLinks({ assessment, countryIso, cycle, descriptionIdentifiers })
await LinksService.enqueueDescriptionLinksValidation({ assessment, countryIso, cycle, descriptionIdentifiers })
}

// If the link has national data point locations, we trigger the flow that updates the ndp validation cache.
Expand All @@ -62,7 +61,7 @@ export const update = async (props: Props): Promise<Link> => {
ndpUuid,
fields: [ndpSection],
}))
await visitNationalDataPointLinks({ assessment, countryIso, cycle, targets })
await LinksService.enqueueNationalDataPointLinksValidation({ assessment, countryIso, cycle, targets })
}

return updatedLink
Expand Down
4 changes: 2 additions & 2 deletions src/server/controller/cycleData/nationalDataPoint/remove.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import { MessageTopicRepository } from 'server/db/repository/assessmentCycle/mes
import { OriginalDataPointRepository } from 'server/db/repository/assessmentCycle/originalDataPoint'
import { ActivityLogRepository } from 'server/db/repository/public/activityLog'
import { CountryService } from 'server/service/country'
import { LinksService } from 'server/service/links'
import { SocketServer } from 'server/service/socket'
import { visitNationalDataPointLinks } from 'server/worker/tasks/verifyLinks/visitNationalDataPointLinks/visitNationalDataPointLinks'

import { updateOriginalDataPointDependentNodes } from './updateDependants/updateOriginalDataPointDependentNodes'

Expand Down Expand Up @@ -90,7 +90,7 @@ export const remove = async (props: Props, client: BaseProtocol = DB): Promise<O

// Remove the deleted national data point's link locations.
// Clients are already notified through the delete event above.
await visitNationalDataPointLinks({
await LinksService.enqueueNationalDataPointLinksValidation({
assessment,
countryIso,
cycle,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { BaseProtocol, DB } from 'server/db/db'
import { OriginalDataPointRepository } from 'server/db/repository/assessmentCycle/originalDataPoint'
import { ActivityLogRepository } from 'server/db/repository/public/activityLog'
import { CountryService } from 'server/service/country'
import { visitNationalDataPointLinks } from 'server/worker/tasks/verifyLinks/visitNationalDataPointLinks/visitNationalDataPointLinks'
import { LinksService } from 'server/service/links'

type Props = {
assessment: Assessment
Expand Down Expand Up @@ -57,7 +57,7 @@ export const updateComments = async (props: Props, client: BaseProtocol = DB): P
})

const commentLinkField = NDPCommentLinkFields.find(({ commentKey }) => commentKey === field)
await visitNationalDataPointLinks({
await LinksService.enqueueNationalDataPointLinksValidation({
assessment,
countryIso,
cycle,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { BaseProtocol, DB } from 'server/db/db'
import { DescriptionRepository } from 'server/db/repository/assessmentCycle/descriptions'
import { ActivityLogRepository } from 'server/db/repository/public/activityLog'
import { CountryService } from 'server/service/country'
import { visitNationalDataPointLinks } from 'server/worker/tasks/verifyLinks/visitNationalDataPointLinks/visitNationalDataPointLinks'
import { LinksService } from 'server/service/links'

type Props = {
assessment: Assessment
Expand Down Expand Up @@ -50,7 +50,7 @@ export const updateDataSources = async (props: Props, client: BaseProtocol = DB)
await CountryService.updateLastEdit({ assessment, cycle, country, user, lastEditOdp: true, lastUpdateTimestamp }, t)
})

await visitNationalDataPointLinks({
await LinksService.enqueueNationalDataPointLinksValidation({
assessment,
countryIso,
cycle,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import { BaseProtocol, DB } from 'server/db/db'
import { OriginalDataPointRepository } from 'server/db/repository/assessmentCycle/originalDataPoint'
import { ActivityLogRepository } from 'server/db/repository/public/activityLog'
import { CountryService } from 'server/service/country'
import { LinksService } from 'server/service/links'
import { SocketServer } from 'server/service/socket'
import { visitNationalDataPointLinks } from 'server/worker/tasks/verifyLinks/visitNationalDataPointLinks/visitNationalDataPointLinks'

import { updateOriginalDataPointsDependentNodes } from './updateDependants/updateOriginalDataPointsDependentNodes'

Expand Down Expand Up @@ -79,7 +79,7 @@ export const updateYear = async (props: Props, client: BaseProtocol = DB): Promi
})

// The stored link locations carry the year and a year-based url, so they are refreshed on year change.
await visitNationalDataPointLinks({
await LinksService.enqueueNationalDataPointLinksValidation({
assessment,
countryIso,
cycle,
Expand Down
4 changes: 2 additions & 2 deletions src/server/service/dataValidation/validateDescriptions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Assessment } from 'meta/assessment/assessment'
import { Cycle } from 'meta/assessment/cycle'
import { CommentableDescription, DescriptionIdentifier } from 'meta/assessment/descriptionValue'

import { visitDescriptionLinks } from 'server/worker/tasks/verifyLinks/visitDescriptionLinks/visitDescriptionLinks'
import { LinksService } from 'server/service/links'

import { validateDataSources } from './validateDataSources'

Expand All @@ -27,7 +27,7 @@ export const validateDescriptions = async (props: Props): Promise<void> => {
sectionName,
}))

await visitDescriptionLinks({
await LinksService.enqueueDescriptionLinksValidation({
assessment,
countryIso,
cycle,
Expand Down
13 changes: 13 additions & 0 deletions src/server/service/links/enqueueDescriptionLinksValidation.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Objects } from 'utils/objects'

import { VerifyLinksJobName } from 'server/worker/tasks/verifyLinks/jobNames'
import { enqueueVerifyLinksJob } from 'server/worker/tasks/verifyLinks/utils/enqueueVerifyLinksJob'
import { VerifyDescriptionLinksJobProps } from 'server/worker/tasks/verifyLinks/visitDescriptionLinks/props'

export const enqueueDescriptionLinksValidation = async (props: VerifyDescriptionLinksJobProps): Promise<void> => {
const { descriptionIdentifiers } = props

if (Objects.isEmpty(descriptionIdentifiers)) return

await enqueueVerifyLinksJob(VerifyLinksJobName.verifyDescriptionLinks, props)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Objects } from 'utils/objects'

import { VerifyLinksJobName } from 'server/worker/tasks/verifyLinks/jobNames'
import { enqueueVerifyLinksJob } from 'server/worker/tasks/verifyLinks/utils/enqueueVerifyLinksJob'
import { VerifyNationalDataPointLinksJobProps } from 'server/worker/tasks/verifyLinks/visitNationalDataPointLinks/props'

export const enqueueNationalDataPointLinksValidation = async (
props: VerifyNationalDataPointLinksJobProps
): Promise<void> => {
const { targets } = props

if (Objects.isEmpty(targets)) return

await enqueueVerifyLinksJob(VerifyLinksJobName.verifyNationalDataPointLinks, props)
}
4 changes: 4 additions & 0 deletions src/server/service/links/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
import { enqueueDescriptionLinksValidation } from 'server/service/links/enqueueDescriptionLinksValidation'
import { enqueueNationalDataPointLinksValidation } from 'server/service/links/enqueueNationalDataPointLinksValidation'
import { verifyLinks } from 'server/service/links/verifyLinks'

export const LinksService = {
enqueueDescriptionLinksValidation,
enqueueNationalDataPointLinksValidation,
verifyLinks,
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ type JobPropsByName = {
}

// Enqueues a verify-links job and makes sure a worker is running to consume it.
export const addVerifyLinksJob = async <JobName extends keyof JobPropsByName>(
export const enqueueVerifyLinksJob = async <JobName extends keyof JobPropsByName>(
jobName: JobName,
props: JobPropsByName[JobName]
): Promise<Job> => {
Expand Down

This file was deleted.

This file was deleted.

Loading