Skip to content

Commit

Permalink
Merge pull request #34 from stevensblueprint/fix/current_features
Browse files Browse the repository at this point in the history
Brought codebase to v3.1
  • Loading branch information
miguel-merlin authored Jan 27, 2025
2 parents 32c02a1 + 0be951c commit 52b8222
Show file tree
Hide file tree
Showing 126 changed files with 2,902 additions and 2,107 deletions.
721 changes: 470 additions & 251 deletions initdb/init.sql

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions src/main/java/com/sarapis/orservice/OrserviceApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;

@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
@SpringBootApplication(exclude = { SecurityAutoConfiguration.class })
public class OrserviceApplication {
public static void main(String[] args) {
SpringApplication.run(OrserviceApplication.class, args);
}
public static void main(String[] args) {
SpringApplication.run(OrserviceApplication.class, args);
}
}
82 changes: 43 additions & 39 deletions src/main/java/com/sarapis/orservice/config/SecurityConfig.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.sarapis.orservice.config;

import java.util.List;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
Expand All @@ -12,48 +11,53 @@
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

import java.util.List;

@Configuration
@EnableWebSecurity
public class SecurityConfig {
private static final List<String> ALLOWED_ORIGINS_DEV = List.of("http://localhost:5173/");
private static final List<String> ALLOWED_ORIGINS_PROD = List.of(" http://ec2-34-229-138-80.compute-1.amazonaws.com/");
private static final List<String> ALLOWED_ORIGINS_DEV = List.of("http://localhost:5173/");
private static final List<String> ALLOWED_ORIGINS_PROD = List.of("http://ec2-34-229-138-80.compute-1.amazonaws.com/");

@Bean
@Profile("prod")
public SecurityFilterChain prodSecurityFilterChain(HttpSecurity http) throws Exception {
return http
.authorizeHttpRequests(authorize ->
authorize
.requestMatchers("/actuator/**").permitAll()
.requestMatchers("/").permitAll()
.anyRequest().authenticated())
.cors(httpSecurityCorsConfigurer -> httpSecurityCorsConfigurer.configurationSource(corsConfigurationSource(ALLOWED_ORIGINS_PROD)))
.csrf(AbstractHttpConfigurer::disable).build();
}
@Bean
@Profile("prod")
public SecurityFilterChain prodSecurityFilterChain(HttpSecurity http) throws Exception {
return http
.authorizeHttpRequests(authorize -> authorize
.requestMatchers("/actuator/**")
.permitAll()
.requestMatchers("/")
.permitAll()
.anyRequest()
.authenticated())
.cors(httpSecurityCorsConfigurer -> httpSecurityCorsConfigurer
.configurationSource(corsConfigurationSource(ALLOWED_ORIGINS_PROD)))
.csrf(AbstractHttpConfigurer::disable)
.build();
}

@Bean
@Profile("dev")
public SecurityFilterChain devSecurityFilterChain(HttpSecurity http) throws Exception {
return http
.csrf(AbstractHttpConfigurer::disable)
.cors(httpSecurityCorsConfigurer -> httpSecurityCorsConfigurer
.configurationSource(corsConfigurationSource(ALLOWED_ORIGINS_DEV)))
.authorizeHttpRequests(authorize ->
authorize
.requestMatchers("/**").permitAll()
).build();
}
@Bean
@Profile("dev")
public SecurityFilterChain devSecurityFilterChain(HttpSecurity http) throws Exception {
return http.csrf(AbstractHttpConfigurer::disable)
.cors(httpSecurityCorsConfigurer -> httpSecurityCorsConfigurer
.configurationSource(corsConfigurationSource(ALLOWED_ORIGINS_DEV)))
.authorizeHttpRequests(authorize -> authorize
.requestMatchers("/**")
.permitAll())
.build();
}

@Bean
public CorsConfigurationSource corsConfigurationSource(List<String> allowedOrigins) {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowedOrigins(allowedOrigins);
corsConfiguration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE"));
corsConfiguration.setAllowCredentials(true);
corsConfiguration.setAllowedHeaders(List.of("*"));
corsConfiguration.setMaxAge(3600L);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration);
return source;
}
@Bean
public CorsConfigurationSource corsConfigurationSource(List<String> allowedOrigins) {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowedOrigins(allowedOrigins);
corsConfiguration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE"));
corsConfiguration.setAllowCredentials(true);
corsConfiguration.setAllowedHeaders(List.of("*"));
corsConfiguration.setMaxAge(3600L);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration);
return source;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.UUID;

