class ShippingExpeditionApi {
	
	private static final Logger LOGGER = LoggerFactory.getLogger(ShippingExpeditionApi.class);

	@Autowired
	private AuthorizationUtils authorizationUtils;
	
	@Autowired
	private ShippingFacade shippingFacade;

	@RequestMapping(value = { "/private/shipping/expedition" }, method = RequestMethod.GET)
	@ResponseStatus(HttpStatus.OK)
	@ResponseBody
	public ExpeditionConfiguration expedition(
			@ApiIgnore MerchantStore merchantStore,
			@ApiIgnore Language language) {


		String user = authorizationUtils.authenticatedUser();
		authorizationUtils.authorizeUser(user, Stream.of(Constants.GROUP_SUPERADMIN, Constants.GROUP_ADMIN,
				Constants.GROUP_SHIPPING, Constants.GROUP_ADMIN_RETAIL).collect(Collectors.toList()), merchantStore);

		return shippingFacade.getExpeditionConfiguration(merchantStore, language);

	}
	
	 @GetMapping("/shipping/country")
	  public List<ReadableCountry> 
	 	getCountry(
				@ApiIgnore MerchantStore merchantStore,
				@ApiIgnore Language language) {
	    return shippingFacade.shipToCountry(merchantStore, language);
	  }
	
	
	@RequestMapping(value = { "/private/shipping/expedition" }, method = RequestMethod.POST)
	@ResponseStatus(HttpStatus.OK)
	@ResponseBody
	public void saveExpedition(
			@RequestBody ExpeditionConfiguration expedition,
			@ApiIgnore MerchantStore merchantStore,
			@ApiIgnore Language language) {<FILL_FUNCTION_BODY>}

}



		String user = authorizationUtils.authenticatedUser();
		authorizationUtils.authorizeUser(user, Stream.of(Constants.GROUP_SUPERADMIN, Constants.GROUP_ADMIN,
				Constants.GROUP_SHIPPING, Constants.GROUP_ADMIN_RETAIL).collect(Collectors.toList()), merchantStore);

		shippingFacade.saveExpeditionConfiguration(expedition, merchantStore);

	
<no_super_class>