Introducere

API-ul iHRM oferă acces programatic la toate funcționalitățile platformei noastre de resurse umane prin intermediul interogărilor și mutațiilor GraphQL.

URL: https://aplicatia.ihrm.ro/eAPI/

Toate cererile către API trebuie să fie trimise la URL-ul de bază de mai sus, urmat de interogarea sau mutația GraphQL dorită.

Ce este un API?

Un API (Application Programming Interface) este un set de reguli și definiții care permit aplicațiilor să comunice între ele. API-urile sunt utilizate pentru a permite diferitelor componente software să interacționeze și să partajeze date.

Ce poți face cu API-ul iHRM?

Cu API-ul iHRM, poți accesa și gestiona datele din platforma noastră de resurse umane. Poți efectua operațiuni precum:

  • Autentificare și obținerea unui token de acces
  • Interogarea și gestionarea utilizatorilor
  • Interogarea și gestionarea companiilor
  • Interogarea și gestionarea sesiunilor
  • Interogarea și gestionarea modulelor și seturilor de întrebări

Autentificare

Pentru a utiliza API-ul, trebuie să includeți un token de autentificare în header-ul fiecărei cereri.

API-ul iHRM folosește autentificarea prin token-uri Bearer. Pentru a obține un token, trebuie să folosiți mutația login.

Authorization: Bearer TOKEN

Obținerea token-ului de autentificare

Pentru a obține un token de autentificare, trebuie să trimiteți o cerere de autentificare folosind următoarea mutație GraphQL:

mutation {
    login(login: "api@ihrm.ro", password: "oparolagrea123") {
        access_token
        user {
            id
            name
            email
        }
    }
}

Înlocuiți "api@ihrm.ro" și "oparolagrea123" cu datele de autentificare corecte. Puteți să folosiți și datele anterioare pentru a testa API-ul.

URL-ul complet pentru această mutație este:

https://v2.ihrm.ro/eAPI?query=mutation{login(login:"api@ihrm.ro",password:"oparolagrea123"){access_token user{id name email}}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "mutation { login(login: \"api@ihrm.ro\", password: \"oparolagrea123\") { access_token user { id name email } } }"
}

După ce ați obținut token-ul de autentificare, includeți-l în header-ul fiecărei cereri pentru a accesa resursele protejate ale API-ului.

Pentru a vă deconecta, puteți folosi mutația logout (necesită autentificare).

Interogări

Notă: Unele interogări necesită ca utilizatorul să aibă acces special în sistem.

Folosind interogările, puteți obține date despre:

  • Utilizatori:
    • me: Informații despre utilizatorul autentificat (necesită autentificare).
      Câmpuri: id, username, name, email
    • user(id: ID!): Informații despre un utilizator specific, identificat prin ID.
      Câmpuri: id, username, name, email
    • users: O listă paginată cu toți utilizatorii.
      Câmpuri: id, username, name, email
  • Companii:
    • companies(id: ID): Informații despre o companie specifică, identificată prin ID.
      Câmpuri: id, name, email, website, phone
    • companiesList: O listă paginată cu toate companiile.
      Câmpuri: id, name, email, website, phone
  • Sesiuni:
    • session(id: ID!): Informații despre o sesiune specifică, identificată prin ID.
      Câmpuri: id, name, start_date, end_date, status
    • sessions(company_id: ID!): O listă paginată cu toate sesiunile pentru o anumită companie.
      Câmpuri: id, name, start_date, end_date, status
  • Module:
    • module(id: ID!): Informații despre un modul specific, identificat prin ID.
      Câmpuri: id, name, description
    • modules(company_id: ID!): O listă paginată cu toate modulele pentru o anumită companie.
      Câmpuri: id, name, description
  • Seturi de întrebări:
    • questionSet(id: ID!): Informații despre un set de întrebări specific, identificat prin ID.
      Câmpuri: id, name, description, timer_minutes
    • questionSets(module_id: ID!): O listă paginată cu toate seturile de întrebări pentru un anumit modul.
      Câmpuri: id, name, description, timer_minutes

Exemplu de interogare pentru a obține informații despre utilizatorul curent (necesită autentificare):

query {
    me {
        id
        name
        email
        username
    }
}

URL-ul complet pentru această interogare este:

https://v2.ihrm.ro/eAPI?query=query{me{id name email username}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "query { me { id name email username } }"
}

Exemplu de interogare pentru a obține informații despre o companie specifică:

query {
    companies(id: 1) {
        id
        name
        email
        website
        phone
    }
}

URL-ul complet pentru această interogare este:

https://v2.ihrm.ro/eAPI?query=query{company(id:1){id name email website phone}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "query { company(id: 1) { id name email website phone } }"
}

Exemplu de interogare pentru a obține informații despre o sesiune specifică:

query {
    session(id: 1) {
        id
        name
        start_date
        end_date
        status
    }
}

URL-ul complet pentru această interogare este:

https://v2.ihrm.ro/eAPI?query=query{session(id:1){id name start_date end_date status}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "query { session(id: 1) { id name start_date end_date status } }"
}

Mutații

Notă: Unele mutații necesită ca utilizatorul să aibă acces special în sistem.

Folosind mutațiile, puteți modifica datele, precum:

  • Gestionarea utilizatorilor:
    • createUser(input: CreateUserInput!): Creează un utilizator nou.
    • updateUser(id: ID!, input: UpdateUserInput!): Actualizează un utilizator existent.
  • Gestionarea companiilor:
    • createCompany(input: CreateCompanyInput!): Creează o companie nouă.
    • updateCompany(id: ID!, input: UpdateCompanyInput!): Actualizează o companie existentă.
  • Gestionarea sesiunilor:
    • createSession(input: CreateSessionInput!): Creează o sesiune nouă.
    • updateSession(id: ID!, input: UpdateSessionInput!): Actualizează o sesiune existentă.

