Make the badge SAR script working according to the set standards
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
This commit is contained in:
parent
1394618cfb
commit
eb0a7caf45
1 changed files with 17 additions and 29 deletions
|
@ -2,37 +2,26 @@
|
|||
""" This is a CLI script for getting all the details of a person
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import __main__
|
||||
__main__.__requires__ = __requires__ = ["tahrir-api", "sqlalchemy>=0.7"]
|
||||
import pkg_resources
|
||||
pkg_resources.require(__requires__)
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
from tahrir_api.dbapi import TahrirDatabase
|
||||
|
||||
import fedmsg
|
||||
import fedmsg.config
|
||||
|
||||
import fedbadges.utils
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser(__doc__)
|
||||
parser.add_argument('--person', default=None, help="A person FAS username")
|
||||
args = parser.parser_args()
|
||||
return args
|
||||
|
||||
|
||||
def initialize():
|
||||
fm_config = fedmsg.config.load_config()
|
||||
fm_config['cert_prefix'] = 'fedbadges'
|
||||
fm_config['name'] = 'relay_inbound'
|
||||
fm_config['active'] = True
|
||||
fedmsg.init(**fm_config)
|
||||
uri = fm_config['badges_global']['database_uri']
|
||||
tahrir = TahrirDatabase(
|
||||
uri,
|
||||
|
@ -41,13 +30,19 @@ def initialize():
|
|||
return tahrir
|
||||
|
||||
|
||||
def main(tahrir, nickname):
|
||||
def main():
|
||||
tahrir = initialize()
|
||||
nickname = os.getenv('SAR_USERNAME')
|
||||
if not nickname:
|
||||
print('An username is required to query datagrepper')
|
||||
return 1
|
||||
|
||||
payload = {}
|
||||
person = tahrir.get_person(nickname=nickname)
|
||||
|
||||
if not person:
|
||||
print 'No such person %r' % nickname
|
||||
sys.exit(1)
|
||||
return 1
|
||||
|
||||
payload = {
|
||||
'id': person.id,
|
||||
|
@ -55,8 +50,8 @@ def main(tahrir, nickname):
|
|||
'email': person.email,
|
||||
'website': person.website,
|
||||
'bio': person.bio,
|
||||
'created_on': person.created_on,
|
||||
'last_login': person.last_login,
|
||||
'created_on': person.created_on.isoformat(),
|
||||
'last_login': person.last_login.isoformat(),
|
||||
'opt_out': person.opt_out,
|
||||
'rank': person.rank,
|
||||
'assertions': []
|
||||
|
@ -69,23 +64,16 @@ def main(tahrir, nickname):
|
|||
for assertion in assertions:
|
||||
assertion_list.append({
|
||||
'badge_id': assertion.badge_id,
|
||||
'issued_on': assertion.issued_on
|
||||
'issued_on': assertion.issued_on.isoformat()
|
||||
})
|
||||
|
||||
payload['assertions'] = assertion_list
|
||||
|
||||
print json.dumps(payload)
|
||||
print(json.dumps(
|
||||
payload, sort_keys=True, indent=4, separators=(',', ': ')
|
||||
).encode('utf-8'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = parse_args()
|
||||
if not args.person:
|
||||
nickname = os.environ['BADGE_USER']
|
||||
if nickname is None:
|
||||
print "You must specify a person id."
|
||||
sys.exit(1)
|
||||
else:
|
||||
nickname = args.person
|
||||
sys.exit(main())
|
||||
|
||||
tahrir = initialize()
|
||||
main(tahrir, nickname)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue