location controller updated with heading and created new models and controllers for remaining modules

This commit is contained in:
Shibi Chakkaravarthy
2026-05-04 20:57:03 +05:30
parent 1245e09111
commit 54d9508dc8
31 changed files with 2140 additions and 96 deletions
+56 -16
View File
@@ -60,10 +60,10 @@ export default {
},
},
},
"/admin/designations": {
"/admin/metadata": {
get: {
tags: ["Admin"],
summary: "Get All Designations",
summary: "Get All Metadata",
responses: {
200: {
description: "OK",
@@ -72,22 +72,10 @@ export default {
},
},
},
"/admin/departments": {
"/admin/employees": {
get: {
tags: ["Admin"],
summary: "Get All Departments",
responses: {
200: {
description: "OK",
content: {},
},
},
},
},
"/admin/roles": {
get: {
tags: ["Admin"],
summary: "Get All Roles",
summary: "Get All Employees",
responses: {
200: {
description: "OK",
@@ -238,4 +226,56 @@ export default {
},
},
},
"/admin/employee/{id}": {
get: {
tags: ["Admin"],
summary: "Get Employee Details by ID",
parameters: [
{
in: "path",
name: "id",
required: true,
schema: {
type: "string",
},
},
],
responses: {
200: {
description: "OK",
content: {},
},
},
},
},
"/admin/employee/{user}/locations": {
get: {
tags: ["Admin"],
summary: "Get Employee Details by ID",
parameters: [
{
in: "path",
name: "user",
required: true,
schema: {
type: "string",
},
},
{
in: "query",
name: "date",
required: true,
schema: {
type: "string",
},
},
],
responses: {
200: {
description: "OK",
content: {},
},
},
},
},
};
+148
View File
@@ -0,0 +1,148 @@
export default {
"/assignment": {
post: {
tags: ["Assignment"],
summary: "Create an assignment",
requestBody: {
content: {
"application/json": {
schema: {
type: "object",
properties: {
user: {
type: "string",
required: true,
},
venue: {
type: "string",
required: true,
},
targetedVisits: {
type: "number",
required: true,
},
},
},
},
},
},
responses: {
200: {
description: "OK",
content: {},
},
},
},
},
"/assignment/{id}": {
patch: {
tags: ["Assignment"],
summary: "Update an assignment",
parameters: [
{
in: "path",
name: "id",
required: true,
schema: {
type: "string",
},
},
],
requestBody: {
content: {
"application/json": {
schema: {
type: "object",
properties: {
user: {
type: "string",
required: true,
},
venue: {
type: "string",
required: true,
},
targetedVisits: {
type: "number",
required: true,
},
},
},
},
},
},
responses: {
200: {
description: "OK",
content: {},
},
},
},
delete: {
tags: ["Assignment"],
summary: "Delete an assignment",
parameters: [
{
in: "path",
name: "id",
required: true,
schema: {
type: "string",
},
},
],
responses: {
200: {
description: "OK",
content: {},
},
},
},
},
"/assignment/user/{id}": {
get: {
tags: ["Assignment"],
summary: "Get all assignments for a user",
parameters: [
{
in: "path",
name: "id",
description: "User ID",
required: true,
schema: {
type: "string",
},
},
],
responses: {
200: {
description: "OK",
content: {},
},
},
},
},
"/assignment/venue/{id}": {
get: {
tags: ["Assignment"],
summary: "Get all assignments for a Venue",
parameters: [
{
in: "path",
name: "id",
description: "Venue ID",
required: true,
schema: {
type: "string",
},
},
],
responses: {
200: {
description: "OK",
content: {},
},
},
},
},
};
+600 -18
View File
@@ -343,12 +343,12 @@
}
}
},
"/admin/designations": {
"/admin/metadata": {
"get": {
"tags": [
"Admin"
],
"summary": "Get All Designations",
"summary": "Get All Metadata",
"responses": {
"200": {
"description": "OK",
@@ -357,26 +357,12 @@
}
}
},
"/admin/departments": {
"/admin/employees": {
"get": {
"tags": [
"Admin"
],
"summary": "Get All Departments",
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
}
},
"/admin/roles": {
"get": {
"tags": [
"Admin"
],
"summary": "Get All Roles",
"summary": "Get All Employees",
"responses": {
"200": {
"description": "OK",
@@ -534,6 +520,602 @@
}
}
}
},
"/admin/employee/{id}": {
"get": {
"tags": [
"Admin"
],
"summary": "Get Employee Details by ID",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
}
},
"/admin/employee/{user}/locations": {
"get": {
"tags": [
"Admin"
],
"summary": "Get Employee Details by ID",
"parameters": [
{
"in": "path",
"name": "user",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "date",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
}
},
"/assignment": {
"post": {
"tags": [
"Assignment"
],
"summary": "Create an assignment",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"user": {
"type": "string",
"required": true
},
"venue": {
"type": "string",
"required": true
},
"targetedVisits": {
"type": "number",
"required": true
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
}
},
"/assignment/{id}": {
"patch": {
"tags": [
"Assignment"
],
"summary": "Update an assignment",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"user": {
"type": "string",
"required": true
},
"venue": {
"type": "string",
"required": true
},
"targetedVisits": {
"type": "number",
"required": true
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
},
"delete": {
"tags": [
"Assignment"
],
"summary": "Delete an assignment",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
}
},
"/assignment/user/{id}": {
"get": {
"tags": [
"Assignment"
],
"summary": "Get all assignments for a user",
"parameters": [
{
"in": "path",
"name": "id",
"description": "User ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
}
},
"/assignment/venue/{id}": {
"get": {
"tags": [
"Assignment"
],
"summary": "Get all assignments for a Venue",
"parameters": [
{
"in": "path",
"name": "id",
"description": "Venue ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
}
},
"/partner": {
"get": {
"tags": [
"Partner"
],
"summary": "Get all Partners",
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
},
"post": {
"tags": [
"Partner"
],
"summary": "Create New Partner",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"required": true
},
"email": {
"type": "string",
"required": true
},
"phone": {
"type": "string",
"required": true
},
"address": {
"type": "string",
"required": true
},
"city": {
"type": "string",
"required": true
},
"state": {
"type": "string",
"required": true
},
"pincode": {
"type": "string",
"required": true
},
"contactPersons": {
"type": "array",
"required": true,
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"required": true
},
"email": {
"type": "string",
"required": true
},
"mobile": {
"type": "string",
"required": true
},
"designation": {
"type": "string",
"required": true
}
}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
}
},
"/partner/{id}": {
"get": {
"tags": [
"Partner"
],
"summary": "Get Partner Details by ID",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
},
"patch": {
"tags": [
"Partner"
],
"summary": "Update Partner Details by ID",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"required": true
},
"email": {
"type": "string",
"required": true
},
"phone": {
"type": "string",
"required": true
},
"address": {
"type": "string",
"required": true
},
"city": {
"type": "string",
"required": true
},
"state": {
"type": "string",
"required": true
},
"pincode": {
"type": "string",
"required": true
},
"contactPersons": {
"type": "array",
"required": true,
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"required": true
},
"email": {
"type": "string",
"required": true
},
"mobile": {
"type": "string",
"required": true
},
"designation": {
"type": "string",
"required": true
}
}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
},
"delete": {
"tags": [
"Partner"
],
"summary": "Deactivate Partner by ID",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {}
}
}
}
},
"/venue/": {
"post": {
"tags": [
"Venues"
],
"summary": "Create New Venue",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"required": true
},
"category": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"required": true
},
"entity": {
"type": "string",
"required": true
},
"address": {
"type": "string",
"required": true
},
"city": {
"type": "string",
"required": true
},
"state": {
"type": "string",
"required": true
},
"pincode": {
"type": "string",
"required": true
},
"contactPerson": {
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"email": {
"type": "string",
"required": true
},
"mobile": {
"type": "string",
"required": true
},
"designation": {
"type": "string",
"required": true
}
},
"location": {
"type": "object",
"required": true,
"properties": {
"latitude": {
"type": "number",
"required": true
},
"longitude": {
"type": "number",
"required": true
}
}
}
}
}
}
}
}
}
}
},
"/venue/entity/{id}": {
"get": {
"tags": [
"Venues"
],
"summary": "Get Venues by Entity",
"parameters": [
{
"in": "path",
"name": "id",
"description": "Entity ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"response": {
"200": {
"description": "Success",
"content": {}
}
}
}
},
"/venue/{id}": {
"get": {
"tags": [
"Venues"
],
"summary": "Get Venue by ID",
"parameters": [
{
"in": "path",
"name": "id",
"description": "Venue ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"respose": {
"200": {
"description": "Success",
"content": {}
}
}
},
"delete": {
"tags": [
"Venues"
],
"summary": "Delete Venue by ID",
"parameters": [
{
"in": "path",
"name": "id",
"description": "Venue ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"respose": {
"200": {
"description": "Success",
"content": {}
}
}
}
}
}
}
+7 -1
View File
@@ -4,7 +4,10 @@ import upload from "./upload.js";
import user from "./user.js";
import profile from "./profile.js";
import admin from "./admin.js";
import location from "./location.js"
import location from "./location.js";
import assignment from "./assignment.js";
import partner from "./partner.js";
import venue from "./venue.js";
const GENERAL_CONFIG = {
openapi: "3.0.1",
@@ -47,6 +50,9 @@ let paths = {
...location,
...upload,
...admin,
...assignment,
...partner,
...venue,
};
const getSwaggerDocument = () => {
+216
View File
@@ -0,0 +1,216 @@
export default {
"/partner": {
get: {
tags: ["Partner"],
summary: "Get all Partners",
responses: {
200: {
description: "OK",
content: {},
},
},
},
post: {
tags: ["Partner"],
summary: "Create New Partner",
requestBody: {
required: true,
content: {
"application/json": {
schema: {
type: "object",
properties: {
name: {
type: "string",
required: true,
},
email: {
type: "string",
required: true,
},
phone: {
type: "string",
required: true,
},
address: {
type: "string",
required: true,
},
city: {
type: "string",
required: true,
},
state: {
type: "string",
required: true,
},
pincode: {
type: "string",
required: true,
},
contactPersons: {
type: "array",
required: true,
items: {
type: "object",
properties: {
name: {
type: "string",
required: true,
},
email: {
type: "string",
required: true,
},
mobile: {
type: "string",
required: true,
},
designation: {
type: "string",
required: true,
},
},
},
},
},
},
},
},
},
responses: {
200: {
description: "OK",
content: {},
},
},
},
},
"/partner/{id}": {
get: {
tags: ["Partner"],
summary: "Get Partner Details by ID",
parameters: [
{
in: "path",
name: "id",
required: true,
schema: {
type: "string",
},
},
],
responses: {
200: {
description: "OK",
content: {},
},
},
},
patch: {
tags: ["Partner"],
summary: "Update Partner Details by ID",
parameters: [
{
in: "path",
name: "id",
required: true,
schema: {
type: "string",
},
},
],
requestBody: {
required: true,
content: {
"application/json": {
schema: {
type: "object",
properties: {
name: {
type: "string",
required: true,
},
email: {
type: "string",
required: true,
},
phone: {
type: "string",
required: true,
},
address: {
type: "string",
required: true,
},
city: {
type: "string",
required: true,
},
state: {
type: "string",
required: true,
},
pincode: {
type: "string",
required: true,
},
contactPersons: {
type: "array",
required: true,
items: {
type: "object",
properties: {
name: {
type: "string",
required: true,
},
email: {
type: "string",
required: true,
},
mobile: {
type: "string",
required: true,
},
designation: {
type: "string",
required: true,
},
},
},
},
},
},
},
},
},
responses: {
200: {
description: "OK",
content: {},
},
},
},
delete: {
tags: ["Partner"],
summary: "Deactivate Partner by ID",
parameters: [
{
in: "path",
name: "id",
required: true,
schema: {
type: "string",
},
},
],
responses: {
200: {
description: "OK",
content: {},
},
},
},
},
};
+156
View File
@@ -0,0 +1,156 @@
import { response } from "express";
export default {
"/venue/": {
post: {
tags: ["Venues"],
summary: "Create New Venue",
requestBody: {
content: {
"application/json": {
schema: {
type: "object",
properties: {
name: {
type: "string",
required: true,
},
category: {
type: "string",
required: true,
},
type: {
type: "string",
required: true,
},
entity: {
type: "string",
required: true,
},
address: {
type: "string",
required: true,
},
city: {
type: "string",
required: true,
},
state: {
type: "string",
required: true,
},
pincode: {
type: "string",
required: true,
},
contactPerson: {
type: "object",
required: true,
properties: {
name: {
type: "string",
required: true,
},
email: {
type: "string",
required: true,
},
mobile: {
type: "string",
required: true,
},
designation: {
type: "string",
required: true,
},
},
location: {
type: "object",
required: true,
properties: {
latitude: {
type: "number",
required: true,
},
longitude: {
type: "number",
required: true,
},
},
},
},
},
},
},
},
},
},
},
"/venue/entity/{id}": {
get: {
tags: ["Venues"],
summary: "Get Venues by Entity",
parameters: [
{
in: "path",
name: "id",
description: "Entity ID",
required: true,
schema: {
type: "string",
},
},
],
response: {
200: {
description: "Success",
content: {},
},
},
},
},
"/venue/{id}": {
get: {
tags: ["Venues"],
summary: "Get Venue by ID",
parameters: [
{
in: "path",
name: "id",
description: "Venue ID",
required: true,
schema: {
type: "string",
},
},
],
respose: {
200: {
description: "Success",
content: {},
},
},
},
delete: {
tags: ["Venues"],
summary: "Delete Venue by ID",
parameters: [
{
in: "path",
name: "id",
description: "Venue ID",
required: true,
schema: {
type: "string",
},
},
],
respose: {
200: {
description: "Success",
content: {},
},
},
},
},
};