Gobierto Plans / Projects

Create plan projects

POST /api/v1/plans//projects

Creates and updates the projects of a plan. The request must include a valid token of an authorized admin.

The body of the request should include only the attributes that needs to be created or updated. Any attribute in the body will be updated.

If the terms are included in the request, they will be updated also, following these rules:

  • if the project has external_id will search for existing projects to update it
  • if it doesn't exist, the project will be created

For deleting existing projects refer to the project deletion endpoint.

Headers:

  • Authorization: Bearer TOKEN A valid token of an admin with permissions to create terms must be provided

Body:

It's expected to be in JSON format with the following structure:

{
    "data": {
        "attributes": {
            // ...
        }
    }
}

Attributes:

name_translationsmandatorya JSON with the different locales and the names on each locale. Available locales are es, en and ca
external_idthis field can be used to store the identifier in the integrating system. The value must be unique.
visibility_levelpublished or draft. By default is draft
moderation_stagenot_sent, sent, in_review, approvedor rejected. By default is not_sent
progressa float between 0 and 100 with the percentage of progress
positionan integer representing the position of the project in the category projects.
starts_ata date in format YYYY-MM-DD with the start date of the project
ends_ata date in format YYYY-MM-DD with the end date of the project
category_external_idthe internal id or external_id of the category the project belongs to
status_external_idthe internal id or the external_id of the status the project has

The list of attributes might include more vocabularies, which can be defined as projects custom fields (see Campos Personalizados for more detail). In that case, the rule of these dynamic attributes is very simple:

custom_field_<type>_<uid>,

where the type is one of the following supported types:

  • vocabulary_options
  • string
  • paragraph
  • date

and the uid is the custom field identifier.

In all the cases the expected value is a string, but depending on the type the value can have some differences:

  • string: A plain string which will be treated without transformations
  • paragraph: The string will be parsed as a markdown formatted document
  • date: A string containing a date with format YYYY-MM-DD
  • vocabulary_options: The text of a valid option of the vocabulary custom field. If the custom field has multiple translations use the value in the default language of the site

Example of request body. The projects entry is an array of projects:

{
    "projects": [
      "name_translations": {
        "en": "New proyecto",
        "es": "Nuevo pn"
      },
      "external_id": "P0001",
      "visibility_level": "visible",
      "progress": 75.3,
      "position": 2,
      "starts_at": "2022-10-01",
      "ends_at": "2023-10-01",
      "custom_field_vocabulary_options_department": "Zonas verdes: Parques y Jardines",
      "custom_field_string_code": "AZ-00046",
      "custom_field_paragraph_activities_list": "* Poda\n* Riego\n* Limpieza de zonas verdes",
      "custom_field_date_revision_date": "2023-01-15"
    },
    { ... }
  ]
}

Response:

  • If the token is invalid or the admin is not allowed to create term: JSON with Unauthorized or Module not allowed with status 401 Unauthorized
  • If the resource could be created or already existing: JSON with the complete list of projects.

List plan projects

GET /api/v1/plans/<plan_id>/projects

Lists the projects included in a plan. The request must include a valid token of an authorized admin.

The plan identifier of the URL can be both:

  • the plan internal id
  • the plan slug if exists

Headers:

  • Authorization: Bearer TOKEN A valid token of an admin with permissions to create terms must be provided

Delete a plan projects

DELETE /api/v1/plans/<plan_id>/projects/

Deletes a project in a plan. The request must include a valid token of an authorized admin.

The plan identifier of the URL can be both:

  • the plan internal id
  • the plan slug if exists

The project identifier of the URL can be both:

  • the project internal id
  • the project external_id if exists

Headers:

  • Authorization: Bearer TOKEN A valid token of an admin with permissions to create terms must be provided

The request does not include a body.

Response:

  • If the token is invalid or the admin is not allowed to create term: JSON with Unauthorized or Module not allowed with status 401 Unauthorized
  • If the resource could be deleted it returns a successfull status code.