nomisRev / ktor-arrow-example

Real World implementation - "The mother of all demo apps". Written in Kotlin, with Ktor, Arrow, SqlDelight, KotlinX Serialization, etc.
Apache License 2.0
272 stars 34 forks source link

POST /articles/{slug}/comments #165

Open nomisRev opened 1 year ago

nomisRev commented 1 year ago

In order to fully support articles we need to implement a POST article comments for slug, according to following OpenAPI Spec.

    post:
      tags:
        - Comments
      summary: Create a comment for an article
      description: Create a comment for an article. Auth is required
      operationId: CreateArticleComment
      parameters:
        - name: slug
          in: path
          description: Slug of the article that you want to create a comment for
          required: true
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/NewCommentRequest'
      responses:
        '200':
          $ref: '#/components/responses/SingleCommentResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/GenericError'
      security:
        - Token: []
      x-codegen-request-body-name: comment
  1. Add missing domain objects NewCommentRequest and SingleCommentResponse if it doesn't exist.
  2. Implement insertCommentForArticleSlug in ArticlePersistence by adding the corresponding SQL to SqlDelight
  3. Create articles.kt in routes if does not exist, implement the POST route using ArticlePersistence
  4. Add test that verifies the behavior works

Please assign yourself to this ticket before starting, and if you run into any issues please raise a PR so I can provide help and support directly in the code.

Thank you in advance for your interest in the project! Happy hacktoberfest!

Kaaveh commented 1 year ago

Hey @nomisRev I'd like to work on this task.

nomisRev commented 11 months ago

Hey @Kaaveh, Please do! Sorry for the late response, I needed some off time.

Kaaveh commented 10 months ago

Hey @nomisRev Thank you for assigning me to this task. Unfortunately, I am currently facing some issues that prevent me from working on side projects. I estimate that I will be able to work on this feature in the next couple of months. Is that okay?

Kaaveh commented 9 months ago

Hmmm, It seems that the task has been completed. @nomisRev @arioston