def clean_learning_record(email): result = [] records = load_user_records(email) if records: records_to_clean = [ Statement(actor=email, verb='void', statement_obj=Statement.create_reference_obj( record['statementId'])).to_json() for record in records ] result = _post(records_to_clean) return json.dumps(result)
def assign_learning_plan(): post_data = json.loads(request.data.decode('utf-8')) # this is only for current user for now learner_email = current_user.email learning_plan = Statement.create_plan(plan_name='Actions from diagnostic', learner_actor=learner_email) for resource in post_data: tincan_data = resource.get('tincan', dict()) verb = tincan_data.get('verb') or 'read' statement_obj = tincan_data.get('object') or Statement.create_activity_obj( uri=resource.get('url'), name=resource.get('title')) tincan_result = tincan_data.get('result', dict()) required = tincan_result.get('completion', resource.get('required')) duration = tincan_result.get('duration', resource.get('duration')) planned_item = Statement( verb=verb, statement_obj=statement_obj, required=required, duration=duration) learning_plan.add_planned_item(planned_item) current_app.logger.info(learning_plan.to_json()) lrs_result = lrs_service.save_statement(learning_plan.to_json()) resp = jsonify({ 'postData': post_data, 'plan': learning_plan.to_json(), 'lrsResult': lrs_result }) resp.status_code = lrs_result.get('status', lrs_result.get('code', 200)) if type(lrs_result) is dict else 200 return resp