Example #1
0
    def post(self):
        item = request.get_json() if request.get_json() else request.form

        try:
            if item:

                if ClientModel().get_by_cpf(item['cpf']):
                    return f'The CPF "{item["email"]}" is already in use.', 400
                if ClientModel().get_by_email(item['email']):
                    return f'The email "{item["email"]}" is already in use.', 400
                if ClientModel().get_by_rg(item['rg_number']):
                    return f'The RG "{item["rg_number"]}" is already in use.', 400

                model = ClientModel()
                model.first_name = item['first_name']
                model.last_name = item['last_name']
                model.cpf = item['cpf']
                model.rg_number = item['rg_number']
                model.rg_uf = item['rg_uf']
                model.email = item['email']
                model.phone = item['phone']
                model.active = item['active'] if 'active' in item else True
                model.user_id = item['user_id'] if 'user_id' in item else None
                model.timestamp = date.today()
                model.save()

                return 'created', 201
            else:
                return 'not created, invalid payload', 400
        except Exception as e:
            return f"{e}", 500
    def put(cls, client_id: int):
        client_json = request.get_json()
        client = ClientModel.find_by_id(client_id)

        if client is None:
            client = ClientModel()

        client.name = client_json["name"]
        client.email = client_json["email"]
        client.age = client_json["age"]
        client.phone_number = client_json["phone_number"]
        client.user_id = client_json["user_id"]

        client.save_to_db()

        return client_schema.dump(client), 200