Los Goods de tipo servicio requieren de ServiceSkills asociados. Esto le permite al servidor enlazar esos servicios con los Providers que posean esos ServiceSkills. En el caso de los Goods, los llamaremos requisitos (requirements) y para los Providers serán habilidades (skills).
Esta entidad funciona como pivote, es decir, enlaza la entidad Good con la entidad ServiceSkill, pero su estructura interna no es expuesta en ningún end-point.
Obtiene una lista de ServiceSkill asignados a un Good ordenados alfabéticamente (orden natural).
Método | URI | Cabeceras |
---|---|---|
GET | /goods/{good-id}/service-skills |
Authorization |
Ninguno
{success} Respuesta satisfactoria.
Código 200
ServiceSkill[]
[
{
"id" : 1,
"name" : "Cuidado de Bebés 0-12 meses",
"created_at": "2019-08-27 16:41:59",
"updated_at": "2019-08-27 16:41:59"
}
]
Obtiene una lista de Goods que asociados al ServiceSkill.
Método | URI | Cabeceras |
---|---|---|
GET | /service-skills/{serviceSkillId}/goods |
Authorization |
Ninguno
{success} Respuesta satisfactoria.
Código 200
Good[]
[
{
"id" : 9,
"type" : 0,
"name" : "Rol de pizza",
"price_e2" : 2800000,
"quantity" : null,
"available" : true,
"rating_count" : 1,
"rating_e2" : 400,
"rating_sum" : 4,
"details" : "Lo mejor de la pizza en un roll que lo tiene todo. Déjate atrapar por su queso mozzarella derretido, la mejor salsa y ese toque justo de orégano.",
"short_details": "n/a",
"picture_urls" : [
"https://ondemand-api.manzanares.com.ve/storage/companies/46/good/good_9_0_1550513329.jpeg"
],
"eta" : "35",
"created_at" : "2019-02-18 18:08:49",
"updated_at" : "2019-08-27 12:51:32",
"deleted_at" : null
}
]
Asocia un ServiceSkill con un Good.
Método | URI | Cabeceras |
---|---|---|
PUT | /service-skills/{serviceSkillId}/goods/{good-id} |
Authorization |
Ninguno
{success} Respuesta satisfactoria.
Código 204
No Content
{danger} Respuesta de error
Código 428
Motivo El Good no es de tipo servicio
.
(Ver Tipos de Good)
{
"message": "not_a_service {goodId}"
}
Desvincula un ServiceSkill de un Good.
Método | URI | Cabeceras |
---|---|---|
DELETE | /service-skills/{serviceSkillId}/goods/{good-id} |
Authorization |
Ninguno
{success} Respuesta satisfactoria.
Código 204
No Content
Modifica las asociaciones de ServiceSkill y Goods, es decir, la sincronización reemplaza todas las asociaciones anteriores. Por ejemplo:
Antes: [1,2,3]
El ServiceSkill posee asociados los Goods con id 1,2,3.
Envío: [2,4]
Se envían los Ids 2 y 4 para la sincronización.
Resultado: [1,3]
Los Ids 1 y 4 fueron desvinculados, el Id 2 se mantuvo y el Id 4 fue agregado
Método | URI | Cabeceras |
---|---|---|
PUT | /service-skills/{serviceSkillId}/goods |
Authorization |
PUT | /goods/{goodId}/service-skills |
Authorization |
{info} La diferencia entre los endpoints es cómo se realiza la sincronización. En el endpoint
/service-skills/{serviceSkillId}/goods
se reemplazan los Goods para un ServiceSkill; en el endpoint/goods/{goodId}/service-skills
se reemplazan los requisitos para el Good especificado.
[3, 9]
{success} Respuesta satisfactoria.
Código 200
{
"attached": [3, 9],
"detached": [63],
"updated" : []
}
{danger} Respuesta de error
Código 428
Motivo Existe un Good que no es de tipo servicio
.
(Ver Tipos de Good)
{
"message": "not_a_service {goodId}"
}