diff --git a/apis/__init__.py b/apis/__init__.py
index d9d33eb..754278a 100644
--- a/apis/__init__.py
+++ b/apis/__init__.py
@@ -5,3 +5,4 @@
from .blogs import blogs
from .gsoc import gsoc
from .tv_shows import tv_shows
+from .pkmn import pkmn
diff --git a/apis/pkmn.py b/apis/pkmn.py
new file mode 100644
index 0000000..d4776fc
--- /dev/null
+++ b/apis/pkmn.py
@@ -0,0 +1,229 @@
+import flask
+from flask import jsonify,Blueprint,request,abort
+
+pkmn = Blueprint('pkmn',__name__)
+
+pokemon = [
+ {
+ 'id' : 0,
+ 'name' : 'Charizard',
+ 'number' : 6,
+ 'type1' : 'Fire',
+ 'type2' : 'Flying',
+ 'species' : 'Flame Pokemon'
+ },
+
+ {
+ 'id' : 1,
+ 'name' : 'Pikachu',
+ 'number' : 25,
+ 'type1' : 'Electric',
+ 'type2' : None,
+ 'species' : 'Mouse Pokemon'
+ },
+
+ {
+ 'id' : 2,
+ 'name' : 'Gengar',
+ 'number' : 94,
+ 'type1' : 'Ghost',
+ 'type2' : 'Poison',
+ 'species' : 'Shadow Pokemon',
+ },
+]
+
+@pkmn.route('/', methods=['GET'])
+def home():
+ return '''
Pokemon
'''
+
+@pkmn.route('/pokemon/all',methods=['GET'])
+def all_pokemon():
+ return jsonify(pokemon)
+
+@pkmn.route('/pokemon/',methods=['GET'])
+def get_pokemon1(dex_number):
+ poke = {}
+ for p in pokemon:
+ if p['number'] == dex_number:
+ poke = p
+ break
+ if len(poke) == 0:
+ abort(404)
+ return jsonify(poke)
+
+@pkmn.route('/pokemon/',methods=['GET'])
+def get_pokemon2(poke_name):
+ poke = {}
+ for p in pokemon:
+ if p['name'].lower() == poke_name.lower():
+ poke = p
+ break
+ if len(poke) == 0:
+ abort(404)
+ return jsonify(poke)
+
+
+@pkmn.route('/add',methods=['POST'])
+def add_pokemon():
+ if not request.json or not 'name' in request.json:
+ abort(400)
+ poke = {
+ 'id': pokemon[-1]['id'] + 1,
+ 'name': request.json['name'],
+ 'number': request.json.get('number'),
+ 'type1': request.json.get('type1'),
+ 'type2': request.json.get('type2',None),
+ 'species': request.json.get('species', ""),
+ }
+
+ pokemon.append(poke)
+ return jsonify(pokemon),201
+
+@pkmn.route('/update/',methods=['PUT'])
+def update_pokemon(pid):
+ poke = {}
+ for p in pokemon:
+ if p['id'] == pid:
+ poke = p
+ break
+
+ if len(poke) == 0:
+ abort(404)
+ if not request.json:
+ abort(400)
+ if 'name' in request.json and type(request.json['name']) != str:
+ abort(400)
+ if 'number' in request.json and type(request.json['number']) != int:
+ abort(400)
+ if 'type1' in request.json and type(request.json['type1']) != str:
+ abort(400)
+ if 'type2' in request.json and type(request.json['type1']) != str:
+ abort(400)
+ if 'species' in request.json and type(request.json['species']) != str:
+ abort(400)
+
+ poke['name'] = request.json.get('name', poke['name'])
+ poke['number'] = request.json.get('number', poke['number'])
+ poke['type1'] = request.json.get('type1', poke['type1'])
+ poke['type2'] = request.json.get('type2', poke['type2'])
+ poke['species'] = request.json.get('species', poke['species'])
+ return jsonify(poke)
+
+@pkmn.route('/qupdate/',methods=['PATCH'])
+def quick_update(pid):
+ poke = {}
+ for p in pokemon:
+ if p['id'] == pid:
+ poke = p
+ break
+ chk = 0
+ field = []
+ if len(poke) == 0:
+ abort(404)
+ if not request.json:
+ abort(400)
+ if 'name' in request.json and type(request.json['name']) != str:
+ abort(400)
+ elif 'name' in request.json:
+ chk = 1
+ field.append('name')
+ if 'number' in request.json and type(request.json['number']) != int:
+ abort(400)
+ elif 'number' in request.json:
+ chk = 1
+ field.append('number')
+ if 'type1' in request.json and type(request.json['type1']) != str:
+ abort(400)
+ elif 'type1' in request.json:
+ chk = 1
+ field.append('type1')
+ if 'type2' in request.json and type(request.json['type1']) != str:
+ abort(400)
+ elif 'type2' in request.json:
+ chk = 1
+ field.append('type2')
+ if 'species' in request.json and type(request.json['species']) != str:
+ abort(400)
+ elif 'species' in request.json:
+ chk = 1
+ field.append('species')
+
+ if chk==1:
+ for s in field:
+ poke[s] = request.json.get(s, poke[s])
+ return jsonify(poke)
+
+@pkmn.route('/delete/',methods=['DELETE'])
+def delete_pokemon(pid):
+ poke = {}
+ for p in pokemon:
+ if p['id'] == pid:
+ poke = p
+ break
+
+ if len(poke)==0:
+ abort(404)
+ pokemon.remove(poke)
+ return jsonify({'result': True})
+
+@pkmn.route('/docs')
+def docs():
+ endpoints = [
+ {
+ 'url': '/api/pkmn',
+ 'method': 'GET',
+ 'description': 'A pkmn endpoint serving GET requests as a webhook'
+
+ },
+ {
+ 'url': '/api/pkmn/pokemon/all',
+ 'method': 'GET',
+ 'description': 'A pkmn endpoint to get list of all Pokemon'
+
+ },
+ {
+ 'url': '/api/pkmn/pokemon/',
+ 'method': 'GET',
+ 'description': 'A pkmn endpoint to get specific Pokemon by Pokedex number'
+
+ },
+ {
+ 'url': '/api/pkmn/pokemon/',
+ 'method': 'GET',
+ 'description': 'A pkmn endpoint to get specific Pokemon by name'
+
+ },
+ {
+ 'url': '/api/pkmn/add',
+ 'method': 'POST',
+ 'description': 'A pkmn endpoint to add a new Pokemon'
+
+ },
+ {
+ 'url': '/api/pkmn/update/',
+ 'method': 'PUT',
+ 'description': 'A pkmn endpoint to update specific Pokemon details,choose by id'
+
+ },
+ {
+ 'url': '/api/pkmn/delete/',
+ 'method': 'DELETE',
+ 'description': 'A pkmn endpoint to delete specific Pokemon,choose by id'
+
+ }
+
+ ]
+
+ return jsonify({'endpoints': endpoints})
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app.py b/app.py
index e2bf147..269946e 100644
--- a/app.py
+++ b/app.py
@@ -8,7 +8,7 @@
from apis import blogs
from apis import gsoc
from apis import tv_shows
-
+from apis import pkmn
# Initialize the app
app = Flask(__name__, instance_relative_config=True)