def post(self): """ POST Method for Country. Login required :return: JSON response """ errors = [] try: self.validate_fields(Country.required_fields(), request.form) except ValueError: return self.response(400, 'Required fields: ' + ' '.join(Country.required_fields())) params = self.get_form_values(Country.get_columns(), request.form) validate = Country.query.filter_by(iso_code=params['iso_code']).first() if validate: errors.append("The iso_code already exists") if params['continental_code']: validate = Continent.query.filter_by(code=params['continental_code']).first() if validate is None: errors.append("The continental_code doesn't exists") if errors: return self.response(400, errors) new_country = Country( iso_code=params['iso_code'], iso_code_long=params['iso_code_long'], short_name=params['short_name'], formal_name=params['formal_name'], demonym=params['demonym'], country_code=params['country_code'], continental_code=params['continental_code'], coordinates=params['coordinates'], elevation=params['elevation'], elevation_low=params['elevation_low'], area=params['area'], land=params['land'], fertility=params['fertility'], death=params['death'], birth=params['birth'], population=params['population'], population_urban=params['population_urban'], itu=params['itu'], web=params['web'], gis=params['gis'], statistics=params['statistics'], flag=params['flag'], government=params['government'], boundary_box=params['boundary_box'], currency=params['currency'], ) new_country.save() return self.response(201)
def put(self, iso_code): """ PUT Method for Country. Login required :param iso_code: :return: JSON response """ errors = [] iso_code = str(iso_code).upper() country = Country.query.filter_by(iso_code=iso_code).first() if country is None: return self.response(404) params = self.get_form_values(Country.get_columns(), request.form) if params['continental_code']: validate = Continent.query.filter_by(code=params['continental_code']).first() if validate is None: errors.append("The continental_code doesn't exists") if errors: return self.response(400, errors) if params['iso_code_long']: country.iso_code_long = params['iso_code_long'] if params['short_name']: country.short_name = params['short_name'] if params['formal_name']: country.formal_name = params['formal_name'] if params['demonym']: country.demonym = params['demonym'] if params['country_code']: country.country_code = params['country_code'] if params['continental_code']: country.continental_code = params['continental_code'] if params['coordinates']: country.coordinates = params['coordinates'] if params['elevation']: country.elevation = params['elevation'] if params['elevation_low']: country.elevation_low = params['elevation_low'] if params['area']: country.area = params['area'] if params['land']: country.land = params['land'] if params['fertility']: country.fertility = params['fertility'] if params['population']: country.population = params['population'] if params['population_urban']: country.population_urban = params['population_urban'] if params['itu']: country.itu = params['itu'] if params['web']: country.web = params['web'] if params['gis']: country.gis = params['gis'] if params['statistics']: country.statistics = params['statistics'] if params['flag']: country.flag = params['flag'] if params['government']: country.government = params['government'] if params['boundary_box']: country.boundary_box = params['boundary_box'] if params['currency']: country.currency = params['currency'] country.save() return self.response(200)