Endpoints servicios - E7-I/conectados GitHub Wiki

CRUD Servicios

POST /createServices

Descripción

Crea un nuevo servicio registrado por un profesional, incluyendo título, descripción, categorías, precio, imágenes y video opcional.

Parámetros de entrada

Nombre Tipo Descripción Opcional
professionalid number RUT del profesional que ofrece el servicio No
title string Título del servicio No
description string Descripción detallada del servicio No
images string[] URLs de imágenes que representan el servicio
video string URL de un video explicativo o promocional del servicio
categories string[] Categorías a las que pertenece el servicio No
price.min number Precio mínimo del servicio No
price.max number Precio máximo del servicio No

Respuesta

Código: 201 Created
Tipo: application/json

{
	"professionalid": 1111111111,
	"title": "electricista",
	"description": "Corte electrico con herramientas sanitizadas.",
	"images": [
		"https://example.com/img1.jpg"
	],
	"video": "https://example.com/vid1.mp4",
	"categories": [
		"Electricidad"
	],
	"price": {
		"min": 125,
		"max": 300
	},
	"averageRating": 0,
	"timesDone": 0,
	"_id": "6816fcb4da625a0193f8cd9e",
	"createdAt": "2025-05-04T05:35:48.546Z",
	"updatedAt": "2025-05-04T05:35:48.546Z",
	"__v": 0
}

GET /getService/:id

Descripción

Obtiene los detalles de un servicio específico a partir de su ID.

Parámetros de entrada

Nombre Tipo Descripción Opcional
id string ID del servicio a consultar (MongoDB) No

Respuesta

Código: 200 OK
Tipo: application/json

{
	"price": {
		"min": 10,
		"max": 30
	},
	"_id": "6816bf71d8eb5bf058ffa4c5",
	"professionalid": 123,
	"title": "Corte de cabello a domicilio",
	"description": "Corte profesional con herramientas sanitizadas.",
	"images": [
		"https://example.com/img1.jpg"
	],
	"video": "https://example.com/vid1.mp4",
	"categories": [
		"Belleza"
	],
	"averageRating": 0,
	"timesDone": 0,
	"createdAt": "2025-05-04T01:14:25.235Z",
	"updatedAt": "2025-05-04T01:14:25.235Z",
	"__v": 0
}

GET /getServicesProfessionalId/:professionalid

Idem al caso anterior, pero para acceder al servicio con el professionalId (RUT), en caso de tener mas de un servicio ligado al profesional, se listan todos los servicios.

GET /getAllServices

Descripción

Obtiene una lista de todos los servicios registrados en el sistema.

Parámetros de entrada

Nombre Tipo Descripción Opcional
No requiere parámetros

Respuesta

Código: 200 OK
Tipo: application/json

[
	{
		"price": {
			"min": 10,
			"max": 30
		},
		"_id": "6816bf71d8eb5bf058ffa4c5",
		"professionalid": 123,
		"title": "Corte de cabello a domicilio",
		"description": "Corte profesional con herramientas sanitizadas.",
		"images": [
			"https://example.com/img1.jpg"
		],
		"video": "https://example.com/vid1.mp4",
		"categories": [
			"Belleza"
		],
		"averageRating": 0,
		"timesDone": 0,
		"createdAt": "2025-05-04T01:14:25.235Z",
		"updatedAt": "2025-05-04T01:14:25.235Z",
		"__v": 0
	},
	{
		"price": {
			"min": 10,
			"max": 300000000000000000
		},
		"_id": "6816fcb4da625a0193f8cd9e",
		"professionalid": 123,
		"title": "Corte de cabello a domicilio",
		"description": "Corte profesional con herramientas sanitizadas.",
		"images": [
			"https://example.com/img1.jpg"
		],
		"video": "https://example.com/vid1.mp4",
		"categories": [
			"Belleza"
		],
		"averageRating": 3.3333333333333335,
		"timesDone": 3,
		"createdAt": "2025-05-04T05:35:48.546Z",
		"updatedAt": "2025-05-04T05:35:48.546Z",
		"__v": 0
	}
]

PUT /updateService/:id

Descripción

Actualiza un servicio existente en el sistema a partir de su ID.

Parámetros de entrada

Nombre Tipo Descripción Opcional
id string ID del servicio a actualizar (MongoDB) No

Body (JSON):

{
  "title": "Nuevo título",
  "description": "Descripción actualizada",
  "images": ["https://ejemplo.com/nuevaimg.jpg"],
  "video": "https://ejemplo.com/nuevovideo.mp4",
  "categories": ["Jardinería"],
  "price": {
    "min": 25,
    "max": 40
  }
}

PUT /addRating/:id

Descripción

Agrega una nueva calificación a un servicio y actualiza su promedio (averageRating) y el contador de veces realizado (timesDone).

Parámetros de entrada

Nombre Tipo Descripción Opcional
id string ID del servicio a calificar (MongoDB) No

Body (JSON):

{
  "rating": 4.5
}