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
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;
import io.grpc.stub.*;
import java.util.Iterator;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import io.grpc.stub.*;
@@ -24,22 +26,24 @@ public class TodoServiceImpl extends TodoServiceGrpc.TodoServiceImplBase {
public void listTasks(Todo.ListTasksRequest request, StreamObserver<Todo.ListTasksResponse> responseObserver) {
// 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) {
// si la tâche existe, on efface, sinon on indique que l'opération est un echec
String id = request.getId();
Boolean test = this.tasks.containsKey(id);
Todo.TaskResponse save = this.tasks.get(id);
this.tasks.remove(id);
Todo.TaskResponse save = this.tasks.remove(id);
test = test && !this.tasks.containsKey(id);
Todo.TaskResponse tr = Todo.TaskResponse.newBuilder()
.setId(save.getId()).setDescription(save.getDescription())
.setTitle(save.getTitle())
.setSuccess(test).build();
responseObserver.onNext(tr);
responseObserver.onNext(save);
responseObserver.onCompleted();
}