Mise en place d'un environnement de développement

Bonjour à tous,

Après quelques mois de développement côté client, je commence à me pencher sur la stack de Wazo-platform.

J’ai dans l’idée (pour commencer) de rendre plus homogène les contacts.
En effet, les contacts personal, phonebook, favoris et interne ne sont pas homogènes.

A commencer par les contacts personnels, que j’aimerais avoir la même structure que les autres contacts .

Dans Wazo-js-sdk/src/api/dird.ts:

const getContactPayload = (contact: NewContact | Contact) => ({
  email: contact.email,
  firstname: (contact as any).firstName ? (contact as any).firstName : '',
  lastname: (contact as any).lastName ? (contact as any).lastName : '',
  number: (contact as any).phoneNumber ? (contact as any).phoneNumber : '',
  entreprise: contact.entreprise ? contact.entreprise : '',
  birthday: contact.birthday ? contact.birthday : '',
  address: contact.address ? contact.address : '',
  note: contact.note ? contact.note : '',
});

Dans Wazo-dird/wazo_dird/database/queries/source.py

def _update_to_db_format(
        source: Source,
        name: str,
        searched_columns: list[str],
        first_matched_columns: list[str],
        format_columns: dict[str, str],
        **extra_fields,
    ) -> Source:
        source.name = name
        source.searched_columns = searched_columns
        source.first_matched_columns = first_matched_columns
        source.format_columns = format_columns
        source.phonebook_uuid = extra_fields.pop('phonebook_uuid', None)
        source.extra_fields = extra_fields
        return source

et l’API GET

https://localhost:443/api/dird/0.1/personal?format=application%2Fjson&direction=asc

qui me retourne:

"items": [
    {
      "id": "f3118ecb-1187-40d6-adaa-506803a9f269",
      "email": "",
      "firstname": "marc",
      "lastname": "zuckerberg",
      "number": "11223344",
      "entreprise": "",
      "birthday": "",
      "address": "",
      "note": ""
    },
]

J’aimerais donc pouvoir utiliser un environnement de développement pour modifier les module wazo-dird, et le wazo-js-sdk pour refléter le changement de wazo-dird.

Je n’ai pas encore testé WDK, mais avant de tester un peu au feeling au risque de perdre du temps, je voudrais savoir si vous pouvez faire une mini doc (voir une vidéo) sur la mise en route de l’environnement ?

Egalement, je ne vois pas à quel endroit du code je peux modifier la réponse de l’API permettant d’ajouter plusieurs propriétés à la réponse de l’API, car il me semble qu’en base de donnée il s’agit d’une seule colonne avec un objet json.

Donc, en plus de pouvoir modifier et tester les modifications sur wazo-dird, il me faudrait pouvoir tester les modifications sur le wazo-js-sdk, pour lequel vous avez certainement un environnement de test ?

cheers !

Pour l’environnement de wazo-dird, à l’interne on chacun notre propre stack pour faire des tests:

  1. On installe une stack de développement: https://wazo-platform.org/uc-doc/installation/install-system
  2. On utilise notre outil wazo-sdk pour synchroniser le code entre notre ordinateur et le serveur.
  • wdk mount wazo-dird
  • <modification du code>
  • wdk restart wazo-dird
  1. On utilise cURL / l’API console pour tester les requêtes (ou n’importe quel autres outils)

Pour les personal contacts, c’est une API avec du key/value. C’est-à-dire que tu peux ajouter n’importe quels champs dans l’API et ça va créer un contact avec ce champ. Donc c’est le code de wazo-js-sdk qui hardcode ces champs prédéfinis

Sinon pour se retrouver dans le code de wazo-dird, c’est vraiment difficile, mais tu as les concepts ici: https://wazo-platform.org/uc-doc/system/wazo-dird/developer

Si tu veux plus de détail sur l’environnement de dev qu’utilise les frontend pour wazo-js-sdk, tu as plus de chance d’avoir une réponse sur mattermost :slight_smile:

1 Like