TotoServiceImpl

This commit is contained in:
trochas
2025-04-04 13:35:19 +02:00
parent 3f0ce70052
commit 5866c247d1
2 changed files with 14 additions and 10 deletions

View File

@@ -1,3 +1,3 @@
# Votre compte rendu ici # Votre compte rendu ici
On implémente des "Class" dans les .proto, des getter seront généré par grpc On implémente des "Class" dans les .proto, des getter seront généré par grpc pour être utiliser dans par le service, le serveur et le client.

View File

@@ -1,6 +1,8 @@
package fr.istic.grpc.todo; package fr.istic.grpc.todo;
import io.grpc.stub.*; import io.grpc.stub.*;
import java.util.Iterator;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.concurrent.atomic.*; import java.util.concurrent.atomic.*;
import io.grpc.stub.*; import io.grpc.stub.*;
@@ -24,22 +26,24 @@ public class TodoServiceImpl extends TodoServiceGrpc.TodoServiceImplBase {
public void listTasks(Todo.ListTasksRequest request, StreamObserver<Todo.ListTasksResponse> responseObserver) { public void listTasks(Todo.ListTasksRequest request, StreamObserver<Todo.ListTasksResponse> responseObserver) {
// La réponse est une liste // La réponse est une liste
//Iterator<Todo.TaskResponse> iter = tasks.values().iterator();
Todo.ListTasksResponse.Builder builder = Todo.ListTasksResponse.newBuilder();
for(Todo.TaskResponse task : tasks.values()){
builder.addTasks(task);
}
Todo.ListTasksResponse list = builder.build();
responseObserver.onNext(list);
} }
public void deleteTask(Todo.DeleteTaskRequest request, StreamObserver<Todo.TaskResponse> responseObserver) { public void deleteTask(Todo.DeleteTaskRequest request, StreamObserver<Todo.TaskResponse> responseObserver) {
// si la tâche existe, on efface, sinon on indique que l'opération est un echec // si la tâche existe, on efface, sinon on indique que l'opération est un echec
String id = request.getId(); String id = request.getId();
Boolean test = this.tasks.containsKey(id); Boolean test = this.tasks.containsKey(id);
Todo.TaskResponse save = this.tasks.get(id); Todo.TaskResponse save = this.tasks.remove(id);
this.tasks.remove(id);
test = test && !this.tasks.containsKey(id); test = test && !this.tasks.containsKey(id);
Todo.TaskResponse tr = Todo.TaskResponse.newBuilder() responseObserver.onNext(save);
.setId(save.getId()).setDescription(save.getDescription())
.setTitle(save.getTitle())
.setSuccess(test).build();
responseObserver.onNext(tr);
responseObserver.onCompleted(); responseObserver.onCompleted();
} }