docs: Update Swagger documentation for Profile endpoints

Updated the Swagger documentation for various Profile endpoints to accurately
reflect their return types, including arrays of Profile objects and detailed
schemas for specific responses.
This commit is contained in:
Adolfo Reyna
2025-07-17 10:06:52 -04:00
parent e4bac717f9
commit 0b36db9b33

View File

@@ -19,6 +19,70 @@ DB.getDB.then((DB) => {
* tags: * tags:
* name: Profiles * name: Profiles
* description: User profile management * description: User profile management
*/
/**
* @swagger
* components:
* schemas:
* Profile:
* type: object
* properties:
* userid:
* type: string
* description: The ID of the user associated with the profile.
* profile:
* type: object
* properties:
* firstName:
* type: string
* lastName:
* type: string
* photo:
* type: string
* location:
* type: string
* language:
* type: string
* status:
* type: string
* description:
* type: string
* data:
* type: object
* description: Additional custom data for the profile.
* username:
* type: string
* following:
* type: array
* items:
* type: string
* description: List of profile IDs this profile is following.
* lastUpdate:
* type: string
* format: date-time
* newsFeedCache:
* type: array
* items:
* type: object
* notifications:
* type: array
* items:
* type: object
* isGroup:
* type: boolean
* isCourse:
* type: boolean
* isPrivate:
* type: boolean
* isChat:
* type: boolean
* subscribed:
* type: object
* description: Users subscribed to this group (if isGroup is true).
* pending:
* type: object
* description: Pending subscription requests for private groups.
*/ */
/** /**
@@ -42,7 +106,7 @@ DB.getDB.then((DB) => {
* profiles: * profiles:
* type: array * type: array
* items: * items:
* type: object * $ref: '#/components/schemas/Profile'
*/ */
router.get("/mine", async (req, res) => { router.get("/mine", async (req, res) => {
let userid = getUserId(req); let userid = getUserId(req);
@@ -67,9 +131,14 @@ DB.getDB.then((DB) => {
* required: true * required: true
* schema: * schema:
* type: object * type: object
* $ref: '#/components/schemas/Profile'
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/Profile'
*/ */
router.get("/new", async (req, res) => { //Deprecated please use route post("/") router.get("/new", async (req, res) => { //Deprecated please use route post("/")
let profile = { let profile = {
@@ -97,13 +166,14 @@ DB.getDB.then((DB) => {
* content: * content:
* application/json: * application/json:
* schema: * schema:
* type: object * $ref: '#/components/schemas/Profile'
* properties:
* content:
* type: object
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/Profile'
*/ */
router.post("/", async (req, res) => { router.post("/", async (req, res) => {
let profile = { let profile = {
@@ -207,6 +277,16 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
* invitation:
* $ref: '#/components/schemas/Profile'
*
*/ */
router.get("/invite/:email", async (req, res) => { router.get("/invite/:email", async (req, res) => {
const userid = getUserId(req); const userid = getUserId(req);
@@ -231,6 +311,17 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
* groups:
* type: array
* items:
* $ref: '#/components/schemas/Profile'
*/ */
router.get("/groups", async (req, res) => { router.get("/groups", async (req, res) => {
let groups = await DB.getGroups(); let groups = await DB.getGroups();
@@ -251,6 +342,17 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
* groups:
* type: array
* items:
* $ref: '#/components/schemas/Profile'
*/ */
router.get("/groups/following", async (req, res) => { router.get("/groups/following", async (req, res) => {
const profileId = getProfileId(req); const profileId = getProfileId(req);
@@ -274,10 +376,14 @@ DB.getDB.then((DB) => {
* content: * content:
* application/json: * application/json:
* schema: * schema:
* type: object * $ref: '#/components/schemas/Profile'
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/Profile'
*/ */
router.post("/groups", async (req, res) => { router.post("/groups", async (req, res) => {
let profile = { let profile = {
@@ -304,6 +410,17 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
* groups:
* type: array
* items:
* $ref: '#/components/schemas/Profile'
*/ */
router.get("/courses", async (req, res) => { router.get("/courses", async (req, res) => {
let groups = await DB.getCourses(); let groups = await DB.getCourses();
@@ -418,6 +535,17 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
* groups:
* type: array
* items:
* $ref: '#/components/schemas/Profile'
*/ */
router.get("/groups/search", async (req, res) => { router.get("/groups/search", async (req, res) => {
let query = req.query.query; let query = req.query.query;
@@ -446,6 +574,15 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
* groups:
* $ref: '#/components/schemas/Profile'
*/ */
router.get("/groups/:id", async (req, res) => { router.get("/groups/:id", async (req, res) => {
const groupid = req.params.id; const groupid = req.params.id;
@@ -531,6 +668,17 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
* profiles:
* type: array
* items:
* $ref: '#/components/schemas/Profile'
*/ */
router.get("/search", async (req, res) => { router.get("/search", async (req, res) => {
let query = req.query.query; let query = req.query.query;
@@ -563,6 +711,13 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
*/ */
router.post("/setData", (req, res) => { router.post("/setData", (req, res) => {
const key = req.body.key; const key = req.body.key;
@@ -590,12 +745,19 @@ DB.getDB.then((DB) => {
* type: object * type: object
* properties: * properties:
* profile: * profile:
* type: object * $ref: '#/components/schemas/Profile'
* data: * data:
* type: object * type: object
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
*/ */
router.post("/myProfile", async (req, res) => { router.post("/myProfile", async (req, res) => {
let profile = { let profile = {
@@ -627,6 +789,10 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/Profile'
*/ */
router.get("/:id", async (req, res) => { router.get("/:id", async (req, res) => {
let profileId = req.params.id; let profileId = req.params.id;
@@ -654,6 +820,13 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
*/ */
router.delete("/:id", async (req, res) => { router.delete("/:id", async (req, res) => {
const profileId = req.params.id; const profileId = req.params.id;
@@ -685,6 +858,13 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
*/ */
router.get("/:id/follow", async (req, res) => { router.get("/:id/follow", async (req, res) => {
let followProfileId = req.params.id; let followProfileId = req.params.id;
@@ -713,6 +893,13 @@ DB.getDB.then((DB) => {
* responses: * responses:
* 200: * 200:
* description: OK * description: OK
* content:
* application/json:
* schema:
* type: object
* properties:
* status:
* type: string
*/ */
router.get("/:id/unfollow", async (req, res) => { router.get("/:id/unfollow", async (req, res) => {
let followProfileId = req.params.id; let followProfileId = req.params.id;