Saltar al contenido principal

cambio-camapaña-automatico

Ver en Git


create table ciclos_productivos_config_users (
user_id int4 not null references usuarios(id),
change_day smallint not null,
change_month smallint not null,
biannual bool not null,
created_at timestamp not null,
updated_at timestamp null
);
alter table ciclos_productivos_config_users add constraint campaign_setting_user_unq unique(user_id);


create table ciclos_productivos_config_workspaces (
workspace_id int4 not null references escritorios(id),
change_day smallint not null,
change_month smallint not null,
biannual bool not null,
created_at timestamp not null,
updated_at timestamp null
);

alter table ciclos_productivos_config_workspaces add constraint campaign_setting_workspace_unq unique(workspace_id);

APIs​

Consultar campaña actual:​
GET /api/activities/campaigns/current

respuesta:

{
info: "campaign",
data: {
biannual: true,
change_date: "2023-07-01",
current_campaign: 2023
}
}
  • biannual: true indica que el usuario debe visualizar las campañas en formato "23/24"
  • biannual: false indica que el usuario debe visualizar las campañas en formato "2023" Esta api siempre devolverá algo. si el usuario no lo tiene configurado, obtendrá la configuracion default para todos (1 julio, biannual true)

Configurar campañas:​

Pueden configurar las campañas:

  • usuarios personales
  • usuarios administradores de espacios

Cada espacio tiene una única configuración para todos, que sólo la puede configurar el administrador.

Consultar con agus donde poner esta ventana en ambos casos

Consultar configuracion actual​
GET /api/activities/campaigns

respuesta:

// caso que no tenga configurado

{
info: "campaign settings"
data: null
}

// caso que tenga configurado
{
info: "campaign setting",
data: {
biannual: true,
change_date: "2023-07-01",
current_campaign: 2023
}
}

Para setear una configuracion:​

Si el usuario que hace la consulta es de un espacio y no es administrador, responderá error.

POST o PATCH /api/activities/campaigns
Body: application/json
{
"change_day": {"type": "number", "minimum": 1, "maximum": 31},
"change_month": {"type": "number", "minimum": 1, "maximum": 12},
"biannual": {"type": "boolean"},
}

OJO CON LOS NUMEROS DE LOS MESES Y DIAS, QUE NO ESTEN DEFASADOS (zero-indexed)

respuesta:

{
info: "campaign setting updated",
data: {
biannual: true,
change_date: "2023-07-01",
current_campaign: 2023
}
}