Consultation du temps de travail
Les données de temps de travail enregistrées dans l'API Mobilic peuvent être consultées par les utilisateurs concernés.
L'API met à disposition trois opérations de consultation :
pour une mission
pour un travailleur mobile
pour une entreprise
Consultation des données d'une mission
query {
mission(id: Int!) {
name
activities {
id
type
startTime
endTime
userId
}
expenditures {
id
type
userId
}
}
}
La requête retourne la liste des activités associées à la mission (concernant éventuellement plusieurs utilisateurs).
Consultation des données pour un travailleur mobile
query {
user(id: Int!) {
firstName
lastName
missions {
edges {
node {
name
activities {
id
type
startTime
endTime
userId
}
expenditures {
id
type
userId
}
}
}
}
}
}
Dans l'exemple ci-dessus, sous réserve d'un niveau d'autorisation adapté, l'API retournera la liste des missions sur lesquelles le travailleur a enregistré du temps de travail.
Si l'on souhaite uniquement récupérer les activités sans avoir un regroupement par missions, il est possible de requêter directement le champ activities
:
query {
user(id: Int!) {
firstName
lastName
activities {
edges {
node {
id
type
startTime
endTime
userId
missionId
}
}
}
}
}
Il est également possible de récupérer le temps de travail déjà calculé par journée.
query {
user(id: Int!) {
firstName
lastName
workDays {
edges {
node {
startTime
endTime
activityDurations
}
}
}
}
}
Consultation des données entreprise
Cette opération permet d'accéder à toutes les données de temps de travail propres à l'entreprise, c'est-à-dire toutes les missions qui ont été réalisées par des salariés de l'entreprise.
query {
company(id: Int!) {
name
missions {
edges {
node {
id
name
activities {
id
type
startTime
endTime
userId
}
expenditures {
id
type
userId
}
}
}
}
}
}
Il est également possible de récupérer la liste des membres actuels de l'entreprise.
query {
company(id: Int!) {
name
users {
id
firstName
lastName
}
}
}
A l'instar de la consultation des données d'un travailleur mobile il est possible de récupérer le temps de travail déjà agrégé par journée.
query {
company(id: Int!) {
name
workDays {
edges {
node {
userId
startTime
endTime
activityDurations
}
}
}
}
}
Cas d'une gestion multi-sociétés
Il est possible de récupérer en une seule requête la liste de toutes les entreprises sur lesquelles l'utilisateur a un droit de gestion, via le champ adminedCompanies
.
query {
me {
adminedCompanies {
name
workDays {
edges {
node {
userId
startTime
endTime
activityDurations
}
}
}
}
}
}
Choix de la période d'historique récupérée
Les trois champs permettant de récupérer des données de temps de travail prennent des arguments optionnels pour restreindre la période d'historique :
le champ
activities(fromTime: TimeStamp, untilTime: TimeStamp)
au niveau d'un travailleur mobilele champ
missions(fromTime: TimeStamp, untilTime: TimeStamp)
au niveau d'un travailleur mobile ou d'une entreprisele champ
workDays(fromDate: Date, untilDate: Date)
au niveau d'un travailleur mobile ou d'une entreprise
query {
user(id: Int!) {
firstName
lastName
activities(fromTime: 1577869200, untilTime: 1578081600) {
edges {
node {
# toutes les activités qui ont eu lien (au moins en partie) entre le 01/01/2020 9h et le 03/01/2020 20h
id
type
startTime
endTime
userId
missionId
}
}
}
}
}
query {
user(id: Int!) {
firstName
lastName
missions(fromTime: 1577869200) {
# toutes les missions pour lesquelles le travailleur mobile a du temps de travail après le 01/01/2020 9h
edges {
node {
name
activities {
id
type
startTime
endTime
userId
}
expenditures {
id
type
userId
}
}
}
}
}
}
query {
me {
adminedCompanies {
name
workDays(fromDate: "2020-01-01") {
edges {
node {
# toutes les journées de travail des entreprises concernées à partir du 01/01/2020
userId
startTime
endTime
activityDurations
}
}
}
}
}
}
Sur les champs de l'entreprise il existe également un paramètre limit
qui définit un nombre maximal de missions retournées, en plus du filtre sur les dates. Les missions les plus récentes (dans la période sélectionnée) seront renvoyées.
Dernière mise à jour