diff --git a/api/views/documentation/admins/admin.yml b/api/views/documentation/admins/admin.yml index c268e30..3ec78db 100644 --- a/api/views/documentation/admins/admin.yml +++ b/api/views/documentation/admins/admin.yml @@ -1,44 +1,120 @@ -Retreives an admin from the DB +Admin API --- tags: - Admins -parameters: - - name: admin_id - in: path - type: string - required: true - description: The id of the admin to retrieve -responses: - 404: - description: An admin with the id does not exist - 200: - description: "Request returned sucessfully" - schema: - type: object - items: +get: + summary: Retrieves an admin from the database + parameters: + - name: admin_id + in: path + type: string + required: true + description: The ID of the admin to retrieve + responses: + 200: + description: Request returned successfully + content: + application/json: + schema: + $ref: '#/components/schemas/Admin' + example: + created_at: "2017-03-25T02:17:06Z" + email: "jesulayomi@schub.com" + first_name: "Aina" + id: "53af4926-52ee-41d0-9acc-ae7230000001" + last_name: "Jesulayomi" + recovery_question: "What is your baby's name?" + 404: + description: Admin with the specified ID does not exist + +put: + summary: Updates an existing admin + parameters: + - name: admin_id + in: path + type: string + required: true + description: The ID of the admin to update + - in: body + name: admin_body + description: The body of the admin to update + schema: + type: object properties: - created_at: + first_name: type: string - description: time of creation of the User - id: + description: Admin's first name + last_name: type: string - description: The uuid of the User + description: Admin's last name email: - type: string - description: User's email + type: string + format: email + description: Admin's email address recovery_question: - type: string - description: User's password recovery question - first_name: - type: string - description: User's first name - last_name: - type: string - description: user's last name - example: - "created_at": "2017-03-25T02:17:06" - "email": "jesulayomi@schub.com" - "first_name": "Aina" - "id": "53af4926-52ee-41d0-9acc-ae7230000001" - "last_name": "Jesulayomi" - "recovery_question": "What is your baby's name" + type: string + description: Admin's password recovery question + responses: + 200: + description: Admin updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/Admin' + example: + created_at: "2017-03-25T02:17:06Z" + email: "aina.jesulayomi@schub.com" + first_name: "Aina" + id: "53af4926-52ee-41d0-9acc-ae7230000001" + last_name: "Jesulayomi" + recovery_question: "What is your favorite color?" + 400: + description: Bad request (invalid JSON) + 404: + description: Admin with the specified ID does not exist + +delete: + summary: Deletes an admin + parameters: + - name: admin_id + in: path + type: string + required: true + description: The ID of the admin to delete + responses: + 200: + description: Admin deleted successfully + content: + application/json: + schema: + type: object + example: {} + 404: + description: Admin with the specified ID does not exist + +components: + schemas: + Admin: + type: object + properties: + created_at: + type: string + format: date-time + description: Time of creation of the admin + id: + type: string + format: uuid + description: The UUID of the admin + email: + type: string + format: email + description: Admin's email address + recovery_question: + type: string + description: Admin's password recovery question + first_name: + type: string + description: Admin's first name + last_name: + type: string + description: Admin's last name diff --git a/api/views/documentation/admins/admins.yml b/api/views/documentation/admins/admins.yml index e8d446c..524d5a6 100644 --- a/api/views/documentation/admins/admins.yml +++ b/api/views/documentation/admins/admins.yml @@ -1,43 +1,105 @@ -Retreives all admins from the DB +Admins API --- tags: - Admins -responses: - 200: - description: "Request returned sucessfully" - schema: +get: + summary: Retrieves all admins from the database + parameters: + - name: email + in: query + type: string + description: Filter admins by email address + responses: + 200: + description: Request returned successfully + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Admin' + example: + - created_at: "2017-03-25T02:17:06Z" + email: "jesulayomi@schub.com" + first_name: "Aina" + id: "53af4926-52ee-41d0-9acc-ae7230000001" + last_name: "Jesulayomi" + recovery_question: "What is your baby's name?" + - created_at: "2017-03-25T02:17:06Z" + email: "samuel@schub.com" + first_name: "Iwelumo" + id: "53af4926-52ee-41d0-9acc-ae7230000002" + last_name: "Samuel" + recovery_question: "What is your baby's name?" + 404: + description: No admin found with the specified email + +post: + summary: Creates a new admin + parameters: + - name: first_name + in: formData + required: true + type: string + description: Admin's first name + - name: last_name + in: formData + required: true + type: string + description: Admin's last name + - name: email + in: formData + required: true + type: string + format: email + description: Admin's email address + - name: password + in: formData + required: true + type: string + format: password + description: Admin's password + responses: + 201: + description: Admin created successfully + content: + application/json: + schema: + $ref: '#/components/schemas/Admin' + example: + created_at: "2023-04-15T10:30:00Z" + email: "john.doe@example.com" + first_name: "John" + id: "53af4926-52ee-41d0-9acc-ae7230000003" + last_name: "Doe" + recovery_question: "What is your mother's maiden name?" + 400: + description: Bad request (missing required fields or invalid data) + +components: + schemas: + Admin: type: object - items: - properties: - created_at: - type: string - description: time of creation of the User - id: - type: string - description: The uuid of the User - email: - type: string - description: User's email - recovery_question: - type: string - description: User's password recovery question - first_name: - type: string - description: User's first name - last_name: - type: string - description: user's last name - example: - - "created_at": "2017-03-25T02:17:06" - "email": "jesulayomi@schub.com" - "first_name": "Aina" - "id": "53af4926-52ee-41d0-9acc-ae7230000001" - "last_name": "Jesulayomi" - "recovery_question": "What is your baby's name" - - "created_at": "2017-03-25T02:17:06" - "email": "samuel@schub.com" - "first_name": "Iwelumo" - "id": "53af4926-52ee-41d0-9acc-ae7230000002" - "last_name": "Samuel" - "recovery_question": "What is your baby's name" + properties: + created_at: + type: string + format: date-time + description: Time of creation of the admin + id: + type: string + format: uuid + description: The UUID of the admin + email: + type: string + format: email + description: Admin's email address + recovery_question: + type: string + description: Admin's password recovery question + first_name: + type: string + description: Admin's first name + last_name: + type: string + description: Admin's last name