GoodRequirement

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.

Anexar Respuestas Globales


Lista Good -> ServiceSkills

Obtiene una lista de ServiceSkill asignados a un Good ordenados alfabéticamente (orden natural).

Permisos

Endpoint

Método URI Cabeceras
GET /goods/{good-id}/service-skills Authorization
  • {good-id}: El id del Good al cual se consultan sus ServiceSkills asociados.

Parámetros

Ninguno

Respuesta del API

{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"
  }
]

Lista ServiceSkill -> Goods

Obtiene una lista de Goods que asociados al ServiceSkill.

Permisos

Endpoint

Método URI Cabeceras
GET /service-skills/{serviceSkillId}/goods Authorization
  • {id}: El id del ServiceSkill al cual se consultan sus Goods asociados.

Parámetros

Ninguno

Respuesta del API

{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
  }
]

Vincular

Asocia un ServiceSkill con un Good.

Permisos

Endpoint

Método URI Cabeceras
PUT /service-skills/{serviceSkillId}/goods/{good-id} Authorization
  • {good-id}: El id del Good a vincular.

Parámetros

Ninguno

Respuesta del API

{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}"
}
  • {goodId}: Id del Good.

Desvincular

Desvincula un ServiceSkill de un Good.

Permisos

Endpoint

Método URI Cabeceras
DELETE /service-skills/{serviceSkillId}/goods/{good-id} Authorization
  • {good-id}: El id del Good a desvincular.

Parámetros

Ninguno

Respuesta del API

{success} Respuesta satisfactoria.

Código 204

No Content

Sincronizar

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

Permisos

Endpoints

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.

Parámetros Body

[3, 9]

Respuesta del API

{success} Respuesta satisfactoria.

Código 200

{
  "attached": [3, 9],
  "detached": [63],
  "updated" : []
}
  • attached: Ids de los elementos vinculados.
  • detached: Ids de los elementos desvinculados.
  • updated: Ids de los actualizados o mantenidos.

{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}"
}
  • {goodId}: Id del Good que no es un servicio.