Commit f272d0f9 authored by Alex Pinto's avatar Alex Pinto

WIP: initial Google SSO endpoint

parent 97feab8b
package com.ascendfinalproject.warehouse.controllers;
import com.ascendfinalproject.warehouse.models.OrderResponse;
import com.ascendfinalproject.warehouse.models.Session;
import com.ascendfinalproject.warehouse.models.WarehouseOrder;
import com.ascendfinalproject.warehouse.services.SessionService;
import com.ascendfinalproject.warehouse.services.WarehouseOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
......@@ -16,6 +18,9 @@ public class WarehouseController {
@Autowired
WarehouseOrderService orderService;
@Autowired
SessionService sessionService;
@CrossOrigin
@GetMapping(value = "/orders")
public Flux<WarehouseOrder> getOrders() {
......@@ -40,4 +45,14 @@ public class WarehouseController {
return orderService.updateOrder(order, id);
}
@CrossOrigin
@PostMapping(value = "/authenticate")
public Session authenticate(@RequestBody Session session) {
if(sessionService.tokenExists(session)) {
return session;
}
return sessionService.saveToken(session);
}
}
package com.ascendfinalproject.warehouse.models;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Id;
@Getter
@Setter
public class Session {
@Id
private String token;
}
package com.ascendfinalproject.warehouse.repositories;
import com.ascendfinalproject.warehouse.models.Session;
import org.springframework.data.repository.CrudRepository;
public interface SessionRepository extends CrudRepository<Session, String> {
}
package com.ascendfinalproject.warehouse.services;
import com.ascendfinalproject.warehouse.models.Session;
import com.ascendfinalproject.warehouse.repositories.SessionRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class SessionService {
@Autowired
SessionRepository sessionRepository;
public Session saveToken(Session session) {
return sessionRepository.save(session);
}
public boolean tokenExists(Session session) {
return sessionRepository.existsById(session.getToken());
}
}
......@@ -41,13 +41,12 @@ public class WarehouseOrderService {
}
public Mono<WarehouseOrder> updateOrder(WarehouseOrder order, String id) {
return orderRepository.findById(id)
.flatMap(existingOrder -> {
existingOrder.setStatus(order.getStatus());
existingOrder.setModifiedAt(new Date(System.currentTimeMillis()));
return orderRepository.save(existingOrder);
});
return orderRepository.findById(id)
.flatMap(existingOrder -> {
existingOrder.setStatus(order.getStatus());
existingOrder.setModifiedAt(new Date(System.currentTimeMillis()));
return orderRepository.save(existingOrder);
});
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment