Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions app/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
ResolveSchema
)
from app.constants import CAIP10, Web
from app.resources.daodao import fetch_juno_daos, fetch_osmosis_daos, fetch_stargaze_daos

main = Flask('DAOstar API')
api = Api(main)
Expand All @@ -25,6 +26,19 @@ def landing_page():
@main.route('/chains')
def get_chains():
return CAIP10.valid_chain_ids
# New routes to fetch DAODAO DAO's securly
@main.route('/fetch_juno_daos', methods=['GET'])
def get_juno_daos():
return fetch_juno_daos()

@main.route('/fetch_osmosis_daos', methods=['GET'])
def get_osmosis_daos():
return fetch_osmosis_daos()

@main.route('/fetch_stargaze_daos', methods=['GET'])
def get_stargaze_daos():
return fetch_stargaze_daos()


api.add_resource(CreateMutableSchema, '/mutable', '/mutable/')
api.add_resource(InteractMutableSchema, '/mutable/<caip>')
Expand Down
9 changes: 9 additions & 0 deletions app/constants/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,15 @@ class Pinata:
API_KEY = os.getenv('PINATA_API_KEY')
SECRET_API_KEY = os.getenv('PINATA_SECRET_API_KEY')

class DaoDao:
JUNO_URL = 'https://search.daodao.zone/indexes/daos/documents',
OSMOSIS_URL = 'https://search.daodao.zone/indexes/osmosis_daos/documents',
STARGAZE_URL = 'https://search.daodao.zone/indexes/stargaze_daos/search?filter=value.config.name%20EXISTS',
API_KEY = os.getenv('DAODAO_API_KEY')
SEARCH_API_KEY = os.getenv('DAODAO_SEARCH_API_KEY')



class Alchemy:
MAINNET_BASE_URL = 'https://eth-mainnet.g.alchemy.com/v2/'
RINKEBY_BASE_URL = 'https://eth-rinkeby.alchemyapi.io/v2/'
Expand Down
3 changes: 2 additions & 1 deletion app/resources/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from app.resources.mutable import CreateMutableSchema, InteractMutableSchema
from app.resources.immutable import CreateImmutableSchema, ViewImmutableSchema
from app.resources.resolve import ResolveSchema
from app.resources.resolve import ResolveSchema
from app.resources.daodao import fetch_juno_daos, fetch_osmosis_daos, fetch_stargaze_daos
35 changes: 35 additions & 0 deletions app/resources/daodao.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from flask import Flask, jsonify, request
from app.constants import DaoDao
import requests

def fetch_juno_daos():
limit = request.args.get('limit', '500') # Default limit to 500 if not specified
url = f"{DaoDao.JUNO_URL}?limit={limit}"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {DaoDao.API_KEY}"
}
response = requests.get(url, headers=headers)
return jsonify(response.json()), response.status_code

def fetch_osmosis_daos():
limit = request.args.get('limit', '500') # Default limit to 500 if not specified
url = f"{DaoDao.OSMOSIS_URL}?limit={limit}"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {DaoDao.API_KEY}"
}
response = requests.get(url, headers=headers)
return jsonify(response.json()), response.status_code

def fetch_stargaze_daos():
limit = request.args.get('limit', '500') # Default limit to 500 if not specified
url = f"{DaoDao.STARGAZE_URL}&limit={limit}"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {DaoDao.SEARCH_API_KEY}"
}
response = requests.get(url, headers=headers)
return jsonify(response.json()), response.status_code