Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.econovation.fourth_project.structure.controller;

import com.econovation.fourth_project.structure.domain.Structure;
import com.econovation.fourth_project.structure.dto.ReqStructureDto;
import com.econovation.fourth_project.structure.service.StructureService;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RequiredArgsConstructor
@RestController
public class StructureController {

private final StructureService structureService;

@PostMapping("/api/structure")
public String createStructure(@RequestBody ReqStructureDto request){
structureService.createStructure(request.getStructure());
return "create structure success";
}

@GetMapping("/api/structure")
public List<Structure> getAllStructure(){
return structureService.getAllStructure();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.econovation.fourth_project.structure.domain;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Policy {
private Long id;
private String version;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.econovation.fourth_project.structure.domain;

import lombok.Getter;

@Getter
public class Statement {
private String sid; // 중복 아닌 값
private String effect; // Allow or Deny
private String principal; // 보안 주체(사용자, 그룹, 역할 등) 지정
private String notPrincipal;
private String action;
private String resource;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.econovation.fourth_project.structure.domain;

import lombok.Getter;

import java.util.List;

@Getter
public class Structure {
private Policy policy;
private List<Statement> statementList;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.econovation.fourth_project.structure.dto;

import com.econovation.fourth_project.structure.domain.Structure;
import lombok.Getter;


@Getter
public class ReqStructureDto {
private Structure structure;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.econovation.fourth_project.structure.repository;

import com.econovation.fourth_project.structure.domain.Structure;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Repository
public class StructureRepository {
private Map<Long, Structure> structureRepository = new HashMap<>();

public void save(Long id,Structure structure){
structureRepository.put(id,structure);
}

public Structure findById(Long id){
return structureRepository.get(id);
}

public List<Structure> getAllStructure(){
return new ArrayList<>(structureRepository.values());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.econovation.fourth_project.structure.service;

import com.econovation.fourth_project.structure.domain.Policy;
import com.econovation.fourth_project.structure.domain.Structure;
import com.econovation.fourth_project.structure.repository.StructureRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RequiredArgsConstructor
@Service
public class StructureService {
private final StructureRepository structureRepository;
private static Long ID = 0L;
public void createStructure(Structure structure){
structureRepository.save(ID, structure);
structure.getPolicy().setId(ID++);
}

public List<Structure> getAllStructure(){
return structureRepository.getAllStructure();
}



}