diff --git a/packages/api/src/resolvers/labels/index.ts b/packages/api/src/resolvers/labels/index.ts index b27c9bf3b..b39f358c8 100644 --- a/packages/api/src/resolvers/labels/index.ts +++ b/packages/api/src/resolvers/labels/index.ts @@ -1,4 +1,17 @@ -import { authorized, generateRandomColor } from '../../utils/helpers' +import { Between, ILike } from 'typeorm' +import { createPubSubClient } from '../../datalayer/pubsub' +import { getHighlightById } from '../../elastic/highlights' +import { + deleteLabel, + setLabelsForHighlight, + updateLabel, + updateLabelsInPage, +} from '../../elastic/labels' +import { getPageById } from '../../elastic/pages' +import { Label } from '../../entity/label' +import { User } from '../../entity/user' +import { getRepository, setClaims } from '../../entity/utils' +import { env } from '../../env' import { CreateLabelError, CreateLabelErrorCode, @@ -25,23 +38,10 @@ import { UpdateLabelErrorCode, UpdateLabelSuccess, } from '../../generated/graphql' -import { analytics } from '../../utils/analytics' -import { env } from '../../env' -import { User } from '../../entity/user' -import { Label } from '../../entity/label' -import { Between, ILike } from 'typeorm' -import { getRepository, setClaims } from '../../entity/utils' -import { createPubSubClient } from '../../datalayer/pubsub' import { AppDataSource } from '../../server' -import { getPageById } from '../../elastic/pages' -import { - deleteLabel, - setLabelsForHighlight, - updateLabel, - updateLabelsInPage, -} from '../../elastic/labels' -import { getHighlightById } from '../../elastic/highlights' import { getLabelsByIds } from '../../services/labels' +import { analytics } from '../../utils/analytics' +import { authorized, generateRandomColor } from '../../utils/helpers' export const labelsResolver = authorized( async (_obj, _params, { claims: { uid }, log }) => { diff --git a/packages/api/src/services/create_page_save_request.ts b/packages/api/src/services/create_page_save_request.ts index 335421e76..6285c1d81 100644 --- a/packages/api/src/services/create_page_save_request.ts +++ b/packages/api/src/services/create_page_save_request.ts @@ -153,14 +153,19 @@ export const createPageSaveRequest = async ({ ctx ) } + const labelsInput = labels?.map((label) => ({ + name: label.name, + color: label.color, + description: label.description, + })) // enqueue task to parse page await enqueueParseRequest({ url, userId, saveRequestId: page.id, priority, - archivedAt, - labels, + state: archivedAt ? ArticleSavingRequestStatus.Archived : undefined, + labels: labelsInput, }) return pageToArticleSavingRequest(user, page) diff --git a/packages/api/src/services/labels.ts b/packages/api/src/services/labels.ts index fee84bc46..102265155 100644 --- a/packages/api/src/services/labels.ts +++ b/packages/api/src/services/labels.ts @@ -1,13 +1,13 @@ -import { Label } from '../entity/label' -import { ILike, In } from 'typeorm' -import { PageContext } from '../elastic/types' -import { User } from '../entity/user' -import { addLabelInPage } from '../elastic/labels' -import { getRepository } from '../entity/utils' -import { Link } from '../entity/link' import DataLoader from 'dataloader' -import { generateRandomColor } from '../utils/helpers' +import { In } from 'typeorm' +import { addLabelInPage } from '../elastic/labels' +import { PageContext } from '../elastic/types' +import { Label } from '../entity/label' +import { Link } from '../entity/link' +import { User } from '../entity/user' +import { getRepository } from '../entity/utils' import { CreateLabelInput } from '../generated/graphql' +import { generateRandomColor } from '../utils/helpers' const batchGetLabelsFromLinkIds = async ( linkIds: readonly string[] @@ -40,10 +40,11 @@ export const addLabelToPage = async ( return false } - let labelEntity = await getRepository(Label).findOneBy({ - user: { id: user.id }, - name: ILike(label.name), - }) + let labelEntity = await getRepository(Label) + .createQueryBuilder() + .where({ user: { id: user.id } }) + .andWhere('LOWER(name) = LOWER(:name)', { name: label.name }) + .getOne() if (!labelEntity) { console.log('creating new label', label.name) @@ -87,10 +88,11 @@ export const createLabel = async ( description?: string } ): Promise