KeyValueConfigController.java 5.99 KB
Newer Older
1 2
package pwc.taxtech.atms.controller;

3 4
import javassist.tools.web.BadHttpRequest;
import org.apache.commons.lang3.StringUtils;
5 6 7
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
8
import org.springframework.http.MediaType;
9 10 11 12 13 14 15
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
16 17 18
import pwc.taxtech.atms.dpo.AnalyticsModelDetail;
import pwc.taxtech.atms.dpo.FinancialStatementDetail;
import pwc.taxtech.atms.dpo.TaxReturnDetail;
19
import pwc.taxtech.atms.dto.AddKeyValueConfigDto;
20
import pwc.taxtech.atms.dto.Common.RemoteValidationRetDto;
21 22 23
import pwc.taxtech.atms.dto.KeyValueConfigDisplayDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.UpdateKeyValueConfigDto;
24
import pwc.taxtech.atms.dto.formula.FormulaConfigDto;
25
import pwc.taxtech.atms.service.impl.KeyValueConfigServiceImpl;
26 27 28
import pwc.taxtech.atms.service.impl.TemplateFormulaServiceImpl;

import java.util.List;
29 30 31 32 33

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

35
    @Autowired
36
    private KeyValueConfigServiceImpl keyValueConfigService;
37

38
    @Autowired
39
    private TemplateFormulaServiceImpl templateFormulaService;
40

gary's avatar
gary committed
41
//    @ApiOperation(value = "get keyValueConfig")
42 43 44 45
    @RequestMapping(value = "", method = RequestMethod.GET)
    public @ResponseBody
    List<KeyValueConfigDisplayDto> get() {
        return keyValueConfigService.get();
46 47
    }

48
    @RequestMapping(value = "dataSource", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
49
    public @ResponseBody
50
    OperationResultDto<List<FormulaConfigDto>> getDataSource() {
51
        return keyValueConfigService.getAllFormulaList();
52
    }
53

54
    @RequestMapping(value = "getFinacialReference/{keyValueId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
55
    public @ResponseBody
56 57 58
    List<FinancialStatementDetail> getFinacialStatementReference(@PathVariable String keyValueId) throws BadHttpRequest {
        if (StringUtils.isBlank(keyValueId)) {
            throw new BadHttpRequest(new Exception("keyValueId is null"));
59
        }
60
        return keyValueConfigService.getFinacialStatement(keyValueId);
61 62
    }

63
    @RequestMapping(value = "getTaxReference/{keyValueId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
64
    public @ResponseBody
65 66 67
    List<TaxReturnDetail> getTaxReturnReference(@PathVariable String keyValueId) throws BadHttpRequest {
        if (StringUtils.isBlank(keyValueId)) {
            throw new BadHttpRequest(new Exception("keyValueId is null"));
68
        }
69
        return keyValueConfigService.getTaxReturn(keyValueId);
70 71
    }

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

    @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
97
    int delelte(@RequestParam("keyValueID") String keyValueId) throws BadHttpRequest {
98 99
        if (StringUtils.isBlank(keyValueId)) {
            throw new BadHttpRequest(new Exception("keyValueId is null"));
100
        }
101
        return keyValueConfigService.deleteKeyValueConfiguration(keyValueId);
102 103
    }

104
    @RequestMapping(value = "getByOrgId/{orgId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
105
    public @ResponseBody
106 107
    List<KeyValueConfigDisplayDto> getByOrgId(@PathVariable String orgId) {
        return keyValueConfigService.getByOrgId(orgId);
108 109 110 111 112 113 114
    }

    @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();
115
        result.setIsValid(!isDuplicated);
116 117 118 119 120
        result.setValue(value);
        return result;

    }

121
    @RequestMapping(value = "isFormulaValid", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
122
    public @ResponseBody
123
    RemoteValidationRetDto isFormulaValid(@RequestParam String value) {
124 125 126 127 128 129
        OperationResultDto validateResult = templateFormulaService.validate(value);
        RemoteValidationRetDto result = new RemoteValidationRetDto();
        result.setIsValid(validateResult.getResult());
        result.setValue(value);
        return result;
    }
130
}