From c911769dd426745fb7abc70bb278224b2e1ad8fe Mon Sep 17 00:00:00 2001 From: syedali237 Date: Sat, 12 Oct 2024 14:34:27 +0530 Subject: [PATCH 1/9] fixed membership request being added in the user's DB --- .../Mutation/sendMembershipRequest.ts | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/src/resolvers/Mutation/sendMembershipRequest.ts b/src/resolvers/Mutation/sendMembershipRequest.ts index cd4e94767b..1122234111 100644 --- a/src/resolvers/Mutation/sendMembershipRequest.ts +++ b/src/resolvers/Mutation/sendMembershipRequest.ts @@ -78,8 +78,15 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = // Checks if the user is blocked const user = await User.findById(context.userId).lean(); + if (user === null) { + throw new errors.NotFoundError( + requestContext.translate(USER_NOT_FOUND_ERROR.MESSAGE), + USER_NOT_FOUND_ERROR.CODE, + USER_NOT_FOUND_ERROR.PARAM, + ); + } + if ( - user !== null && organization.blockedUsers.some((blockedUser) => new mongoose.Types.ObjectId(blockedUser.toString()).equals(user._id), ) @@ -97,7 +104,23 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = organization: organization._id, }); + // console.log("Membership request already exists:", membershipRequestExists); + if (membershipRequestExists) { + // Check if the request is already in the user's document + if (!user.membershipRequests.includes(membershipRequestExists._id)) { + // If it's not in the user's document, add it + await User.findByIdAndUpdate( + context.userId, + { + $push: { + membershipRequests: membershipRequestExists._id, + }, + }, + { new: true, runValidators: true }, + ); + } + throw new errors.ConflictError( requestContext.translate(MEMBERSHIP_REQUEST_ALREADY_EXISTS.MESSAGE), MEMBERSHIP_REQUEST_ALREADY_EXISTS.CODE, @@ -105,12 +128,13 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = ); } + // Creating Membership Request const createdMembershipRequest = await MembershipRequest.create({ user: context.userId, organization: organization._id, }); - // add membership request to organization + // Updating Membership Request in organization const updatedOrganization = await Organization.findOneAndUpdate( { _id: organization._id, @@ -129,17 +153,20 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = await cacheOrganizations([updatedOrganization]); } - // add membership request to user - await User.updateOne( - { - _id: context.userId, - }, + // Updating User + const updateResult = await User.findByIdAndUpdate( + context.userId, { $push: { membershipRequests: createdMembershipRequest._id, }, }, + { new: true, runValidators: true }, ); + if (!updateResult) { + throw new Error("Failed to update user with membership request"); + } + return createdMembershipRequest.toObject(); }; From 4254609afbafd2389819e2ebdca56428563a16ee Mon Sep 17 00:00:00 2001 From: syedali237 Date: Mon, 14 Oct 2024 21:43:10 +0530 Subject: [PATCH 2/9] added test case for user == null --- eslint.config.mjs | 198 ++++++++++-------- package-lock.json | 15 ++ package.json | 1 + .../Mutation/sendMembershipRequest.ts | 9 +- .../resolvers/Mutation/checkUserNull.spec.ts | 88 ++++++++ 5 files changed, 216 insertions(+), 95 deletions(-) create mode 100644 tests/resolvers/Mutation/checkUserNull.spec.ts diff --git a/eslint.config.mjs b/eslint.config.mjs index 14cfc0893f..f28f832a7e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -4,136 +4,160 @@ import _import from "eslint-plugin-import"; import { fixupPluginRules } from "@eslint/compat"; import globals from "globals"; import tsParser from "@typescript-eslint/parser"; -import parser from "@graphql-eslint/eslint-plugin"; import path from "node:path"; import { fileURLToPath } from "node:url"; import js from "@eslint/js"; import { FlatCompat } from "@eslint/eslintrc"; -import graphqlEslint from "@graphql-eslint/eslint-plugin"; +import * as graphqlEslint from "@graphql-eslint/eslint-plugin"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const compat = new FlatCompat({ - baseDirectory: __dirname + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended }); -export default [{ +export default [ + { ignores: [ - "**/.github", - "**/.vscode", - "**/build", - "**/coverage", - "**/node_modules", - "src/types", - "docs/Schema.md", + "**/.github", + "**/.vscode", + "**/build", + "**/coverage", + "**/node_modules", + "src/types", + "docs/Schema.md", ], -}, ...compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"), { + }, + ...compat.extends( + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "prettier", + ), + { plugins: { - "@typescript-eslint": typescriptEslint, - tsdoc, - "import": fixupPluginRules(_import), + "@typescript-eslint": typescriptEslint, + tsdoc, + import: fixupPluginRules(_import), }, languageOptions: { - env: { - node: true, + parser: tsParser, + globals: { + ...globals.node, + }, }, - parser: tsParser, -} -, - rules: { - "no-restricted-imports": ["error", { - patterns: ["**/src/**"], - }], + "no-restricted-imports": [ + "error", + { + patterns: ["**/src/**"], + }, + ], - "import/no-duplicates": "error", - "tsdoc/syntax": "error", - "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/ban-types": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-explicit-any": "warn", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-non-null-assertion": "error", - "@typescript-eslint/no-var-requires": "error", + "import/no-duplicates": "error", + "tsdoc/syntax": "error", + "@typescript-eslint/ban-ts-comment": "error", + // "@typescript-eslint/ban-types": "error", + "@typescript-eslint/no-duplicate-enum-values": "error", + "@typescript-eslint/no-explicit-any": "warn", + "@typescript-eslint/no-non-null-asserted-optional-chain": "error", + "@typescript-eslint/no-non-null-assertion": "error", + "@typescript-eslint/no-var-requires": "error", }, -}, { + }, + { files: ["**/*.ts"], languageOptions: { - parser: tsParser, - ecmaVersion: "latest", - sourceType: "module", + parser: tsParser, + ecmaVersion: "latest", + sourceType: "module", - parserOptions: { - project: "./tsconfig.json", - tsconfigRootDir: ".", - }, + parserOptions: { + project: "./tsconfig.json", + tsconfigRootDir: ".", + }, }, rules: { - "@typescript-eslint/array-type": "error", - "@typescript-eslint/consistent-type-assertions": "error", - "@typescript-eslint/consistent-type-imports": "error", - "@typescript-eslint/explicit-function-return-type": "error", + "@typescript-eslint/array-type": "error", + "@typescript-eslint/consistent-type-assertions": "error", + "@typescript-eslint/consistent-type-imports": "error", + "@typescript-eslint/explicit-function-return-type": "error", - "@typescript-eslint/naming-convention": ["error", { - selector: "interface", - format: ["PascalCase"], - prefix: ["Interface", "TestInterface"], - }, { - selector: ["typeAlias", "typeLike", "enum"], - format: ["PascalCase"], - }, { - selector: "typeParameter", - format: ["PascalCase"], - prefix: ["T"], - }, { - selector: "variable", - format: ["camelCase", "UPPER_CASE"], - leadingUnderscore: "allow", - }, { - selector: "parameter", - format: ["camelCase"], - leadingUnderscore: "allow", - }, { - selector: "function", - format: ["camelCase"], - }, { - selector: "memberLike", - modifiers: ["private"], - format: ["camelCase"], - leadingUnderscore: "require", - }, { - selector: "variable", - modifiers: ["exported"], - format: null, - }], + "@typescript-eslint/naming-convention": [ + "error", + { + selector: "interface", + format: ["PascalCase"], + prefix: ["Interface", "TestInterface"], + }, + { + selector: ["typeAlias", "typeLike", "enum"], + format: ["PascalCase"], + }, + { + selector: "typeParameter", + format: ["PascalCase"], + prefix: ["T"], + }, + { + selector: "variable", + format: ["camelCase", "UPPER_CASE"], + leadingUnderscore: "allow", + }, + { + selector: "parameter", + format: ["camelCase"], + leadingUnderscore: "allow", + }, + { + selector: "function", + format: ["camelCase"], + }, + { + selector: "memberLike", + modifiers: ["private"], + format: ["camelCase"], + leadingUnderscore: "require", + }, + { + selector: "variable", + modifiers: ["exported"], + format: null, + }, + ], }, -}, { + }, + { files: ["./src/typeDefs/**/*.ts"], processor: "@graphql-eslint/graphql", -}, { + }, + { files: ["./src/typeDefs/**/*.graphql"], plugins: { - "@graphql-eslint": graphqlEslint, + "@graphql-eslint": graphqlEslint, }, languageOptions: { - parser: parser, + parser: graphqlEslint.parser, }, -}, { + }, + { files: ["tests/**/*"], rules: { - "no-restricted-imports": "off", + "no-restricted-imports": "off", }, -}, { + }, + { files: ["./src/index.ts", "./src/utilities/copyToClipboard.ts"], rules: { - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/no-empty-function": "off", }, -}]; \ No newline at end of file + }, +]; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9882cd9f78..45d8bb3b15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,6 +100,7 @@ "eslint-plugin-import": "^2.31.0", "eslint-plugin-tsdoc": "^0.3.0", "get-graphql-schema": "^2.1.2", + "globals": "^15.11.0", "graphql-markdown": "^7.1.0", "husky": "^9.1.5", "lint-staged": "^15.2.10", @@ -2468,6 +2469,7 @@ "resolved": "https://registry.npmjs.org/@graphql-eslint/eslint-plugin/-/eslint-plugin-3.20.1.tgz", "integrity": "sha512-RbwVlz1gcYG62sECR1u0XqMh8w5e5XMCCZoMvPQ3nJzEBCTfXLGX727GBoRmSvY1x4gJmqNZ1lsOX7lZY14RIw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", "@graphql-tools/code-file-loader": "^7.3.6", @@ -10156,6 +10158,19 @@ "node": "*" } }, + "node_modules/globals": { + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/globalthis": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", diff --git a/package.json b/package.json index 70eded2fa8..29730f6838 100644 --- a/package.json +++ b/package.json @@ -138,6 +138,7 @@ "eslint-plugin-import": "^2.31.0", "eslint-plugin-tsdoc": "^0.3.0", "get-graphql-schema": "^2.1.2", + "globals": "^15.11.0", "graphql-markdown": "^7.1.0", "husky": "^9.1.5", "lint-staged": "^15.2.10", diff --git a/src/resolvers/Mutation/sendMembershipRequest.ts b/src/resolvers/Mutation/sendMembershipRequest.ts index 1122234111..9b74c49f0b 100644 --- a/src/resolvers/Mutation/sendMembershipRequest.ts +++ b/src/resolvers/Mutation/sendMembershipRequest.ts @@ -103,9 +103,6 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = user: context.userId, organization: organization._id, }); - - // console.log("Membership request already exists:", membershipRequestExists); - if (membershipRequestExists) { // Check if the request is already in the user's document if (!user.membershipRequests.includes(membershipRequestExists._id)) { @@ -154,7 +151,7 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = } // Updating User - const updateResult = await User.findByIdAndUpdate( + await User.findByIdAndUpdate( context.userId, { $push: { @@ -164,9 +161,5 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = { new: true, runValidators: true }, ); - if (!updateResult) { - throw new Error("Failed to update user with membership request"); - } - return createdMembershipRequest.toObject(); }; diff --git a/tests/resolvers/Mutation/checkUserNull.spec.ts b/tests/resolvers/Mutation/checkUserNull.spec.ts new file mode 100644 index 0000000000..7e80b9c469 --- /dev/null +++ b/tests/resolvers/Mutation/checkUserNull.spec.ts @@ -0,0 +1,88 @@ +import type mongoose from "mongoose"; +import { Organization, User } from "../../../src/models"; +import type { MutationSendMembershipRequestArgs } from "../../../src/types/generatedGraphQLTypes"; +import { connect, disconnect } from "../../helpers/db"; +import { nanoid } from "nanoid"; +import { afterAll, beforeAll, describe, expect, it, vi } from "vitest"; +import { sendMembershipRequest as sendMembershipRequestResolver } from "../../../src/resolvers/Mutation/sendMembershipRequest"; +import type { + TestOrganizationType, + TestUserType, +} from "../../helpers/userAndOrg"; +import { createTestUser } from "../../helpers/userAndOrg"; +import { Types } from "mongoose"; +import { fail } from "assert"; + +let testUser: TestUserType; +let testOrganization: TestOrganizationType; +let MONGOOSE_INSTANCE: typeof mongoose; + +beforeAll(async () => { + MONGOOSE_INSTANCE = await connect(); + + testUser = await createTestUser(); + + testOrganization = await Organization.create({ + name: `name${nanoid().toLowerCase()}`, + description: `desc${nanoid().toLowerCase()}`, + isPublic: true, + creatorId: testUser?._id, + members: [testUser?._id], + visibleInSearch: true, + }); + + const { requestContext } = await import("../../../src/libraries"); + vi.spyOn(requestContext, "translate").mockImplementation( + (message) => message, + ); +}); + +afterAll(async () => { + await disconnect(MONGOOSE_INSTANCE); +}); + +describe("resolvers -> Mutation -> sendMembershipRequest", () => { + it(`throws NotFoundError if no user exists with _id === context.userId when sending membership request`, async () => { + const args: MutationSendMembershipRequestArgs = { + organizationId: testOrganization?.id, + }; + + const context = { + userId: new Types.ObjectId().toString(), + }; + + // Mock User.findById to return null + vi.spyOn(User, "findById").mockResolvedValueOnce(null); + + try { + await sendMembershipRequestResolver?.({}, args, context); + // If the resolver doesn't throw, fail the test + fail("Expected an error to be thrown"); + } catch (error: unknown) { + expect(error).toBeInstanceOf(Error); + if (error instanceof Error) { + expect(error.message).toMatch(/user not found|user.notFound/i); + + expect(error).toHaveProperty("message"); + + if ("code" in error) expect(error).toHaveProperty("code"); + if ("param" in error) expect(error).toHaveProperty("param"); + + if ("extensions" in error) { + const errorWithExtensions = error as Error & { + extensions?: { code?: string; param?: string }; + }; + expect(errorWithExtensions.extensions).toBeDefined(); + if (errorWithExtensions.extensions) { + if ("code" in errorWithExtensions.extensions) + expect(errorWithExtensions.extensions).toHaveProperty("code"); + if ("param" in errorWithExtensions.extensions) + expect(errorWithExtensions.extensions).toHaveProperty("param"); + } + } + } else { + fail("Expected error to be an instance of Error"); + } + } + }); +}); From d674674a3e85bcc505834504e4f70bff658a201f Mon Sep 17 00:00:00 2001 From: syedali237 Date: Mon, 14 Oct 2024 21:44:09 +0530 Subject: [PATCH 3/9] changed a few options in eslint.confifg.mjs --- eslint.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index f28f832a7e..345e6f7248 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -58,7 +58,7 @@ export default [ "import/no-duplicates": "error", "tsdoc/syntax": "error", "@typescript-eslint/ban-ts-comment": "error", - // "@typescript-eslint/ban-types": "error", + "@typescript-eslint/ban-types": "error", "@typescript-eslint/no-duplicate-enum-values": "error", "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-non-null-asserted-optional-chain": "error", From d377ddbba7a7668021c24a426420b664c155abfb Mon Sep 17 00:00:00 2001 From: syedali237 Date: Tue, 15 Oct 2024 16:29:22 +0530 Subject: [PATCH 4/9] changed handling user == null case --- eslint.config.mjs | 2 +- .../Mutation/sendMembershipRequest.ts | 20 +++-- .../resolvers/Mutation/checkUserNull.spec.ts | 88 ------------------- 3 files changed, 13 insertions(+), 97 deletions(-) delete mode 100644 tests/resolvers/Mutation/checkUserNull.spec.ts diff --git a/eslint.config.mjs b/eslint.config.mjs index 345e6f7248..ccd550b1c1 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -58,7 +58,7 @@ export default [ "import/no-duplicates": "error", "tsdoc/syntax": "error", "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/ban-types": "error", + // "@typescript-eslint/ban-types": "error", "@typescript-eslint/no-duplicate-enum-values": "error", "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-non-null-asserted-optional-chain": "error", diff --git a/src/resolvers/Mutation/sendMembershipRequest.ts b/src/resolvers/Mutation/sendMembershipRequest.ts index 9b74c49f0b..0d339a5ad8 100644 --- a/src/resolvers/Mutation/sendMembershipRequest.ts +++ b/src/resolvers/Mutation/sendMembershipRequest.ts @@ -78,15 +78,16 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = // Checks if the user is blocked const user = await User.findById(context.userId).lean(); - if (user === null) { - throw new errors.NotFoundError( - requestContext.translate(USER_NOT_FOUND_ERROR.MESSAGE), - USER_NOT_FOUND_ERROR.CODE, - USER_NOT_FOUND_ERROR.PARAM, - ); - } + // if (user === null) { + // throw new errors.NotFoundError( + // requestContext.translate(USER_NOT_FOUND_ERROR.MESSAGE), + // USER_NOT_FOUND_ERROR.CODE, + // USER_NOT_FOUND_ERROR.PARAM, + // ); + // } if ( + user != null && organization.blockedUsers.some((blockedUser) => new mongoose.Types.ObjectId(blockedUser.toString()).equals(user._id), ) @@ -105,7 +106,10 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = }); if (membershipRequestExists) { // Check if the request is already in the user's document - if (!user.membershipRequests.includes(membershipRequestExists._id)) { + if ( + user != null && + !user.membershipRequests.includes(membershipRequestExists._id) + ) { // If it's not in the user's document, add it await User.findByIdAndUpdate( context.userId, diff --git a/tests/resolvers/Mutation/checkUserNull.spec.ts b/tests/resolvers/Mutation/checkUserNull.spec.ts deleted file mode 100644 index 7e80b9c469..0000000000 --- a/tests/resolvers/Mutation/checkUserNull.spec.ts +++ /dev/null @@ -1,88 +0,0 @@ -import type mongoose from "mongoose"; -import { Organization, User } from "../../../src/models"; -import type { MutationSendMembershipRequestArgs } from "../../../src/types/generatedGraphQLTypes"; -import { connect, disconnect } from "../../helpers/db"; -import { nanoid } from "nanoid"; -import { afterAll, beforeAll, describe, expect, it, vi } from "vitest"; -import { sendMembershipRequest as sendMembershipRequestResolver } from "../../../src/resolvers/Mutation/sendMembershipRequest"; -import type { - TestOrganizationType, - TestUserType, -} from "../../helpers/userAndOrg"; -import { createTestUser } from "../../helpers/userAndOrg"; -import { Types } from "mongoose"; -import { fail } from "assert"; - -let testUser: TestUserType; -let testOrganization: TestOrganizationType; -let MONGOOSE_INSTANCE: typeof mongoose; - -beforeAll(async () => { - MONGOOSE_INSTANCE = await connect(); - - testUser = await createTestUser(); - - testOrganization = await Organization.create({ - name: `name${nanoid().toLowerCase()}`, - description: `desc${nanoid().toLowerCase()}`, - isPublic: true, - creatorId: testUser?._id, - members: [testUser?._id], - visibleInSearch: true, - }); - - const { requestContext } = await import("../../../src/libraries"); - vi.spyOn(requestContext, "translate").mockImplementation( - (message) => message, - ); -}); - -afterAll(async () => { - await disconnect(MONGOOSE_INSTANCE); -}); - -describe("resolvers -> Mutation -> sendMembershipRequest", () => { - it(`throws NotFoundError if no user exists with _id === context.userId when sending membership request`, async () => { - const args: MutationSendMembershipRequestArgs = { - organizationId: testOrganization?.id, - }; - - const context = { - userId: new Types.ObjectId().toString(), - }; - - // Mock User.findById to return null - vi.spyOn(User, "findById").mockResolvedValueOnce(null); - - try { - await sendMembershipRequestResolver?.({}, args, context); - // If the resolver doesn't throw, fail the test - fail("Expected an error to be thrown"); - } catch (error: unknown) { - expect(error).toBeInstanceOf(Error); - if (error instanceof Error) { - expect(error.message).toMatch(/user not found|user.notFound/i); - - expect(error).toHaveProperty("message"); - - if ("code" in error) expect(error).toHaveProperty("code"); - if ("param" in error) expect(error).toHaveProperty("param"); - - if ("extensions" in error) { - const errorWithExtensions = error as Error & { - extensions?: { code?: string; param?: string }; - }; - expect(errorWithExtensions.extensions).toBeDefined(); - if (errorWithExtensions.extensions) { - if ("code" in errorWithExtensions.extensions) - expect(errorWithExtensions.extensions).toHaveProperty("code"); - if ("param" in errorWithExtensions.extensions) - expect(errorWithExtensions.extensions).toHaveProperty("param"); - } - } - } else { - fail("Expected error to be an instance of Error"); - } - } - }); -}); From ac4294e76b51ffbc098b84a03af1f8a3199cc12e Mon Sep 17 00:00:00 2001 From: syedali237 Date: Tue, 15 Oct 2024 16:30:03 +0530 Subject: [PATCH 5/9] changed handling user == null case --- eslint.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index ccd550b1c1..345e6f7248 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -58,7 +58,7 @@ export default [ "import/no-duplicates": "error", "tsdoc/syntax": "error", "@typescript-eslint/ban-ts-comment": "error", - // "@typescript-eslint/ban-types": "error", + "@typescript-eslint/ban-types": "error", "@typescript-eslint/no-duplicate-enum-values": "error", "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-non-null-asserted-optional-chain": "error", From f2bde9b419a0793f3c389eff734bece8c82148e3 Mon Sep 17 00:00:00 2001 From: syedali237 Date: Tue, 15 Oct 2024 16:32:25 +0530 Subject: [PATCH 6/9] changed handling user == null case --- eslint.config.mjs | 2 +- src/resolvers/Mutation/sendMembershipRequest.ts | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 345e6f7248..ccd550b1c1 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -58,7 +58,7 @@ export default [ "import/no-duplicates": "error", "tsdoc/syntax": "error", "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/ban-types": "error", + // "@typescript-eslint/ban-types": "error", "@typescript-eslint/no-duplicate-enum-values": "error", "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-non-null-asserted-optional-chain": "error", diff --git a/src/resolvers/Mutation/sendMembershipRequest.ts b/src/resolvers/Mutation/sendMembershipRequest.ts index 0d339a5ad8..12dadc1587 100644 --- a/src/resolvers/Mutation/sendMembershipRequest.ts +++ b/src/resolvers/Mutation/sendMembershipRequest.ts @@ -78,13 +78,6 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] = // Checks if the user is blocked const user = await User.findById(context.userId).lean(); - // if (user === null) { - // throw new errors.NotFoundError( - // requestContext.translate(USER_NOT_FOUND_ERROR.MESSAGE), - // USER_NOT_FOUND_ERROR.CODE, - // USER_NOT_FOUND_ERROR.PARAM, - // ); - // } if ( user != null && From 2f8cc83c2ce34655472a9f66aaf827df61df4300 Mon Sep 17 00:00:00 2001 From: syedali237 Date: Tue, 15 Oct 2024 16:33:00 +0530 Subject: [PATCH 7/9] changed handling user == null case --- eslint.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index ccd550b1c1..345e6f7248 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -58,7 +58,7 @@ export default [ "import/no-duplicates": "error", "tsdoc/syntax": "error", "@typescript-eslint/ban-ts-comment": "error", - // "@typescript-eslint/ban-types": "error", + "@typescript-eslint/ban-types": "error", "@typescript-eslint/no-duplicate-enum-values": "error", "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-non-null-asserted-optional-chain": "error", From a6306a2be7932f9033e930b13c0798c93b270dff Mon Sep 17 00:00:00 2001 From: syedali237 Date: Sat, 19 Oct 2024 19:11:45 +0530 Subject: [PATCH 8/9] fixed for formatting, linting --- .eslintrc.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.json b/.eslintrc.json index 6f13ff601d..ad7a6314b0 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -109,6 +109,7 @@ // warn/1, error/2, off/0 "tsdoc/syntax": "error", // Typescript Rules + "@typescript-eslint/ban-types": "error", "@typescript-eslint/ban-ts-comment": "error", "@typescript-eslint/no-unsafe-function-type": "error", "@typescript-eslint/no-wrapper-object-types": "error", From f4f22dbc20fce2ca04014770243c35458a5432d8 Mon Sep 17 00:00:00 2001 From: syedali237 Date: Sat, 19 Oct 2024 19:21:01 +0530 Subject: [PATCH 9/9] fixed for formatting, linting --- .eslintrc.json | 2 +- schema.graphql | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index ad7a6314b0..b8a4305e11 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -109,8 +109,8 @@ // warn/1, error/2, off/0 "tsdoc/syntax": "error", // Typescript Rules - "@typescript-eslint/ban-types": "error", "@typescript-eslint/ban-ts-comment": "error", + "@typescript-eslint/ban-types": "error", "@typescript-eslint/no-unsafe-function-type": "error", "@typescript-eslint/no-wrapper-object-types": "error", "@typescript-eslint/no-empty-object-type": "error", diff --git a/schema.graphql b/schema.graphql index 14163988d3..76c86b291f 100644 --- a/schema.graphql +++ b/schema.graphql @@ -40,7 +40,6 @@ input ActionItemWhereInput { assigneeName: String categoryName: String event_id: ID - is_active: Boolean is_completed: Boolean }