@RestController
@RequestMapping("/api/accessibilities")
Expand All @@ -21,34 +20,33 @@ public AccessibilityController(AccessibilityService accessibilityService) {

@GetMapping
public ResponseEntity<List<AccessibilityDTO>> getAllAccessibilities() {
List<AccessibilityDTO> accessibilityDTOs = this.accessibilityService.getAllAccessibilities();
return ResponseEntity.ok(accessibilityDTOs);
List<AccessibilityDTO> accessibilities = this.accessibilityService.getAllAccessibilities();
return ResponseEntity.ok(accessibilities);
}

@GetMapping("/{id}")
public ResponseEntity<AccessibilityDTO> getAccessibilityById(@PathVariable String id) {
AccessibilityDTO accessibility = this.accessibilityService.getAccessibilityById(id);
@GetMapping("/{accessibilityId}")
public ResponseEntity<AccessibilityDTO> getAccessibilityById(@PathVariable String accessibilityId) {
AccessibilityDTO accessibility = this.accessibilityService.getAccessibilityById(accessibilityId);
return ResponseEntity.ok(accessibility);
}

@PostMapping
public ResponseEntity<AccessibilityDTO> createAccessibility(@RequestBody AccessibilityDTO accessibilityDTO) {
if (accessibilityDTO.getId() == null) {
accessibilityDTO.setId(UUID.randomUUID().toString());
}
AccessibilityDTO createdAccessibility = this.accessibilityService.createAccessibility(accessibilityDTO);
return ResponseEntity.ok(createdAccessibility);
}

@PutMapping("/{id}")
public ResponseEntity<AccessibilityDTO> updateAccessibility(@PathVariable String id, @RequestBody AccessibilityDTO accessibilityDTO) {
AccessibilityDTO updatedAccessibility = this.accessibilityService.updateAccessibility(id, accessibilityDTO);
@PutMapping("/{accessibilityId}")
public ResponseEntity<AccessibilityDTO> updateAccessibility(@PathVariable String accessibilityId,
@RequestBody AccessibilityDTO accessibilityDTO) {
AccessibilityDTO updatedAccessibility = this.accessibilityService
.updateAccessibility(accessibilityId, accessibilityDTO);
return ResponseEntity.ok(updatedAccessibility);
}

@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteAccessibility(@PathVariable String id) {
this.accessibilityService.deleteAccessibility(id);
@DeleteMapping("/{accessibilityId}")
public ResponseEntity<Void> deleteAccessibility(@PathVariable String accessibilityId) {
this.accessibilityService.deleteAccessibility(accessibilityId);
return ResponseEntity.noContent().build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ public AddressController(AddressService addressService) {

@GetMapping
public ResponseEntity<List<AddressDTO>> getAllAddresses() {
List<AddressDTO> addressDTOs = this.addressService.getAllAddresses();
return ResponseEntity.ok(addressDTOs);
List<AddressDTO> addresses = this.addressService.getAllAddresses();
return ResponseEntity.ok(addresses);
}

@GetMapping("/{id}")
public ResponseEntity<AddressDTO> getAddressById(@PathVariable String id) {
AddressDTO queried = this.addressService.getAddressById(id);
return ResponseEntity.ok(queried);
@GetMapping("/{addressId}")
public ResponseEntity<AddressDTO> getAddressById(@PathVariable String addressId) {
AddressDTO address = this.addressService.getAddressById(addressId);
return ResponseEntity.ok(address);
}

@PostMapping
Expand All @@ -36,15 +36,16 @@ public ResponseEntity<AddressDTO> createAddress(@RequestBody AddressDTO addressD
return ResponseEntity.ok(createdAddress);
}

@PutMapping("/{id}")
public ResponseEntity<AddressDTO> updateAddress(@PathVariable String id, @RequestBody AddressDTO addressDTO) {
AddressDTO updateAddress = this.addressService.updateAddress(id, addressDTO);
return ResponseEntity.ok(updateAddress);
@PutMapping("/{addressId}")
public ResponseEntity<AddressDTO> updateAddress(@PathVariable String addressId,
@RequestBody AddressDTO addressDTO) {
AddressDTO updatedAddress = this.addressService.updateAddress(addressId, addressDTO);
return ResponseEntity.ok(updatedAddress);
}

@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteAddress(@PathVariable String id) {
this.addressService.deleteAddress(id);
@DeleteMapping("/{addressId}")
public ResponseEntity<Void> deleteAddress(@PathVariable String addressId) {
this.addressService.deleteAddress(addressId);
return ResponseEntity.noContent().build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,31 +20,32 @@ public AttributeController(AttributeService attributeService) {

@GetMapping
public ResponseEntity<List<AttributeDTO>> getAllAttributes() {
List<AttributeDTO> attributeDTOs = this.attributeService.getAllAttributes();
return ResponseEntity.ok(attributeDTOs);
List<AttributeDTO> attributes = this.attributeService.getAllAttributes();
return ResponseEntity.ok(attributes);
}

@GetMapping("/{id}")
public ResponseEntity<AttributeDTO> getAttributeById(@PathVariable String id) {
AttributeDTO queried = this.attributeService.getAttributeById(id);
return ResponseEntity.ok(queried);
@GetMapping("/{attributeId}")
public ResponseEntity<AttributeDTO> getAttributeById(@PathVariable String attributeId) {
AttributeDTO attribute = this.attributeService.getAttributeById(attributeId);
return ResponseEntity.ok(attribute);
}

@PostMapping
public ResponseEntity<AttributeDTO> createAttribute(@RequestBody AttributeDTO attributeDTO) {
AttributeDTO createdAttribute = this.attributeService.createAttribute(attributeDTO);
AttributeDTO createdAttribute = this.attributeService.createAttribute(attributeDTO.getLinkId(), attributeDTO);
return ResponseEntity.ok(createdAttribute);
}

@PutMapping("/{id}")
public ResponseEntity<AttributeDTO> updateAttribute(@PathVariable String id, @RequestBody AttributeDTO attributeDTO) {
AttributeDTO updatedAttribute = this.attributeService.updateAttribute(id, attributeDTO);
@PutMapping("/{attributeId}")
public ResponseEntity<AttributeDTO> updateAttribute(@PathVariable String attributeId,
@RequestBody AttributeDTO attributeDTO) {
AttributeDTO updatedAttribute = this.attributeService.updateAttribute(attributeId, attributeDTO);
return ResponseEntity.ok(updatedAttribute);
}

@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteAttribute(@PathVariable String id) {
this.attributeService.deleteAttribute(id);
@DeleteMapping("/{attributeId}")
public ResponseEntity<Void> deleteAttribute(@PathVariable String attributeId) {
this.attributeService.deleteAttribute(attributeId);
return ResponseEntity.noContent().build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
@RestController
@RequestMapping("/")
public class BaseController {
@GetMapping
public ResponseEntity<RootDTO> getRoot() {
RootDTO root = RootDTO.builder()
.version("3.0")
.profile("https://docs.openreferraluk.org/en/latest/")
.openapiUrl("https://raw.githubusercontent.com/openreferral/specification/3.0/schema/openapi.json")
.build();
return ResponseEntity.ok(root);
}
@GetMapping
public ResponseEntity<RootDTO> getRoot() {
RootDTO root = RootDTO.builder()
.version("3.0")
.profile("https://docs.openreferraluk.org/en/latest/")
.openapiUrl("https://raw.githubusercontent.com/openreferral/specification/3.0/schema/openapi.json")
.build();
return ResponseEntity.ok(root);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.UUID;

@RestController
@RequestMapping("/api/contacts")
Expand All @@ -21,34 +20,32 @@ public ContactController(ContactService contactService) {

@GetMapping
public ResponseEntity<List<ContactDTO>> getAllContacts() {
List<ContactDTO> contactDTOs = this.contactService.getAllContacts();
return ResponseEntity.ok(contactDTOs);
List<ContactDTO> contacts = this.contactService.getAllContacts();
return ResponseEntity.ok(contacts);
}

@GetMapping("/{id}")
public ResponseEntity<ContactDTO> getContactById(@PathVariable String id) {
ContactDTO contactDTO = this.contactService.getContactById(id);
return ResponseEntity.ok(contactDTO);
@GetMapping("/{contactId}")
public ResponseEntity<ContactDTO> getContactById(@PathVariable String contactId) {
ContactDTO contact = this.contactService.getContactById(contactId);
return ResponseEntity.ok(contact);
}

@PostMapping
public ResponseEntity<ContactDTO> createContact(@RequestBody ContactDTO contactDTO) {
if (contactDTO.getId() == null) {
contactDTO.setId(UUID.randomUUID().toString());
}
ContactDTO createdContact = this.contactService.createContact(contactDTO);
return ResponseEntity.ok(createdContact);
}

@PutMapping("/{id}")
public ResponseEntity<ContactDTO> updateContact(@PathVariable String id, @RequestBody ContactDTO contactDTO) {
ContactDTO updatedAccessibility = this.contactService.updateContact(id, contactDTO);
return ResponseEntity.ok(updatedAccessibility);
@PutMapping("/{contactId}")
public ResponseEntity<ContactDTO> updateContact(@PathVariable String contactId,
@RequestBody ContactDTO contactDTO) {
ContactDTO updatedContact = this.contactService.updateContact(contactId, contactDTO);
return ResponseEntity.ok(updatedContact);
}

@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteContact(@PathVariable String id) {
this.contactService.deleteContact(id);
@DeleteMapping("/{contactId}")
public ResponseEntity<Void> deleteContact(@PathVariable String contactId) {
this.contactService.deleteContact(contactId);
return ResponseEntity.noContent().build();
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.sarapis.orservice.controller;

import com.sarapis.orservice.service.OrganizationService;
import java.io.ByteArrayInputStream;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.InputStreamResource;
import org.springframework.core.io.Resource;
Expand All @@ -12,19 +11,17 @@
@RestController
@RequestMapping("/api/export")
public class ExportController {
private final OrganizationService organizationService;
private final OrganizationService organizationService;

@Autowired
public ExportController(OrganizationService organizationService) {
this.organizationService = organizationService;
}

@RequestMapping("/csv")
public ResponseEntity<Resource> exportCSV() {
String filename = "organizations.csv";
InputStreamResource organizationCSV = new InputStreamResource(organizationService.loadCSV());
return ResponseEntity.ok()
.body(organizationCSV);
}
@Autowired
public ExportController(OrganizationService organizationService) {
this.organizationService = organizationService;
}

@RequestMapping("/csv")
public ResponseEntity<Resource> exportCSV() {
String filename = "organizations.csv";
InputStreamResource organizationCSV = new InputStreamResource(organizationService.loadCSV());
return ResponseEntity.ok().body(organizationCSV);
}
}
Loading

0 comments on commit 52b8222

Please sign in to comment.