AilianceApi.kt
125 lignes · 4909 octets
package fr.ebii.card2vcf.sync /** Contrat HTTP utilisé par [SyncEngine] ; [AilianceApiClient] l'implémente, fakes en test. */ interface AilianceApi { fun authCle(nom: String, motDePasse: String): AilianceApiClient.ApiResult<AuthCleResponse> fun syncStatus(sinceIso: String, ressourcesQuery: String? = null): AilianceApiClient.ApiResult<SyncStatusResponse> fun syncPull(sinceIso: String, ressourcesQuery: String? = null): AilianceApiClient.ApiResult<SyncPullResponse> fun createContact(jsonBody: String): AilianceApiClient.ApiResult<String> fun updateContact(id: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun deleteContact(id: String): AilianceApiClient.ApiResult<Unit> fun createEntreprise(jsonBody: String): AilianceApiClient.ApiResult<String> fun updateEntreprise(id: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun deleteEntreprise(id: String): AilianceApiClient.ApiResult<Unit> fun createProjet(jsonBody: String): AilianceApiClient.ApiResult<String> fun updateProjet(id: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun deleteProjet(id: String): AilianceApiClient.ApiResult<Unit> fun createTache(projetId: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun updateTache(projetId: String, tacheId: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun deleteTache(projetId: String, tacheId: String): AilianceApiClient.ApiResult<Unit> fun moveTache(projetId: String, tacheId: String, jsonBody: String): AilianceApiClient.ApiResult<String> /** * Coche/décoche une sous-tâche. Route dédiée : le `PUT` général ne * transporte que des titres et ne peut donc pas basculer l'état `fait`. */ fun toggleSousTache( projetId: String, tacheId: String, sousTacheId: String, ): AilianceApiClient.ApiResult<String> fun createInteraction(contactId: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun deleteInteraction(iid: String): AilianceApiClient.ApiResult<Unit> fun relancerTranscriptionInteraction(contactServerId: String, iid: String): AilianceApiClient.ApiResult<Unit> fun relancerTranscriptionNote(projetServerId: String, nid: String): AilianceApiClient.ApiResult<Unit> fun listRdv(): AilianceApiClient.ApiResult<List<RendezVousDto>> fun createRdv(jsonBody: String): AilianceApiClient.ApiResult<String> fun getRdv(id: String): AilianceApiClient.ApiResult<RendezVousDto> fun updateRdv(id: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun deleteRdv(id: String): AilianceApiClient.ApiResult<Unit> fun getRessourcesCatalogue(): AilianceApiClient.ApiResult<RessourcesCatalogueDto> fun listReservations(genre: String, resourceId: String): AilianceApiClient.ApiResult<List<ReservationDto>> fun createReservation(genre: String, resourceId: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun updateReservation( genre: String, resourceId: String, reservationId: String, jsonBody: String, ): AilianceApiClient.ApiResult<String> fun deleteReservation(genre: String, resourceId: String, reservationId: String): AilianceApiClient.ApiResult<Unit> fun listIndisponibilites(genre: String, resourceId: String): AilianceApiClient.ApiResult<List<IndisponibiliteDto>> fun uploadContactCarte( id: String, bytes: ByteArray, filename: String, contentType: String = "image/jpeg", ): AilianceApiClient.ApiResult<String> fun uploadContactPhoto( id: String, bytes: ByteArray, filename: String, contentType: String = "image/jpeg", ): AilianceApiClient.ApiResult<String> fun downloadContactCarte(id: String): AilianceApiClient.ApiResult<ByteArray> fun downloadContactPhoto(id: String): AilianceApiClient.ApiResult<ByteArray> fun uploadInteractionAudio( contactId: String, iid: String, bytes: ByteArray, filename: String, contentType: String = "audio/wav", ): AilianceApiClient.ApiResult<String> fun downloadInteractionAudio(contactId: String, iid: String): AilianceApiClient.ApiResult<ByteArray> fun createNoteProjet(projetId: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun updateNoteProjet(projetId: String, nid: String, jsonBody: String): AilianceApiClient.ApiResult<String> fun deleteNoteProjet(projetId: String, nid: String): AilianceApiClient.ApiResult<Unit> fun uploadNoteAudio( projetId: String, nid: String, bytes: ByteArray, filename: String, contentType: String = "audio/wav", ): AilianceApiClient.ApiResult<String> fun downloadNoteAudio(projetId: String, nid: String): AilianceApiClient.ApiResult<ByteArray> }
GitRust