SeedCompany / cord-api-v3

Bible translation project management API
MIT License
18 stars 4 forks source link

Exception Refactor Q2 2024 #3181

Closed CarsonF closed 5 months ago

CarsonF commented 5 months ago

Basically, things are fixed to work as expected now.

Added Error.cause to stacktrace in GQL responses. Migrated from our custom previous to the new cause standard.

Review commits for details.

GraphQL Response

{
  "errors": [
    {
      "message": "Could not create project",
      "extensions": {
        "codes": [
          "Server"
        ],
        "stacktrace": [
          "ServerException: Could not create project",
          "    at ProjectService.create (components/project/project.service.ts:181:13)",
          "    at ProjectResolver.createProject2 (components/project/project.resolver.ts:369:12)",
          "    at ProjectResolver.createProject (components/project/project.resolver.ts:363:21)",
          "  [cause]: ServerException: Cannot find default::MultiplicationTranslationProject.otherLocationIds",
          "      at core/edgedb/query-util/map-to-set-block.ts:30:13",
          "      at mapToSetBlock (core/edgedb/query-util/map-to-set-block.ts:13:10)",
          "      at MultiplicationTranslationProjectRepository.create (core/edgedb/dto.repository.ts:263:35)",
          "      at ProjectEdgeDBRepository.create (components/project/project.edgedb.repository.ts:69:45)",
          "      at ProjectService.create (components/project/project.service.ts:144:38)",
          "      at ProjectResolver.createProject2 (components/project/project.resolver.ts:369:12)"
        ]
      },
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "createProject"
      ]
    }
  ]
}

Log message

Screenshot 2024-04-18 at 5 25 46 PM

Test suite

Error: Server: Could not create project

ServerException: Could not create project

    at ProjectService.create (src/components/project/project.service.ts:181:13)
    at ProjectResolver.createProject2 (src/components/project/project.resolver.ts:369:12)
    at ProjectResolver.createProject (src/components/project/project.resolver.ts:363:21)
  [cause]: ServerException: Cannot find default::MultiplicationTranslationProject.otherLocationIds
      at src/core/edgedb/query-util/map-to-set-block.ts:30:13
      at mapToSetBlock (src/core/edgedb/query-util/map-to-set-block.ts:13:10)
      at MultiplicationTranslationProjectRepository.create (src/core/edgedb/dto.repository.ts:263:35)
      at ProjectEdgeDBRepository.create (src/components/project/project.edgedb.repository.ts:69:45)
      at ProjectService.create (src/components/project/project.service.ts:144:38)
      at ProjectResolver.createProject2 (src/components/project/project.resolver.ts:369:12)