KeyValueConfigController.java 5.46 KB
Newer Older
1 2 3 4
package pwc.taxtech.atms.controller;

import java.util.List;

5 6
import javassist.tools.web.BadHttpRequest;
import org.apache.commons.lang3.StringUtils;
7 8 9
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
10
import org.springframework.http.MediaType;
11
import org.springframework.web.bind.annotation.*;
12 13

import io.swagger.annotations.ApiOperation;
14 15 16
import pwc.taxtech.atms.dpo.AnalyticsModelDetail;
import pwc.taxtech.atms.dpo.FinancialStatementDetail;
import pwc.taxtech.atms.dpo.TaxReturnDetail;
17 18
import pwc.taxtech.atms.dto.*;
import pwc.taxtech.atms.dto.Common.RemoteValidationRetDto;
19
import pwc.taxtech.atms.dto.formula.FormulaConfigDto;
20
import pwc.taxtech.atms.service.KeyValueConfigService;
21
import pwc.taxtech.atms.service.TemplateFormulaService;
22 23 24 25 26

@RestController
@RequestMapping("/api/v1/keyValueConfig")
public class KeyValueConfigController {
    private static final Logger logger = LoggerFactory.getLogger(EnterpriseAccountManagerController.class);
27

28 29
    @Autowired
    private KeyValueConfigService keyValueConfigService;
30

31 32 33
    @Autowired
    private TemplateFormulaService templateFormulaService;

34 35 36 37 38
    @ApiOperation(value = "get keyValueConfig")
    @RequestMapping(value = "", method = RequestMethod.GET)
    public @ResponseBody
    List<KeyValueConfigDisplayDto> get() {
        return keyValueConfigService.get();
39 40
    }

41
    @RequestMapping(value = "dataSource", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
42
    public @ResponseBody
43
    OperationResultDto<List<FormulaConfigDto>> getDataSource() {
44
        return keyValueConfigService.getAllFormulaList();
45
    }
46

47
    @RequestMapping(value = "getFinacialReference/{keyValueId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
48
    public @ResponseBody
49 50 51
    List<FinancialStatementDetail> getFinacialStatementReference(@PathVariable String keyValueId) throws BadHttpRequest {
        if (StringUtils.isBlank(keyValueId)) {
            throw new BadHttpRequest(new Exception("keyValueId is null"));
52
        }
53
        return keyValueConfigService.getFinacialStatement(keyValueId);
54 55
    }

56
    @RequestMapping(value = "getTaxReference/{keyValueId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
57
    public @ResponseBody
58 59 60
    List<TaxReturnDetail> getTaxReturnReference(@PathVariable String keyValueId) throws BadHttpRequest {
        if (StringUtils.isBlank(keyValueId)) {
            throw new BadHttpRequest(new Exception("keyValueId is null"));
61
        }
62
        return keyValueConfigService.getTaxReturn(keyValueId);
63 64
    }

65
    @RequestMapping(value = "getModelReference/{keyValueId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
66
    public @ResponseBody
67 68 69
    List<AnalyticsModelDetail> getAnalyticsModelReference(@PathVariable String keyValueId) throws BadHttpRequest {
        if (StringUtils.isBlank(keyValueId)) {
            throw new BadHttpRequest(new Exception("keyValueId is null"));
70
        }
71
        return keyValueConfigService.getAnalyticsModel(keyValueId);
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
    }

    @RequestMapping(value = "add", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public void addKeyValueConfiguration(@RequestBody AddKeyValueConfigDto addKeyValueConfigDto) {
        //todo: add userName @ here
        addKeyValueConfigDto.setUserName("");
        keyValueConfigService.addKeyValueConfiguration(addKeyValueConfigDto);
    }

    @RequestMapping(value = "update", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public void updateKeyValueConfiguration(@RequestBody UpdateKeyValueConfigDto updateKeyValueConfigDto) {
        //todo: add userName @ here
        updateKeyValueConfigDto.setUserName("");
        keyValueConfigService.updateKeyValueConfiguration(updateKeyValueConfigDto);
    }

    @RequestMapping(method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public @ResponseBody
90
    int delelte(@RequestParam("keyValueID") String keyValueId) throws BadHttpRequest {
91 92
        if (StringUtils.isBlank(keyValueId)) {
            throw new BadHttpRequest(new Exception("keyValueId is null"));
93
        }
94
        return keyValueConfigService.deleteKeyValueConfiguration(keyValueId);
95 96
    }

97
    @RequestMapping(value = "getByOrgId/{orgId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
98
    public @ResponseBody
99 100
    List<KeyValueConfigDisplayDto> getByOrgId(@PathVariable String orgId) {
        return keyValueConfigService.getByOrgId(orgId);
101 102 103 104 105 106 107
    }

    @RequestMapping(value = "isDuplicated", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public @ResponseBody
    RemoteValidationRetDto isDuplicated(@RequestParam String value) {
        boolean isDuplicated = keyValueConfigService.isKeyValueDuplicated(value);
        RemoteValidationRetDto result = new RemoteValidationRetDto();
108
        result.setIsValid(!isDuplicated);
109 110 111 112 113
        result.setValue(value);
        return result;

    }

114 115 116 117 118 119 120 121 122
    @RequestMapping(value="isFormulaValid", method=RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public @ResponseBody
    RemoteValidationRetDto isFormulaValid(@RequestParam String value){
        OperationResultDto validateResult = templateFormulaService.validate(value);
        RemoteValidationRetDto result = new RemoteValidationRetDto();
        result.setIsValid(validateResult.getResult());
        result.setValue(value);
        return result;
    }
123
}