From 118af0170a99d227fbbad06e6259d382e7402a10 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Wed, 24 Mar 2021 19:34:00 +0100 Subject: [PATCH 1/3] Remove unused openapi file --- src/main/resources/openapi.yaml | 1846 ------------------------------- 1 file changed, 1846 deletions(-) delete mode 100644 src/main/resources/openapi.yaml diff --git a/src/main/resources/openapi.yaml b/src/main/resources/openapi.yaml deleted file mode 100644 index 9e7d336..0000000 --- a/src/main/resources/openapi.yaml +++ /dev/null @@ -1,1846 +0,0 @@ -openapi: 3.0.0 -info: - version: '0.1' - title: 'DC Project' - description: 'A free comunity program for create constitution' - -paths: - /register: - post: - summary: Create account - tags: - - authentification - operationId: register - requestBody: - $ref: '#/components/requestBodies/RegisterRequest' - - responses: - 200: - description: User created and JWT returned - content: - text/plain: - example: - eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBdXRoZW50aWNhdGlvbiIsImlzcyI6ImRjLXByb2plY3QuZnIiLCJpZCI6ImQ1NDRhNmE4LWJhYjgtNDU2MC05NWIxLThhZjAyMDNkOTEwNCIsImV4cCI6MTU2NzA3Mzc0Mn0.0VTetv8fZFjVgpJ-bwJpidGNHJUOmgj8vuZcZXzwnLa7TtFwcXWvh3bDPYHqB66nmOfXyM57XnHDbmRwtipCag - - /login: - post: - summary: sign in - tags: - - authentification - operationId: login - requestBody: - $ref: '#/components/requestBodies/LoginRequest' - responses: - 200: - description: return JWT - content: - text/plain: - example: - eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBdXRoZW50aWNhdGlvbiIsImlzcyI6ImRjLXByb2plY3QuZnIiLCJpZCI6ImQ1NDRhNmE4LWJhYjgtNDU2MC05NWIxLThhZjAyMDNkOTEwNCIsImV4cCI6MTU2NzA3Mzc0Mn0.0VTetv8fZFjVgpJ-bwJpidGNHJUOmgj8vuZcZXzwnLa7TtFwcXWvh3bDPYHqB66nmOfXyM57XnHDbmRwtipCag - /auth/passwordless: - post: - summary: Send a connexion link by email - description: Send a connexion link by email with the token required to the connexion - externalDocs: - description: Explanation of Passwordless auth - url: https://en.wikipedia.org/wiki/Passwordless_authentication - tags: - - authentification - operationId: passwordless - requestBody: - content: - application/json: - schema: - properties: - email: - type: string - format: email - description: email to send the token - example: - my.email@dc-project.fr - url: - type: string - description: url tu redirect with the token - example: - http://dc-project.fr/auth/passwordless - - responses: - 204: - description: email send - 404: - description: no user with this email - - /citizens/current: - get: - security: - - JWTAuth: [] - summary: Get Citizen - tags: - - citizen - operationId: getCurrentCitizen - responses: - 200: - description: The Citizen object - content: - application/json: - schema: - $ref: '#/components/schemas/CitizenResponse' - /citizens/{citizen}: - parameters: - - $ref: '#/components/parameters/citizen' - get: - security: - - JWTAuth: [] - summary: Get Citizen - tags: - - citizen - operationId: getCitizen - responses: - 200: - description: The Citizen object - content: - application/json: - schema: - $ref: '#/components/schemas/CitizenResponse' - 404: - description: Citizen not found - 401: - $ref: '#/components/responses/401' - /citizens/{citizen}/votes: - parameters: - - $ref: '#/components/parameters/citizen' - get: - security: - - JWTAuth: [] - summary: Get Citizen - tags: - - vote - - citizen - operationId: getCitizenVotes - parameters: - - name: id - in: query - required: true - example: - - 1329ab90-edae-cfed-f863-c8cb069fa327 - - cab54e50-ce85-bba0-da23-fc9f75feeaf5 - schema: - type: array - items: - type: string - format: uuid - responses: - 200: - description: The Votes objects - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/VoteResponse' - 404: - description: Citizen not found - 401: - $ref: '#/components/responses/401' - /citizens/{citizen}/password/change: - parameters: - - $ref: '#/components/parameters/citizen' - put: - security: - - JWTAuth: [] - summary: Change Citizen Password - tags: - - citizen - operationId: changePassword - requestBody: - required: true - content: - application/json: - schema: - required: - - old_password - - new_password - properties: - old_password: - type: string - format: password - example: - azerty - new_password: - type: string - format: password - example: - qwerty - responses: - 201: - description: Password changed - 404: - description: Citizen not found - 401: - $ref: '#/components/responses/401' - - /citizens: - get: - security: - - JWTAuth: [] - summary: Get all citizens - tags: - - citizen - operationId: getCitizens - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/sort' - - $ref: '#/components/parameters/direction' - - $ref: '#/components/parameters/search' - responses: - 200: - description: The Citizen objects - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/CitizenResponse' - 401: - $ref: '#/components/responses/401' - - /articles: - get: - summary: Get all articles - tags: - - article - operationId: getArticles - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/articleSort' - - $ref: '#/components/parameters/direction' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/createdBy' - - name: workgroup - in: query - description: ID of workgroup - example: 82a0e60a-bb55-dbc0-1c3d-0a804df2b5df - required: false - schema: - type: string - format: uuid - responses: - 200: - description: The Article objects - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - result: - type: array - items: - properties: - id: - type: string - format: uuid - title: - type: string - created_by: - type: object - properties: - id: - type: string - format: uuid - name: - type: object - properties: - first_name: - type: string - last_name: - type: string - email: - type: string - workgroup: - type: object - properties: - id: - type: string - format: uuid - name: - type: string - draft: - type: boolean - post: - security: - - JWTAuth: [] - summary: Create new Article - tags: - - article - operationId: insertArticle - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleRequest' - responses: - 201: - description: Article created - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleResponse' - 401: - $ref: '#/components/responses/401' - /articles/{article}: - parameters: - - $ref: '#/components/parameters/article' - get: - security: - - {} - - JWTAuth: [] - summary: Get one article - tags: - - article - operationId: getArticle - responses: - 200: - description: The Article objects - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleResponse' - /articles/{article}/versions: - parameters: - - $ref: '#/components/parameters/article' - get: - summary: Get all versions of articles - tags: - - article - operationId: getArticleVersions - responses: - 200: - description: The versions of Article - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/ArticleResponse' - - /constitutions: - get: - summary: Get all constitutions - tags: - - constitution - operationId: getConstitutions - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/sort' - - $ref: '#/components/parameters/direction' - - $ref: '#/components/parameters/search' - responses: - 200: - description: The Constitution objects - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/ConstitutionResponse' - post: - security: - - JWTAuth: [] - summary: Create new Constitution - tags: - - constitution - operationId: insertConstitution - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/ConstitutionRequest' - responses: - 201: - description: Constitution created - content: - application/json: - schema: - $ref: '#/components/schemas/ConstitutionResponse' - 401: - $ref: '#/components/responses/401' - /constitutions/{constitution}: - parameters: - - $ref: '#/components/parameters/constitution' - get: - summary: Get all constitutions - tags: - - constitution - operationId: getConstitutions - responses: - 200: - description: The Constitution objects - content: - application/json: - schema: - $ref: '#/components/schemas/ConstitutionResponse' - - /comments/{comment}: - parameters: - - $ref: '#/components/parameters/comment' - get: - summary: Get Comment by Comment ID - tags: - - comment - responses: - 200: - description: Return Comment and children - content: - application/json: - schema: - $ref: '#/components/schemas/CommentResponse' - put: - security: - - JWTAuth: [] - summary: Edit existing comment - tags: - - comment - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CommentRequest' - responses: - 200: - description: Return Comment and children - content: - application/json: - schema: - $ref: '#/components/schemas/CommentResponse' - 401: - $ref: '#/components/responses/401' - /comments/{comment}/children: - parameters: - - $ref: '#/components/parameters/comment' - get: - summary: Get Comment children by Comment ID - tags: - - comment - responses: - 200: - description: Return Comment children - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/CommentResponse' - post: - security: - - JWTAuth: [] - summary: Create Comment on other comment - tags: - - comment - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CommentRequest' - responses: - 201: - description: Return the created Comment - content: - application/json: - schema: - allOf: - - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/CommentResponse' - 404: - description: Comment not found - 401: - $ref: '#/components/responses/401' - - /articles/{article}/comments: - parameters: - - $ref: '#/components/parameters/article' - get: - summary: Get comments of one article - tags: - - comment - - article - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/search' - - name: sort - in: query - required: false - example: - - created_at - - votes - schema: - type: string - default: created_at - enum: - - created_at - - votes - responses: - 200: - description: Return Comment and children - content: - application/json: - schema: - $ref: '#/components/schemas/CommentResponse' - post: - security: - - JWTAuth: [] - summary: Create Comment to article - tags: - - comment - - article - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CommentRequest' - responses: - 200: - description: Return Comment and children - content: - application/json: - schema: - $ref: '#/components/schemas/CommentResponse' - 401: - $ref: '#/components/responses/401' - /constitutions/{constitution}/comments: - parameters: - - $ref: '#/components/parameters/constitution' - get: - summary: Get comment and children of one constitution - tags: - - comment - - constitution - responses: - 200: - description: Return Comment and children - content: - application/json: - schema: - $ref: '#/components/schemas/CommentResponse' - post: - security: - - JWTAuth: [] - summary: Create Comment to constitution - tags: - - comment - - constitution - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CommentRequest' - responses: - 200: - description: Return Comment and children - content: - application/json: - schema: - $ref: '#/components/schemas/CommentResponse' - 401: - $ref: '#/components/responses/401' - - /articles/{article}/follows: - parameters: - - $ref: '#/components/parameters/article' - get: - security: - - JWTAuth: [] - summary: Return Follow or nothing if you not follow - tags: - - follow - - article - responses: - 200: - description: Return your follow - content: - application/json: - schema: - $ref: '#/components/schemas/FollowResponse' - 404: - description: You not follow this article - post: - security: - - JWTAuth: [] - summary: Follow one article - tags: - - follow - - article - responses: - 201: - description: Return only http status 201 on success - delete: - security: - - JWTAuth: [] - summary: Unfollow one article - tags: - - follow - - article - responses: - 204: - description: Return only http status 204 on success - 401: - $ref: '#/components/responses/401' - /constitutions/{constitution}/follows: - parameters: - - $ref: '#/components/parameters/constitution' - post: - security: - - JWTAuth: [] - summary: Follow one constitution - tags: - - follow - - constitution - responses: - 201: - description: Return only http status 201 on success - 401: - $ref: '#/components/responses/401' - delete: - security: - - JWTAuth: [] - summary: Unfollow one constitution - tags: - - follow - - constitution - responses: - 204: - description: Return only http status 204 on success - 401: - $ref: '#/components/responses/401' - - /articles/{article}/vote: - parameters: - - $ref: '#/components/parameters/article' - put: - security: - - JWTAuth: [] - summary: Vote for one article - tags: - - vote - - article - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/VoteRequest' - responses: - 201: - description: Return only http status 201 on success - content: - application/json: - schema: - $ref: '#/components/schemas/VoteAggregation' - 401: - $ref: '#/components/responses/401' - /constitutions/{constitution}/vote: - parameters: - - $ref: '#/components/parameters/constitution' - put: - security: - - JWTAuth: [] - summary: Vote for one constitution - tags: - - vote - - constitution - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/VoteRequest' - responses: - 201: - description: Return only http status 201 on success - /comments/{comment}/vote: - parameters: - - $ref: '#/components/parameters/comment' - put: - security: - - JWTAuth: [] - summary: Vote for a comment - tags: - - vote - - comment - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/VoteRequest' - responses: - 201: - description: Return votes aggregation - content: - application/json: - schema: - $ref: '#/components/schemas/VoteAggregation' - 401: - $ref: '#/components/responses/401' - - /articles/{article}/opinions: - parameters: - - $ref: '#/components/parameters/article' - put: - security: - - JWTAuth: [] - summary: Add Opinion on one article - tags: - - opinion - - article - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ArticleOpinionRequest' - responses: - 201: - description: Return the opinion - content: - application/json: - schema: - $ref: '#/components/schemas/Opinion' - 401: - $ref: '#/components/responses/401' - /opinions: - get: - summary: Get all opinions choices - tags: - - opinion - parameters: - - in: query - required: false - name: targets - description: opinion available for defined target - example: - - article - schema: - type: array - items: - type: string - responses: - 200: - description: return - content: - application/json: - schema: - $ref: '#/components/schemas/OpinionChoices' - /opinions/{opinion}: - parameters: - - $ref: '#/components/parameters/opinion' - get: - security: - - {} - summary: Get one opinion Choices - tags: - - opinion - responses: - 200: - description: return - content: - application/json: - schema: - $ref: '#/components/schemas/OpinionChoice' - /citizens/{citizen}/opinions: - parameters: - - $ref: '#/components/parameters/citizen' - get: - security: - - JWTAuth: [] - summary: Get all opinions of citizen filtered by target ids - tags: - - opinion - - citizen - parameters: - - in: query - required: true - name: id - description: target ids - example: - - 9226c1a3-8091-c3fa-7d0d-c2e98c9bee7b - schema: - type: array - items: - type: string - format: uuid - responses: - 200: - description: Opinions - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Opinion' - /citizens/{citizen}/opinions/articles: - parameters: - - $ref: '#/components/parameters/citizen' - get: - security: - - JWTAuth: [] - summary: Get all opinions of one citizen - tags: - - opinion - - citizen - responses: - 200: - description: Opinions - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/Opinion' - - - /citizens/{citizen}/votes/articles: - parameters: - - $ref: '#/components/parameters/citizen' - get: - security: - - JWTAuth: [] - summary: all article vote for one citizen - tags: - - vote - - article - - citizen - responses: - 200: - description: Votes - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/VoteResponse' - 401: - $ref: '#/components/responses/401' - /citizens/{citizen}/comments/articles: - parameters: - - $ref: '#/components/parameters/citizen' - get: - security: - - JWTAuth: [] - summary: all article comments for one citizen - tags: - - comment - - article - - citizen - responses: - 200: - description: Comments - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/CommentResponse' - 401: - $ref: '#/components/responses/401' - - /workgroups: - get: - summary: Get all Workgroup (Paginated) - security: - - {} - - JWTAuth: [] - tags: - - workgroup - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/workgroupSort' - - $ref: '#/components/parameters/direction' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/createdBy' - responses: - 200: - description: paginated list of workgroup - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - result: - type: array - items: - $ref: '#/components/schemas/WorkgroupSimple' - post: - summary: Create new Workgroup - security: - - JWTAuth: [] - tags: - - workgroup - requestBody: - content: - application/json: - schema: - required: - - name - properties: - id: - type: string - format: uuid - nullable: true - name: - type: string - example: Les partisants du RIC - description: - type: string - example: Group formé pour la conception d'un RIC - logo: - type: string - nullable: true - anonymous: - type: boolean - example: false - nullable: true - default: true - owner: - type: string - format: uuid - example: 6434f4f9-f570-f22a-c134-8668350651ff - nullable: true - responses: - 201: - description: Workgroup created - content: - application/json: - schema: - properties: - id: - type: string - format: uuid - name: - type: string - example: Les partisants du RIC - description: - type: string - example: Group formé pour la conception d'un RIC - logo: - type: string - anonymous: - type: boolean - example: false - owner: - type: string - format: uuid - /workgroups/{workgroup}: - parameters: - - $ref: '#/components/parameters/workgroup' - get: - summary: Get one workgroup by ID - security: - - {} - - JWTAuth: [] - tags: - - workgroup - responses: - 200: - description: Workgroup - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Workgroup' - put: - summary: Edit one workgroup - security: - - JWTAuth: [] - tags: - - workgroup - requestBody: - content: - application/json: - schema: - required: - - name - properties: - name: - type: string - example: Les partisants du RIC - description: - type: string - example: Group formé pour la conception d'un RIC - logo: - type: string - nullable: true - anonymous: - type: boolean - example: false - nullable: true - default: true - owner: - type: string - format: uuid - example: 6434f4f9-f570-f22a-c134-8668350651ff - nullable: true - responses: - 200: - description: Workgroup updated - content: - application/json: - schema: - properties: - id: - type: string - format: uuid - name: - type: string - example: Les partisants du RIC - description: - type: string - example: Group formé pour la conception d'un RIC - logo: - type: string - anonymous: - type: boolean - example: false - owner: - type: string - format: uuid - delete: - summary: Delete one workgroup - security: - - JWTAuth: [] - tags: - - workgroup - responses: - 204: - description: Workgroup deleted - /workgroups/{workgroup}/members: - parameters: - - $ref: '#/components/parameters/workgroup' - post: - summary: Add members to the workgroup - security: - - JWTAuth: [] - tags: - - workgroup - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MembersRequest' - responses: - 201: - description: the list of members - content: - application/json: - schema: - $ref: '#/components/schemas/MembersResponse' - put: - summary: Updates ALL members. PLEASE NOTE this removes all members who are not in request! - security: - - JWTAuth: [] - tags: - - workgroup - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MembersRequest' - responses: - 201: - description: the list of members - content: - application/json: - schema: - $ref: '#/components/schemas/MembersResponse' - delete: - summary: Delete members of workgroup - security: - - JWTAuth: [] - tags: - - workgroup - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MembersRequest' - responses: - 200: - description: the list of members - content: - application/json: - schema: - $ref: '#/components/schemas/MembersResponse' - -components: - responses: - 401: - description: Unautorized - content: - application/json: - schema: - description: noting - parameters: - page: - name: page - in: query - description: The current page - example: 1 - required: false - schema: - default: 1 - type: integer - minimum: 1 - limit: - name: limit - in: query - description: The number of object per page - example: 50 - required: false - schema: - default: 50 - type: integer - minimum: 1 - maximum: 50 - sort: - name: sort - in: query - description: The sort field name - example: first_name - required: false - schema: - type: string - articleSort: - name: sort - in: query - description: The sort field name - example: createdAt - required: false - schema: - type: string - enum: - - title - - createdAt - - vote - - popularity - workgroupSort: - name: sort - in: query - description: The sort field name - example: createdAt - required: false - schema: - type: string - enum: - - name - - createdAt - direction: - name: direction - in: query - description: The sort direction - example: asc - required: false - schema: - type: string - default: asc - enum: [asc, desc] - search: - name: search - in: query - description: A text to seach - example: content50 - required: false - schema: - type: string - createdBy: - name: createdBy - in: query - description: filter by Author - example: 4d673bfa-eaef-4290-b52f-85a9c8a7eba5 - required: false - schema: - type: string - format: uuid - - citizen: - name: citizen - in: path - description: ID of citizen - example: 6434f4f9-f570-f22a-c134-8668350651ff - required: true - schema: - type: string - format: uuid - - article: - name: article - in: path - required: true - description: the ID of article - example: d91aa0cd-61d6-83cc-41bb-8d5656e130f7 - schema: - type: string - format: uuid - opinion: - in: path - required: true - name: opinion - description: Opinion ID - example: 6e978eb5-3c48-0def-b093-e01f43983adb - schema: - type: string - format: uuid - - constitution: - name: constitution - in: path - required: true - description: the ID of constitution - example: e74be8e4-6823-47c4-bd1b-789725b2fa8e - schema: - type: string - format: uuid - - comment: - name: comment - in: path - description: The ID of comment - example: 701dc504-db49-7e3a-2c0a-32542507ea57 - required: true - schema: - type: string - format: uuid - - workgroup: - name: workgroup - in: path - description: ID of workgroup - example: 82a0e60a-bb55-dbc0-1c3d-0a804df2b5df - required: true - schema: - type: string - format: uuid - - securitySchemes: - JWTAuth: - type: http - scheme: bearer - description: call /login to get token - bearerFormat: JWT - - schemas: - UUID: - type: string - pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}' - description: UUID - format: uuid - example: - e74be8e4-6823-47c4-bd1b-789725b2fa8e - - UuidEntity: - properties: - id: - $ref: '#/components/schemas/UUID' - - CreatedBy: - properties: - created_by: - $ref: '#/components/schemas/CitizenResponse' - - CreatedAt: - properties: - created_at: - type: string - format: 'date-time' - UpdatedAt: - properties: - updated_at: - type: string - format: 'date-time' - DeletedAt: - properties: - deleted_at: - type: string - format: 'date-time' - deleted: - type: boolean - - versionId: - properties: - version_id: - $ref: '#/components/schemas/UUID' - - lastVersion: - properties: - last_version: - type: boolean - default: false - - Paginated: - properties: - result: - type: array - items: - $ref: '#/components/schemas/UuidEntity' - count: - type: integer - minimum: 0 - example: 1 - currentPage: - type: integer - minimum: 0 - example: 1 - limit: - type: integer - minimum: 0 - example: 50 - offset: - type: integer - minimum: 0 - example: 1 - total: - type: integer - minimum: 0 - example: 1 - - UserBase: - required: - - username - properties: - username: - type: string - example: - john-doe - UserResponse: - allOf: - - $ref: '#/components/schemas/UserBase' - - $ref: '#/components/schemas/UuidEntity' - UserRequest: - allOf: - - $ref: '#/components/schemas/UserBase' - - type: object - required: - - password - properties: - password: - type: string - example: - azerty - format: password - - CitizenResponse: - allOf: - - $ref: '#/components/schemas/CitizenBase' - - $ref: '#/components/schemas/CreatedAt' - - $ref: '#/components/schemas/UuidEntity' - - type: object - properties: - user: - $ref: '#/components/schemas/UserResponse' - CitizenBase: - type: object - required: - - first_name - - last_name - properties: - name: - type: object - properties: - first_name: - type: string - example: - john - last_name: - type: string - example: - Doe - birthday: - type: string - format: 'date' - example: '1984-12-25' - email: - type: string - format: email - example: my.email@dc-project.fr - CitizenRequest: - allOf: - - $ref: '#/components/schemas/CitizenBase' - - type: object - properties: - user: - $ref: '#/components/schemas/UserRequest' - - RegisterRequest: - $ref: '#/components/schemas/CitizenRequest' - - LoginRequest: - required: - - name - - password - properties: - name: - type: string - description: username - example: - john-doe - password: - type: string - description: Pasword - example: - azerty - - ArticleBase: - type: object - allOf: - - type: object - required: - - title - - content - - description - - tags - - anonymous - - draft - properties: - title: - type: string - example: - Limit power of press - content: - type: string - example: - Lorem upsum... - description: - type: string - example: - I think is the bether choice - tags: - type: array - items: - type: string - default: [] - example: [power, press] - anonymous: - type: boolean - default: true - draft: - type: boolean - default: false - workgroup: - allOf: - - $ref: '#/components/schemas/UuidEntity' - - default: null - - $ref: '#/components/schemas/versionId' - ArticleResponse: - type: object - allOf: - - $ref: '#/components/schemas/ArticleBase' - - $ref: '#/components/schemas/UuidEntity' - - $ref: '#/components/schemas/CreatedBy' - - $ref: '#/components/schemas/CreatedAt' - - $ref: '#/components/schemas/lastVersion' - - $ref: '#/components/schemas/Votable' - - $ref: '#/components/schemas/Opinionable' - - ArticleRequest: - $ref: '#/components/schemas/ArticleBase' - - ConstitutionBase: - type: object - allOf: - - type: object - required: - - title - properties: - title: - type: string - example: - Constitution for the liberty - titles: - type: array - default: [] - items: - $ref: '#/components/schemas/TitleBase' - anonymous: - type: boolean - default: true - draft: - type: boolean - default: false - - $ref: '#/components/schemas/versionId' - ConstitutionResponse: - type: object - allOf: - - $ref: '#/components/schemas/ConstitutionBase' - - $ref: '#/components/schemas/UuidEntity' - - $ref: '#/components/schemas/CreatedBy' - - $ref: '#/components/schemas/CreatedAt' - - type: object - properties: - titles: - type: array - items: - $ref: '#/components/schemas/TitleResponse' - ConstitutionRequest: - allOf: - - $ref: '#/components/schemas/ConstitutionBase' - - type: object - properties: - titles: - type: array - items: - $ref: '#/components/schemas/TitleRequest' - - TitleBase: - type: object - required: - - name - properties: - name: - type: string - example: - The liberties - rank: - type: integer - minimum: 0 - example: - 0 - TitleRequest: - type: object - allOf: - - $ref: '#/components/schemas/TitleBase' - - $ref: '#/components/schemas/UuidEntity' - - type: object - properties: - articles: - type: array - items: - $ref: '#/components/schemas/UuidEntity' - TitleResponse: - type: object - allOf: - - $ref: '#/components/schemas/TitleBase' - - $ref: '#/components/schemas/UuidEntity' - - $ref: '#/components/schemas/CreatedAt' - - $ref: '#/components/schemas/CreatedBy' - - type: object - properties: - articles: - type: array - items: - $ref: '#/components/schemas/ArticleResponse' - - Extra: - type: object - allOf: - - $ref: '#/components/schemas/UuidEntity' - - $ref: '#/components/schemas/CreatedAt' - - $ref: '#/components/schemas/CreatedBy' - - type: object - properties: - target: - $ref: '#/components/schemas/UuidEntity' - - CommentBase: - type: object - allOf: - - type: object - required: - - content - properties: - content: - type: string - example: - Lorem ipsum... - CommentRequest: - allOf: - - $ref: '#/components/schemas/CommentBase' - - CommentResponse: - allOf: - - $ref: '#/components/schemas/CommentBase' - - $ref: '#/components/schemas/UpdatedAt' - - $ref: '#/components/schemas/Extra' - - $ref: '#/components/schemas/Votable' - - type: object - required: - - parent_ids - - parent - properties: - parents_ids: - type: array - items: - $ref: '#/components/schemas/UUID' - parent: - allOf: - - $ref: '#/components/schemas/UUID' - - FollowBase: - allOf: - - $ref: '#/components/schemas/Extra' - FollowResponse: - allOf: - - $ref: '#/components/schemas/FollowBase' - - - VoteBase: - allOf: - - type: object - required: - - note - properties: - note: - type: integer - minimum: -1 - maximum: 1 - VoteRequest: - allOf: - - $ref: '#/components/schemas/VoteBase' - VoteResponse: - allOf: - - $ref: '#/components/schemas/VoteBase' - - $ref: '#/components/schemas/Extra' - VoteAggregation: - allOf: - - type: object - properties: - up: - type: number - minimum: 0 - neutral: - type: number - minimum: 0 - down: - type: number - minimum: 0 - total: - type: number - minimum: 0 - score: - type: number - - $ref: '#/components/schemas/UpdatedAt' - Votable: - type: object - properties: - votes: - $ref: '#/components/schemas/VoteAggregation' - Opinionable: - type: object - properties: - opinions: - type: string - additionalProperties: true - example: - Opinion1: 1 - Opinion2: 55 - - ArticleOpinionRequest: - type: object - properties: - ids: - type: array - items: - type: string - format: uuid - example: 6e978eb5-3c48-0def-b093-e01f43983adb - - OpinionChoices: - description: Opinion Choice - type: array - items: - $ref: '#/components/schemas/OpinionChoice' - - OpinionChoice: - description: Opinion Choice - allOf: - - type: object - required: - - name - properties: - id: - type: string - format: uuid - name: - type: string - example: opinion1 - target: - type: array - nullable: true - items: - type: string - description: the name of the target - - $ref: '#/components/schemas/CreatedAt' - - $ref: '#/components/schemas/DeletedAt' - - Opinion: - description: Opinion - allOf: - - type: object - properties: - id: - type: string - format: uuid - name: - type: string - example: opinion1 - target: - type: object - properties: - id: - type: string - format: uuid - reference: - type: string - example: article - choice: - type: object - allOf: - - $ref: '#/components/schemas/OpinionChoice' - reference: - type: string - example: opinion_on_article - - $ref: '#/components/schemas/CreatedBy' - - $ref: '#/components/schemas/CreatedAt' - - WorkgroupSimple: - description: Workgroup - allOf: - - type: object - properties: - id: - type: string - format: uuid - name: - type: string - example: Les partisants du RIC - description: - type: string - example: Group formé pour la conception d'un RIC - logo: - type: string - anonymous: - type: boolean - example: false - - $ref: '#/components/schemas/CreatedBy' - - $ref: '#/components/schemas/DeletedAt' - Workgroup: - description: Workgroup - allOf: - - $ref: '#/components/schemas/WorkgroupSimple' - - type: object - properties: - members: - $ref: '#/components/schemas/MembersResponse' - - $ref: '#/components/schemas/CreatedAt' - - $ref: '#/components/schemas/UpdatedAt' - MembersRequest: - description: members of workgroup - type: array - items: - $ref: '#/components/schemas/MemberRequest' - MembersResponse: - description: members of workgroup - type: array - items: - $ref: '#/components/schemas/MemberResponse' - MemberResponse: - description: Member of workgroup - type: object - properties: - citizen: - $ref: '#/components/schemas/CitizenResponse' - roles: - type: array - items: - type: string - enum: - - MASTER - - MANAGER - - EDITOR - - REPORTER - example: MASTER - MemberRequest: - description: Member of workgroup - type: object - properties: - citizen: - $ref: '#/components/schemas/UuidEntity' - roles: - type: array - items: - type: string - enum: - - MASTER - - MANAGER - - EDITOR - - REPORTER - example: MASTER - - - - requestBodies: - RegisterRequest: - content: - application/json: - schema: - $ref: '#/components/schemas/RegisterRequest' - description: Register - required: true - - LoginRequest: - content: - application/json: - schema: - $ref: '#/components/schemas/LoginRequest' - description: Login - required: true - -servers: - - description: localhost - url: http://localhost:8080 - - description: production - url: http://dc-project.fr \ No newline at end of file From dcf7a2bc06a55851cbe91e3364a8ba868e3417db Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Wed, 24 Mar 2021 19:34:39 +0100 Subject: [PATCH 2/3] Rename openapi file --- src/main/resources/{openapi2.yaml => openapi.yaml} | 0 src/test/kotlin/integration/steps/then/schema.kt | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename src/main/resources/{openapi2.yaml => openapi.yaml} (100%) diff --git a/src/main/resources/openapi2.yaml b/src/main/resources/openapi.yaml similarity index 100% rename from src/main/resources/openapi2.yaml rename to src/main/resources/openapi.yaml diff --git a/src/test/kotlin/integration/steps/then/schema.kt b/src/test/kotlin/integration/steps/then/schema.kt index a3df36e..bde3e69 100644 --- a/src/test/kotlin/integration/steps/then/schema.kt +++ b/src/test/kotlin/integration/steps/then/schema.kt @@ -33,7 +33,7 @@ fun Schema.validate(api: OpenApi3, toValidate: JsonNode) { } fun TestApplicationResponse.operation(route: String? = null, callback: Operation.(OpenApi3, String) -> Unit): Operation { - val filePath = "/openapi2.yaml" + val filePath = "/openapi.yaml" return OpenApi3Parser().parse(File(filePath.getResource().toURI()), true).let { api: OpenApi3 -> val httpMethod = call.request.httpMethod val uri = route ?: "/" + Url(call.request.uri).encodedPath From 70fd54d8310a1910ea94102de69fc73f1ef41b41 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Wed, 24 Mar 2021 19:35:11 +0100 Subject: [PATCH 3/3] Fix destination installation doc --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aab1e9e..0031dba 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![CodeFactor](https://www.codefactor.io/repository/github/flecomte/dc-project/badge?s=869dc426625a253a07bea95f9380e23fdb048b94)](https://www.codefactor.io/repository/github/flecomte/dc-project) [![Tests](https://github.com/flecomte/dc-project/actions/workflows/tests.yml/badge.svg)](https://github.com/flecomte/dc-project/actions/workflows/tests.yml) -[Installation](./doc/installation) +[Installation](./doc/installation/Installation.md) ### Run dockers ```bash