Exemplu de mutație pentru a crea un utilizator nou:

mutation {
    createUser(input: {
        name: "Nume Utilizator"
        prenume: "Prenume Utilizator"
        email: "email@example.com"
        username: "username"
        password: "parola"
    }) {
        id
        name
        email
    }
}

URL-ul complet pentru această mutație este:

https://v2.ihrm.ro/eAPI?query=mutation{createUser(input:{name:%22Nume%20Utilizator%22,prenume:%22Prenume%20Utilizator%22,email:%22email@example.com%22,username:%22username%22,password:%22parola%22}){id name email}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "mutation { createUser(input: { name: \"Nume Utilizator\" prenume: \"Prenume Utilizator\" email: \"email@example.com\" username: \"username\" password: \"parola\" }) { id name email } }"
}

Actualizează un utilizator

Acest endpoint actualizează datele unui utilizator existent specificat prin ID.

mutation {
    updateUser(id: 1, input: {
        name: "Nume Nou"
        email: "emailnou@example.com"
    }) {
        id
        name
        email
    }
}

URL-ul complet pentru această mutație este:

https://v2.ihrm.ro/eAPI?query=mutation{updateUser(id:1,input:{name:%22Nume%20Nou%22,email:%22emailnou@example.com%22}){id name email}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "mutation { updateUser(id: 1, input: { name: \"Nume Nou\" email: \"emailnou@example.com\" }) { id name email } }"
}

Creează o companie

Acest endpoint creează o nouă companie cu datele specificate.

mutation {
    createCompany(input: {
        name: "Compania Nouă"
        email: "contact@compania.com"
        website: "https://compania.com"
        phone: "123-456-7890"
    }) {
        id
        name
        email
    }
}

URL-ul complet pentru această mutație este:

https://v2.ihrm.ro/eAPI?query=mutation{createCompany(input:{name:%22Compania%20Nouă%22,email:%22contact@compania.com%22,website:%22https://compania.com%22,phone:%22123-456-7890%22}){id name email}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "mutation { createCompany(input: { name: \"Compania Nouă\" email: \"contact@compania.com\" website: \"https://compania.com\" phone: \"123-456-7890\" }) { id name email } }"
}

Actualizează o companie

Acest endpoint actualizează datele unei companii existente specificate prin ID.

mutation {
    updateCompany(id: 1, input: {
        name: "Compania Actualizată"
        email: "contactnou@compania.com"
    }) {
        id
        name
        email
    }
}

URL-ul complet pentru această mutație este:

https://v2.ihrm.ro/eAPI?query=mutation{updateCompany(id:1,input:{name:%22Compania%20Actualizată%22,email:%22contactnou@compania.com%22}){id name email}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "mutation { updateCompany(id: 1, input: { name: \"Compania Actualizată\" email: \"contactnou@compania.com\" }) { id name email } }"
}

Creează o sesiune

Acest endpoint creează o nouă sesiune cu datele specificate.

mutation {
    createSession(input: {
        name: "Sesiunea Nouă"
        start_date: "2025-02-24T09:00:00"
        end_date: "2025-02-24T17:00:00"
        module_id: 1
        company_id: 1
        question_set_ids: [1, 2, 3]
    }) {
        id
        name
        start_date
        end_date
    }
}

URL-ul complet pentru această mutație este:

https://v2.ihrm.ro/eAPI?query=mutation{createSession(input:{name:%22Sesiunea%20Nouă%22,start_date:%222025-02-24%2009:00:00%22,end_date:%222025-02-24%2017:00:00%22,module_id:1,company_id:1,question_set_ids:[1,2,3]}){id name start_date end_date}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "mutation { createSession(input: { name: \"Sesiunea Nouă\" start_date: \"2025-02-24 09:00:00\" end_date: \"2025-02-24 17:00:00\" module_id: 1 company_id: 1 question_set_ids: [1, 2, 3] }) { id name start_date end_date } }"
}

Actualizează o sesiune

Acest endpoint actualizează datele unei sesiuni existente specificate prin ID.

mutation {
    updateSession(id: 1, input: {
        name: "Sesiunea Actualizată"
        start_date: "2025-02-25 09:00:00"
        end_date: "2025-02-25 17:00:00"
        status: 1
    }) {
        id
        name
        start_date
        end_date
        status
    }
}

URL-ul complet pentru această mutație este:

https://v2.ihrm.ro/eAPI?query=mutation{updateSession(id:1,input:{name:%22Sesiunea%20Actualizată%22,start_date:%222025-02-25%2009:00:00%22,end_date:%222025-02-25%2017:00:00%22,status:1}){id name start_date end_date status}}

Pentru a folosi ReqBin, introduceți următorul JSON:

{
    "query": "mutation { updateSession(id: 1, input: { name: \"Sesiunea Actualizată\" start_date: \"2025-02-25 09:00:00\" end_date: \"2025-02-25 17:00:00\" status: 1 }) { id name start_date end_date status } }"
}

Changelog

Aici puteți găsi toate modificările și actualizările aduse API-ului iHRM.

  • Versiunea 1.0.1 - Adăugate noi endpoint-uri pentru gestionarea sesiunilor.
  • Versiunea 1.0.0 - Lansarea inițială a API-ului iHRM.