User Data API¶
User Data API will holds Preferences / Entitlements related to the users.
Service Description¶
The service-description will show following information for an API:
Gives the Python Version the API using
Gives the list of all installed Python packages
Gives the name of API
Gives all the available versions
Gives a list of middleware being used
Gives all available routes for each versions.
URL: /user-data/service-description
Method: GET
Example Response:
{
"status_code": 200,
"request_id": "c83bc540-2510-441b-881c-c053379d061c",
"data": {
"python_version": "3.6.8",
"installed_packages": [
"alabaster==0.7.12",
"asn1crypto==0.24.0",
...
],
"name": "user-data",
"versions": [
"v1",
"v2"
],
"middleware": [
"RequestResponseMiddleware",
"AuthenticationMiddleware",
"ResponseGeneratorMiddleware"
],
"routes": {
"v1": {
"preference": [
"delete",
"get",
"post",
"put"
],
"user-preference": [
"delete",
"get",
"post",
"put"
],
...
},
"v2": {
...
}
}
}
}
Legacy Preference Resource¶
Preference Resource¶
-
class
v1.resources.preference.PreferenceResource¶ Preference Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
PreferenceResource.on_get(req, resp, app_name=None)¶ Preference GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/preference
URL 2: URL/Preference-ID
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Preference ID>, "name": <String, Preference Name>, "slug": <String, Preference Slug> }, .... ] }
POST Method¶
-
PreferenceResource.on_post(req, resp)¶ Preference POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/preference
Request Object:
# Accepts JSON or Array of JSON [ { "name": <String, Preference Name>, "slug": <String, Preference Slug> }, ... ] .. note:: The name and slug needs to be unique
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, User-Preference ID>, "name": <String, Preference Name>, "slug": <String, Preference Slug> } ... ] }
PUT Method¶
-
PreferenceResource.on_put(req, resp, app_name=None)¶ Preference PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/preference/1
Request Object:
{ "name": <String, Preference Name>, "slug": <String, Preference Slug> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, User-Preference ID>, "name": <String, Preference Name>, "slug": <String, Preference Slug> } ] }
DELETE Method¶
-
PreferenceResource.on_delete(req, resp, app_name=None)¶ Preference Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/preference/1
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, User-Preference ID>, "name": <String, Preference Name>, "slug": <String, Preference Slug> } ] }
Note
it will delete all related user_preference as well
User Preference Resource¶
-
class
v1.resources.user_preference.UserPreferenceResource¶ User Preference Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
UserPreferenceResource.on_get(req, resp, id=None)¶ User Preference GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/user-preference
URL 2: URL/User-Preference-ID
Filter Query:
?preference_value=<Javascript Object>
?preference_id=<Integer, a preference from /user-data/v1/preference>
?preference_name=<String, Preference Name>
?preference_slug= <String, Preference Slug>
Note
all of above query params can be used by combining with &.
Example: user_email=xyz&preference_name=abc
Few Examples of Filter Query:
- Give me all Object for given email user.email@example.com
../user-data/v1/user-preference?user_email=user.email@example.com
- Give me all Object where user_email ends with example.com
- Give me all Object where user_email has example on it
- Give me all Object where user_email has example on it and preference_name has google on it
../user-data/v1/user-preference?user_email=%example%&preference_name=%google%
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "preference_value": <Javascript Object>, "id": <Integer, User-Preference ID>, "user_email": <User Email Address>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_name": <String, Preference Name>, "preference_slug": <String, Preference Slug> }, .... ] }
POST Method¶
-
UserPreferenceResource.on_post(req, resp)¶ User Preference post Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/user-preference
Request Object:
# Accepts JSON or Array of JSON [ { "user_email": <User Email Address>, "preference_slug": <Optional, if sent it will be ignored>, "preference_name": <Optional, if sent it will be ignored>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_value": <Any Javascript Object> }, . .. ] .. note:: 1. It will delete all previous user-preference for given user_email 1. Creates all the Provided object as new user-preference relationship record 1. The user_email and preference_id must be unique
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "preference_value": <Javascript Object>, "id": <Integer, User-Preference ID>, "user_email": <User Email Address>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_name": <String, Preference Name>, "preference_slug": <String, Preference Slug> } ... ] }
PUT Method¶
-
UserPreferenceResource.on_put(req, resp, id=None)¶ User Preference PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/user-preference/1
Request Object:
{ "user_email": <User Email Address>, "preference_slug": <Optional, if sent it will be ignored>, "preference_name": <Optional, if sent it will be ignored>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_value": <Any Javascript Object> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "preference_value": <Javascript Object>, "id": <Integer, User-Preference ID>, "user_email": <User Email Address>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_name": <String, Preference Name>, "preference_slug": <String, Preference Slug> } ] }
DELETE Method¶
-
UserPreferenceResource.on_delete(req, resp, id=None)¶ User Preference Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/user-preference/1
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "preference_value": <Javascript Object>, "id": <Integer, User-Preference ID>, "user_email": <User Email Address>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_name": <String, Preference Name>, "preference_slug": <String, Preference Slug> } ] }
Generic Resources¶
User Resource¶
-
class
v1.resources.user.UserResource¶ User Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
-
validate_user_email(user_payload: dict) → None¶ Validates user email as per associated user’s client allowed domain
- Parameters
user_payload (dict) – cleaned user data payload.
- Raises
MalformedDataError – Raised when supplied email domain doesn’t falls under its associated client allowed domains.
-
GET Method¶
-
UserResource.on_get(req, resp, identifier=None)¶ User GET Method
Request
Method:
GETURL 2: URL/User-ID
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, User ID>, "sf_id": <String, Salesforce User ID>, "fname": <String, User FName>, "lname": <String, User LName>, "email": <String, User Email>, "client_id": <Integer, user associated to client>, "user_type": <String, single required choice from ('normal','power_user','decision_maker','power_user_and_decision_maker')> }, .... ] }
POST Method¶
-
UserResource.on_post(req, resp)¶ User POST Method
Request
Method:
POSTRequest Object:
# Accepts JSON or Array of JSON [ { "sf_id": <String, Salesforce User ID>, [optional] "fname": <String, User FName>, [required] "lname": <String, User LName>, [required] "email": <String, User Email>, [unique,required] "client_id": <Integer, User associated client id> [optional], "user_type": <String, single required choice from ('normal','power_user','decision_maker','power_user_and_decision_maker')> [defaults to normal] }, ... ] .. note:: The fname needs to be unique
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, User ID>, "sf_id": <String, Salesforce User ID>, "fname": <String, User FName>, "lname": <String, User LName>, "email": <String, User Email>, "client_id": <Integer, User associated client id>, "user_type": <String, single required choice from ('normal','power_user','decision_maker','power_user_and_decision_maker')> } ... ] }
PUT Method¶
-
UserResource.on_put(req, resp, identifier=None)¶ User PUT Method
Request
Method:
PUTRequest Object:
{ "fname": <String, User FName>, "lname": <String, User LName>, "email": <String, User Email>, "client_id": <Integer, User associated client ID>, "user_type": <String, single required choice from ('normal','power_user','decision_maker','power_user_and_decision_maker')> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, User ID>, "sf_id": <String, Salesforce User ID>, "fname": <String, User FName>, "lname": <String, User LName>, "email": <String, User Email>, "client_id": <Integer, User associated client ID>, "user_type": <String, single required choice from ('normal','power_user','decision_maker','power_user_and_decision_maker')> } ] }
DELETE Method¶
-
UserResource.on_delete(req, resp, identifier=None)¶ User Delete Method
Request
Method:
DELETE
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, User ID>, "sf_id": <String, Salesforce User ID>, "fname": <String, User FName>, "lname": <String, User LName>, "email": <String, User Email>, "client_id": <Integer, User associated client ID>, "user_type": <String, single required choice from ('normal','power_user','decision_maker','power_user_and_decision_maker')> } ] }
Application Resource¶
-
class
v1.resources.application.ApplicationResource¶ Application Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
POST Method¶
-
ApplicationResource.on_post(req, resp)¶ Application POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/application
Request Object:
# Accepts JSON or Array of JSON [ { "name": <String, Application Name> }, ... ] .. note:: The name needs to be unique
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Application ID>, "name": <String, Application Name> } ... ] }
PUT Method¶
-
ApplicationResource.on_put(req, resp, id=None)¶ Application PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/application/1
Request Object:
{ "name": <String, Application Name> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Application ID>, "name": <String, Application Name> } ] }
DELETE Method¶
-
ApplicationResource.on_delete(req, resp, id=None)¶ Application Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/application/1
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Application ID>, "name": <String, Application Name> } ] }
Application User Resource¶
-
class
v1.resources.application_user.ApplicationUserResource¶ ApplicationUser Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
POST Method¶
-
ApplicationUserResource.on_post(req, resp)¶ ApplicationUser POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/application-user
Request Object:
# Accepts JSON or Array of JSON [ { "user_id": <Integer, User ID>, [required] "application_id": <Integer, Application ID>, [required] "legacy_id": <Integer, User ID in Specific App> [required] }, ... ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, ApplicationUser ID>, "user_id": <Integer, User ID>, "application_id": <Integer, Application ID>, "legacy_id": <Integer, User ID in Specific App> } ... ] }
PUT Method¶
-
ApplicationUserResource.on_put(req, resp, id=None)¶ ApplicationUser PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/application-user/1
Request Object:
{ "user_id": <Integer, User ID>, "application_id": <Integer, Application ID>, "legacy_id": <Integer, User ID in Specific App> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, ApplicationUser ID>, "user_id": <Integer, User ID>, "application_id": <Integer, Application ID>, "legacy_id": <Integer, User ID in Specific App> } ] }
DELETE Method¶
-
ApplicationUserResource.on_delete(req, resp, id=None)¶ ApplicationUser Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/application-user/1
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, ApplicationUser ID>, "user_id": <Integer, User ID>, "application_id": <Integer, Application ID>, "legacy_id": <Integer, User ID in Specific App> } ] }
Feature Resource¶
-
class
v1.resources.feature.FeatureResource¶ Feature Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
POST Method¶
-
FeatureResource.on_post(req, resp)¶ Feature POST Method
Request
Method:
POSTRequest Object:
# Accepts JSON or Array of JSON [ { "app_id": <Integer, Application ID>, "name": <String, Feature Name>, "description": <String, Feature Description> }, ... ] .. note:: The name needs to be unique
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Feature ID>, "app_id": <Integer, Application ID>, "name": <String, Feature Name>, "description": <String, Feature Description> } ... ] }
PUT Method¶
-
FeatureResource.on_put(req, resp, id=None)¶ Feature PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/feature/1
Request Object:
{ "app_id": <Integer, Application ID>, "name": <String, Feature Name>, "description": <String, Feature Description> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Feature ID>, "app_id": <Integer, Application ID>, "name": <String, Feature Name>, "description": <String, Feature Description> } ] }
DELETE Method¶
-
FeatureResource.on_delete(req, resp, id=None)¶ Feature Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/feature/1
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Feature ID>, "app_id": <Integer, Application ID>, "name": <String, Feature Name>, "description": <String, Feature Description> } ] }
Note
it will delete all related feature_package as well
Package Resource¶
-
class
v1.resources.package.PackageResource¶ Package Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
POST Method¶
-
PackageResource.on_post(req, resp)¶ Package POST Method
Request
Method:
POSTRequest Object:
# Accepts JSON or Array of JSON [ { "sf_id": <String, Salesforce Package ID>, "name": <String, Package Name>, "display_name": <String, Package Display Name>, "description": <String, Package Description> }, ... ] .. note:: The name needs to be unique
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Package ID>, "sf_id": <String, Salesforce Package ID>, "name": <String, Package Name>, "display_name": <String, Package Display Name>, "description": <String, Package Description>, "status": <String, Package Status> } ... ] }
PUT Method¶
-
PackageResource.on_put(req, resp, id=None)¶ Package PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/package/1
Request Object:
{ "sf_id": <String, Salesforce Package ID>, "name": <String, Package Name>, "display_name": <String, Package Display Name>, "description": <String, Package Description>, "status": <String, Package Status> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Package ID>, "sf_id": <String, Salesforce Package ID>, "name": <String, Package Name>, "display_name": <String, Package Display Name>, "description": <String, Package Description>, "status": <String, Package Status> } ] }
DELETE Method¶
-
PackageResource.on_delete(req, resp, id=None)¶ Package Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/Package/1
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Package ID>, "sf_id": <String, Salesforce Package ID>, "name": <String, Package Name>, "display_name": <String, Package Display Name>, "description": <String, Package Description>, "status": <String, Package Status> } ] }
Note
it will delete all related user_package, and feature_package as well
Feature Package Resource¶
-
class
v1.resources.feature_package.FeaturePackageResource¶ FeaturePackage Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
POST Method¶
-
FeaturePackageResource.on_post(req, resp)¶ FeaturePackage POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/feature-package
Request Object:
# Accepts JSON or Array of JSON [ { "package_id": <Integer, Package ID>, "feature_id": <Integer, Feature ID>, "display_order": <Integer, Feature Display Order in Package> }, ... ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, FeaturePackage ID>, "package_id": <Integer, Package ID>, "feature_id": <Integer, Feature ID>, "display_order": <Integer, Feature Display Order in Package> } ... ] }
PUT Method¶
-
FeaturePackageResource.on_put(req, resp, id=None)¶ FeaturePackage PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/feature-package/1
Request Object:
{ "package_id": <Integer, Package ID>, "feature_id": <Integer, Feature ID>, "display_order": <Integer, Feature Display Order in Package> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, FeaturePackage ID>, "package_id": <Integer, Package ID>, "feature_id": <Integer, Feature ID>, "display_order": <Integer, Feature Display Order in Package> } ] }
DELETE Method¶
-
FeaturePackageResource.on_delete(req, resp, id=None)¶ FeaturePackage Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/feature-package/1
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, FeaturePackage ID>, "package_id": <Integer, Package ID>, "feature_id": <Integer, Feature ID>, "display_order": <Integer, Feature Display Order in Package> } ] }
Application Preference Resource¶
-
class
v1.resources.user_app_preferences.application_preference.ApplicationPreferenceResource¶ Application Preference Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
ApplicationPreferenceResource.on_get(req, resp, application_id: int = None)¶ Application GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/application-preference/<application_id>
URL 2: https://stag.api.ranenetwork.com/user-data/v1/application-preference
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Application Preference ID>, "application_id" : <Integer, Application ID>, "preference_slug" : <String, Application Preference Slug>, "preference_label" : <String, Application Preference Label>, "preference_description" : <String, Application Preference Description> }, ... ] }
POST Method¶
-
ApplicationPreferenceResource.on_post(req, resp)¶ Application POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/application-preference
Request Array:
[ { "application_id" : <Integer, Application ID>, "preference_label" : <String, Application Preference Label>, "preference_slug" : <String, Application Preference Slug -optional>, "preference_description" : <String, Application Preference Description -optional> }, ... ] # note:: The preference_slug needs to be unique and if left empty preference_label is slugify
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Application Preference ID>, "application_id" : <Integer, Application ID>, "preference_slug" : <String, Application Preference Slug>, "preference_label" : <String, Application Preference Label>, "preference_description" : <String, Application Preference Description> }, ... ] }
PUT Method¶
-
ApplicationPreferenceResource.on_put(req, resp, pk: int = None)¶ Application POST Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/application-preference/<application_preference_id>
Request Object:
{ "application_id" : <Integer, Application ID -optional>, "preference_label" : <String, Application Preference Label -optional>, "preference_slug" : <String, Application Preference Slug -optional>, "preference_description" : <String, Application Preference Description -optional> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Application Preference ID>, "application_id" : <Integer, Application ID>, "preference_slug" : <String, Application Preference Slug>, "preference_label" : <String, Application Preference Label>, "preference_description" : <String, Application Preference Description> } ] }
DELETE Method¶
-
ApplicationPreferenceResource.on_delete(req, resp, pk: int = None)¶ Application Preference Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/application-preference/<application_preference_id>
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": { "id": <Integer, Application Preference ID>, "name": <String, Application Preference Name>, "description": <String, Application Preference Description> } }
Preference Hierarchy Resource¶
-
class
v1.resources.user_app_preferences.preference_hierarchy.PreferenceHierarchyResource¶ Preference Hierarchy Type Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
PreferenceHierarchyResource.on_get(req, resp)¶ Preference Hierarchy Type GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/preference-hierarchy
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Preference Hierarchy Type ID>, "label" : <String, Preference Hierarchy Type Label>, "description" : <String, Preference Hierarchy Title>, "parent" : <Integer, Preference Hierarchy Parent ID > } ... ] }
POST Method¶
-
PreferenceHierarchyResource.on_post(req, resp)¶ Preference Hierarchy POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/preference-hierarchy
Request Object:
[ { "label": <String, Preference Hierarchy Title>, "description": <String, Preference Hierarchy Description -optional>, "parent": <Integer, Preference Hierarchy Parent ID -optional> } ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Preference Hierarchy ID>, "label": <String, Preference Hierarchy Label>, "description": <String, Preference Hierarchy Description>, "parent": <Integer, Preference Hierarchy Parent ID> } ] }
PUT Method¶
-
PreferenceHierarchyResource.on_put(req, resp, pk: int)¶ Preference Hierarchy PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/preference-hierarchy/<preference_hierarchy_id>
Request Object:
{ "label": <String, Preference Hierarchy Title>, "description": <String, Preference Hierarchy Description>, "parent": <Integer, Preference Hierarchy Parent ID -optional> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data":{ "id": <Integer, Preference Hierarchy ID>, "label": <String, Preference Hierarchy Label>, "description": <String, Preference Hierarchy Description>, "parent": <Integer, Preference Hierarchy Parent ID> } }
DELETE Method¶
-
PreferenceHierarchyResource.on_delete(req, resp, pk: int)¶ Preference Hierarchy Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/preference-hierarchy/<preference_hierarchy_id>
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": { "id": <Integer, Preference Hierarchy ID>, "label": <String, Preference Hierarchy Label>, "description": <String, Preference Hierarchy Description>, "parent": <Integer, Preference Hierarchy Parent ID> } }
Note
it will delete all related user_preference as well
User Preference Resources¶
Entity Preference Resource¶
-
class
v1.resources.user_app_preferences.entity_preference.EntityPreferenceResource¶ Entity Preference Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
EntityPreferenceResource.on_get(req, resp)¶ Entity Preference GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/entity-preference
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Entity Preference ID>, "preference_id": <Integer, Preference ID>, "entity_gid": <String, Entity GID> }, ... ] }
POST Method¶
-
EntityPreferenceResource.on_post(req, resp)¶ Entity Preference POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/entity-preference
Request Array:
[ { "preference_id": <Integer, Preference ID>, "entity_gid": <String, Entity GID -optional> }, ... ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Entity Preference ID>, "preference_id": <Integer, Preference ID>, "entity_gid": <String, Entity GID> }, ... ] }
PUT Method¶
-
EntityPreferenceResource.on_put(req, resp, pk: int)¶ Entity Preference PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/entity-preference/<entity_preference_id>
Request Object:
{ "preference_id":, "entity_gid": <String, Entity GID -optional> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data":[ { "id": <Integer, Entity Preference ID>, "preference_id": <Integer, Preference ID>, "entity_gid": <String, Entity GID> } ] }
DELETE Method¶
-
EntityPreferenceResource.on_delete(req, resp, pk: int)¶ Entity Preference Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/entity-preference/<entity_preference_id>
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Entity Preference ID>, "preference_id": <Integer, Preference ID>, "entity_gid": <String, Entity GID> } ] }
Generic Preference Resource¶
-
class
v1.resources.user_app_preferences.generic_preference.GenericPreferenceResource¶ Generic Preference Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
GenericPreferenceResource.on_get(req, resp)¶ Generic Preference GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/generic-preference
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Generic Preference ID>, "preference_id" : <Integer, Preference ID>, "preference_value" : <String, Preference Value>, "schema_version" : <Integer, Schema Version> }, ... ] }
POST Method¶
-
GenericPreferenceResource.on_post(req, resp)¶ Generic Preference POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/generic-preference
Request Array:
[ { "preference_id" : <Integer, Preference ID>, "preference_value" : <String, Preference Value -optional>, "schema_version" : <Integer, Schema Version -optional> }, ... ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Generic Preference ID>, "preference_id": <Integer, Preference ID>, "preference_value'": <String, Preference Value>, "schema_version": <Integer, Schema Version> }, ... ] }
PUT Method¶
-
GenericPreferenceResource.on_put(req, resp, pk: int)¶ Generic Preference PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/generic-preference/<generic_preference_id>
Request Object:
{ "preference_id": <Integer, Preference ID -optional>, "preference_value'": <String, Preference Value -optional>, "schema_version": <Integer, Schema Version -optional> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data":[ { "id": <Integer, Generic Preference ID>, "preference_id": <Integer, Preference ID>, "preference_value'": <String, Preference Value>, "schema_version": <Integer, Schema Version> } ] }
DELETE Method¶
-
GenericPreferenceResource.on_delete(req, resp, pk: int)¶ Generic Preference Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/generic-preference/<generic_preference_id>
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Generic Preference ID>, "preference_id": <Integer, Preference ID>, "preference_value'": <String, Preference Value>, "schema_version": <Integer, Schema Version> } ] }
User Application Preference Resource¶
-
class
v1.resources.user_app_preferences.preference.UserApplicationPreferenceResource¶ Preference Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
UserApplicationPreferenceResource.on_get(req, resp, application_id: int, user_id: int)¶ Preference GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/user-application-preference/<application_id>/<user_id>
URL 2: https://stag.api.ranenetwork.com/user-data/v1/user-application-preference/<application_id>/<user_id>?pref_slugs=<comma seperated application prefrence slugs>
URL 2-example: https://stag.api.ranenetwork.com/user-data/v1/user-application-preference/<application_id>/<user_id>?pref_slugs=map-timeframe,country
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Preference ID>, "app_preference_id": <int, Application Preference ID>, "app_preference_slug": <str, Application Preference slug>, "user_app_preference_id": <int, User Application Preference ID>, "user_id" : <int, User ID>, "type" : <String, Preference Type(Entity/Generic)>, "value": <String, Preference Value> }, ... ] }
POST Method¶
-
UserApplicationPreferenceResource.on_post(req, resp, application_id: int, user_id: int)¶ Preference POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/user-application-preference/<application_id>/<user_id>
Request Array:
[ { "app_preference_id": <int, Application Preference ID>, "user_id" : <int, User ID>, "type" : <String, Preference Type(Entity/Generic)>, "value": <String, Preference Value> }, ... ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Preference ID>, "app_preference_id": <int, Application Preference ID>, "user_app_preference_id": <int, User Application Preference ID>, "user_id" : <int, User ID>, "type" : <String, Preference Type(Entity/Generic)>, "value": <String, Preference Value> }, ... ] }
PUT Method¶
-
UserApplicationPreferenceResource.on_put(req, resp, application_id: int, user_id: int, preference_id: int)¶ Preference PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/user-application-preference/<application_id>/<user_id>/<preference_id>
Request Object:
{ { "id" : <Integer, Preference ID>, "app_preference_id": <int, Application Preference ID>, "user_id" : <int, User ID>, "type" : <String, Preference Type(Entity/Generic)>, "value": <String, Preference Value> } }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data":{ "id" : <Integer, Preference ID>, "app_preference_id": <int, Application Preference ID>, "user_app_preference_id": <int, User Application Preference ID>, "user_id" : <int, User ID>, "type" : <String, Preference Type(Entity/Generic)>, "value": <String, Preference Value> } }
DELETE Method¶
-
UserApplicationPreferenceResource.on_delete(req, resp, application_id: int, user_id: int)¶ Preference Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/user-application-preference/<application_id>/<user_id>
Request Object:
#NOTE: delete can be done over each type of preference only { "ids": [1,2,3] #send one or multiple ids "type": <entity/generic> }
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Preference ID>, "app_preference_id": <int, Application Preference ID>, "user_app_preference_id": <int, User Application Preference ID>, "user_id" : <int, User ID>, "type" : <String, Preference Type(Entity/Generic)>, "value": <String, Preference Value> } ] }
Preference Getter Resource¶
-
class
v1.resources.user_app_preferences.preference_getter_setter.UserPreferenceGetter¶ User Preference getter Class
Note
Allowed Methods: POST
POST Method¶
-
UserPreferenceGetter.on_post(req, resp)¶ User Preference getter POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/get-preference
Request Object:
{ "id" : [<Integer, Preference ID -optional>], "name" : [<String, Preference Name -optional>], "preference_hierarchy" : [<Integer, Preference Hierarchy -optional>], "user_id" : [<Integer, User ID -optional>], "user_email" : [<Integer, User Email -optional>], "application_preference" : [<Integer, Application Preference ID -optional>], "type" : [<String, Preference Type(Entity/Generic) -optional>] }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Preference ID>, "name" : <String, Preference Name>, "preference_hierarchy" : <Integer, Preference Hierarchy> "user_id" : <Integer, User ID>, "user_email" : <Integer, User Email>, "application_preference" : <Integer, Application Preference ID>, "type" : <String, Preference Type(Entity/Generic)>, "generic": [ { "id": <Integer, Generic Preference ID>, "preference_value'": <String, Preference Value>, "schema_version": <Integer, Schema Version> }, ... ], "entity": [ { "id": <Integer, Entity Preference ID>, "entity_gid": <String, Entity GID> }, ... ] } ] }
Preference Setter Resource¶
-
class
v1.resources.user_app_preferences.preference_getter_setter.UserPreferenceSetter¶ User Preference Setter Class
Note
Allowed Methods: POST
POST Method¶
-
UserPreferenceSetter.on_post(req, resp)¶ User Preference Setter POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/set-preference
Request Object:
[ { "name" : <String, Preference Name -optional>, "preference_hierarchy" : <Integer, Preference Hierarchy ID> "user_id" : <Integer, User ID>, "user_email" : <String, User Email>, "application_preference" : <Integer, Application Preference ID> "type" : <String, Preference Type(Entity/Generic)>, "generic": [ { "preference_value'": <String, Preference Value>, "schema_version": <Integer, Schema Version> }, ... ], "entity": [ { "entity_gid": <String, Entity GID -optional> }, ... ] }, ... ] #note:: if name is left empty application_preference.label is set
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Preference ID>, "name" : <String, Preference Name>, "preference_hierarchy" : <Integer, Preference Hierarchy ID> "user_id" : <Integer, User ID>, "user_email" : <String, User Email>, "application_preference" : <Integer, Application Preference ID> "type" : <String, Preference Type(Entity/Generic)>, "generic": [ { "id": <Integer, Generic Preference ID>, "preference_value'": <String, Preference Value>, "schema_version": <Integer, Schema Version> }, ... ], "entity": [ { "id": <Integer, Entity Preference ID>, "entity_gid": <String, Entity GID> }, ... ] } ] }
User Package Resources¶
User Package Resource¶
-
class
v1.resources.user_preference.UserPreferenceResource User Preference Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
UserPreferenceResource.on_get(req, resp, id=None) User Preference GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/user-preference
URL 2: URL/User-Preference-ID
Filter Query:
?preference_value=<Javascript Object>
?preference_id=<Integer, a preference from /user-data/v1/preference>
?preference_name=<String, Preference Name>
?preference_slug= <String, Preference Slug>
Note
all of above query params can be used by combining with &.
Example: user_email=xyz&preference_name=abc
Few Examples of Filter Query:
- Give me all Object for given email user.email@example.com
../user-data/v1/user-preference?user_email=user.email@example.com
- Give me all Object where user_email ends with example.com
- Give me all Object where user_email has example on it
- Give me all Object where user_email has example on it and preference_name has google on it
../user-data/v1/user-preference?user_email=%example%&preference_name=%google%
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "preference_value": <Javascript Object>, "id": <Integer, User-Preference ID>, "user_email": <User Email Address>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_name": <String, Preference Name>, "preference_slug": <String, Preference Slug> }, .... ] }
POST Method¶
-
UserPreferenceResource.on_post(req, resp) User Preference post Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/user-preference
Request Object:
# Accepts JSON or Array of JSON [ { "user_email": <User Email Address>, "preference_slug": <Optional, if sent it will be ignored>, "preference_name": <Optional, if sent it will be ignored>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_value": <Any Javascript Object> }, . .. ] .. note:: 1. It will delete all previous user-preference for given user_email 1. Creates all the Provided object as new user-preference relationship record 1. The user_email and preference_id must be unique
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "preference_value": <Javascript Object>, "id": <Integer, User-Preference ID>, "user_email": <User Email Address>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_name": <String, Preference Name>, "preference_slug": <String, Preference Slug> } ... ] }
PUT Method¶
-
UserPreferenceResource.on_put(req, resp, id=None) User Preference PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/user-preference/1
Request Object:
{ "user_email": <User Email Address>, "preference_slug": <Optional, if sent it will be ignored>, "preference_name": <Optional, if sent it will be ignored>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_value": <Any Javascript Object> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "preference_value": <Javascript Object>, "id": <Integer, User-Preference ID>, "user_email": <User Email Address>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_name": <String, Preference Name>, "preference_slug": <String, Preference Slug> } ] }
DELETE Method¶
-
UserPreferenceResource.on_delete(req, resp, id=None) User Preference Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/user-preference/1
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "preference_value": <Javascript Object>, "id": <Integer, User-Preference ID>, "user_email": <User Email Address>, "preference_id": <Integer, a preference from /user-data/v1/preference>, "preference_name": <String, Preference Name>, "preference_slug": <String, Preference Slug> } ] }
Client Resource¶
-
class
v1.resources.client.ClientResource¶ Client Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
ClientResource.on_get(req, resp, id=None)¶ Client GET Method
Request
Method:
GETURL 2: https://stag.api.ranenetwork.com/user-data/v1/client/{client_id:int}
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "name": "Client 1", "short_name": "CL1", "display_name": "The Client 1", "type": "company", "status": "active", "domain":["ranenetwork.com","facebook.com","intel.com"], "legacy_id":24, "sf_id":"fasdf21c" }, .... ] }
POST Method¶
-
ClientResource.on_post(req, resp)¶ Client POST Method
Request
Method:
POSTRequest Object:
[ { "name": "Client 1", [unique, required] "short_name": "CL1", [required] "display_name": "The Client 1", [required] "type": "company", [required] "status": "active", [optional] "domain":["ranenetwork.com","facebook.com","intel.com"], [optional] "legacy_id":24, [optional] "sf_id":"fasdf21c" [optional] }, ... ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "name": "Client 1", "short_name": "CL1", "display_name": "The Client 1", "type": "company", "status": "active", "domain":["ranenetwork.com","facebook.com","intel.com"], "legacy_id":24, "sf_id":"fasdf21c" }, ... ] }
PUT Method¶
-
ClientResource.on_put(req, resp, id=None)¶ Client PUT Method
Request
Method:
PUTRequest Object:
{ "name": "New Client", "short_name": "NC", ... }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "name": "New Client", "short_name": "NC", "display_name": "The Client 1", "type": "company", "status": "active", "domain":["ranenetwork.com","facebook.com","intel.com"], "legacy_id":24, "sf_id":"fasdf21c" } ] }
DELETE Method¶
-
ClientResource.on_delete(req, resp, id=None)¶ Client Delete Method
Request
Method:
DELETE
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "name": "Client 1", "short_name": "CL1", "display_name": "The Client 1", "type": "company", "status": "deleted", "domain":["ranenetwork.com","facebook.com","intel.com"], "legacy_id":24, "sf_id":"fasdf21c" }, ] }
Client Brief Relationship Resource¶
-
class
v1.resources.client_brief_relationship.ClientBriefRelationshipResource¶ Client Brief Relationship Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
ClientBriefRelationshipResource.on_get(req, resp, id=None)¶ Client Brief Relationship GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/brief-client
URL 2: https://stag.api.ranenetwork.com/user-data/v1/brief-client/{relationship_id:int}
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "brief_id": "50m3R4nd0m1D", "client_id": 1, "status": "active" }, .... ] }
POST Method¶
-
ClientBriefRelationshipResource.on_post(req, resp)¶ Client Brief Relationship POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/brief-client
Request Object:
[ { "brief_id": "50m3R4nd0m1D", "client_id": 1 }, .... ] .. note:: brief_id - client_id pair must be unique
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "brief_id": "50m3R4nd0m1D", "client_id": 1, "status": "active" }, .... ] }
PUT Method¶
-
ClientBriefRelationshipResource.on_put(req, resp, id=None)¶ Client PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/client-brief/1
Request Object:
{ "brief_id": "kjh243HKL234" }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "brief_id": "kjh243HKL234", "client_id": 1, "status": "active" } ] }
DELETE Method¶
-
ClientBriefRelationshipResource.on_delete(req, resp, id=None)¶ Client Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/brief-client/1
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "brief_id": "kjh243HKL234", "client_id": 1, "status": "deleted" } ] }
Content Entitlement Generic Resources¶
Content Entitlement Resource¶
-
class
v1.resources.content_entitlement.ContentEntitlementResource¶ Content Entitlement Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
ContentEntitlementResource.on_get(req, resp, id=None)¶ Content Entitlement GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-data/v1/content-entitlement
URL 2: https://stag.api.ranenetwork.com/user-data/v1/content-entitlement/{id:int}
URL 3: https://stag.api.ranenetwork.com/user-data/v1/content-entitlement?slug={str:slug}
Response Object (without slug filter):
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "application_user_id": 1, "content_type": "brief", "is_subscribed": true, "slug: "intel-daily" }, { "id": 2, "application_user_id": 1, "content_type": "brief", "is_subscribed": false, "slug: "cyber-daily" } .... ] }
POST Method¶
-
ContentEntitlementResource.on_post(req, resp)¶ Content Entitlement POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/content-entitlement
Request Object:
[ { "application_user_id": 1, [required] "content_type": "brief", [required] "is_subscribed": true, [optional] "slug":"intel-daily" [required] }, ... ] .. note:: The combination of content_type and slug and application_user_id must be unique.
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "application_user_id": 1, "content_type":"brief", "is_subscribed": true, "slug':"intel-daily" }, ... ] }
PUT Method¶
-
ContentEntitlementResource.on_put(req, resp, id=None)¶ Content Entitlement PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-data/v1/content-entitlement/1
Request Object:
{ "is_subscribed": false, "content_type": "brief" }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "application_user_id": 1, "content_type":"brief", "is_subscribed": false, "slug":"geo-political" } ] }
DELETE Method¶
-
ContentEntitlementResource.on_delete(req, resp, id=None)¶ Client Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-data/v1/content-entitlement/1
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": 1, "application_user_id": 1, "content_type":"brief", "is_subscribed": false, "slug":"geo-political" }, ] }
Content Entitlement Filter Resource¶
-
class
v1.resources.content_entitlement.ContentEntitlementFilterResource¶ Content Entitlement Filter Resource Class
Note
Allowed Methods: GET / POST / PUT / DELETE
POST Method¶
-
ContentEntitlementFilterResource.on_post(req, resp)¶ Content Entitlement POST Method
Request
Method:
POSTURL 1: https://stag.api.ranenetwork.com/user-data/v1/content-entitlement-sync/filter
Request Object:
[ { "slug": [ "intel-daily", "cyber-daily" ], "content_type":"brief" } ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "content_definition_id": "B3adfZHhZ671", "slug": "intel-daily", "content_type":"brief" "entitlements":[ { "email": "abc@intel.com", "client_id": 1, "application_user_id": 1 }, { "email": "def@intel.com", "client_id": 1, "application_user_id": 2 }, { "email": "asdf@intel.com", "client_id": 1, "application_user_id": 3 } ] } .... ] }
Content Entitlement Sync Resource¶
-
class
v1.resources.content_entitlement.ContentEntitlementSyncResource¶ ContentEntitlementSync Resource
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/content-entitlement-sync
Request Object:
[ { "action": "sync", "application_user_id": 1, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": false }, { "action": "sync", "application_user_id": 1, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": true }, { "action": "delete", "application_user_id": 1, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": true }, { "action": "sync2", "application_user_id": 1, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": true }, { "action": "sync", "application_user_id": 2, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": true } ]
Response Object:
{ "status_code": 200, "request_id": "edb0f7a9-d406-4b14-bbdc-d8081c20609b", "data": [ { "processed_sync_payloads": [ { "action": "sync", "application_user_id": 1, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": false }, { "action": "sync", "application_user_id": 1, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": true } ], "processed_delete_payloads": [ { "action": "delete", "application_user_id": 1, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": true } ], "invalid_payloads": [ { "error_message": "The action key cannot be sync2. Valid actions are ('sync', 'delete')", "error_code": 400, "data": { "action": "sync2", "application_user_id": 1, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": true }, "extra": {} }, { "error_message": "No application user data for application_user_id: 2", "error_code": 404, "data": { "action": "sync", "application_user_id": 2, "slug": "toyota-weekly-brief", "content_type": "brief", "is_subscribed": true }, "extra": {} } ] } ] }
-
on_post_old(req, resp)¶ Client POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-data/v1/content-entitlement-sync
Request Object:
[ { "action": "sync", "application": { "name": "Platform" }, "application_user": { "legacy_id": 123741 }, "entitlement": { "slug": "six", "content_type": "brief", "is_subscribed": true, "created_by": 1, "updated_by": 1 }, "client": { "id": 1, "short_name": "test", "display_name": "test First Test3", "status": "active", "sf_id": "jsfshj89", "legacy_id": null, "type": "company", "created_by": 1, "updated_by": 1 }, "user": { "sf_id": "dasfasdf", "fname": "asfd", "lname": "test", "email": "test@ranenetwork.com", "user_type": "normal", "created_by": 1, "updated_by": 1 } } .... ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "application": { "name": "Platform" }, "application_user": { "id": 1 }, "entitlement": { "id": 6, "application_user_id": 1, "content_type": "brief", "is_subscribed": 0, "slug": "two" }, "client": { "id": 1, "short_name": "S_Test3dasfdsf", "display_name": "First Test3", "status": "active", "sf_id": "jsfshj89", "legacy_id": null, "type": "company", "created_by": 1, "updated_by": 1 }, "user": { "id": 9, "sf_id": "dasfasdf", "fname": "asfd", "lname": "test", "email": "test@ranenetwork.com", "user_type": "normal", "created_by": 1, "updated_by": 1 } } ... ] }
User Brief Filter Resource¶
-
class
v1.resources.user_brief.UserBriefFilterResource¶ User Brief Filter Resource Class
Note
Allowed Methods: GET / POST
GET Method¶
-
UserBriefFilterResource.on_get(req, resp)¶ User Brief Filter GET Method Request
Method:
GETHEADER:
X-REQUEST-FROM: PlatformURL 1: https://stag.api.ranenetwork.com/user-data/v1/user-brief/filter?email=user.email@example.com
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "brief_definition": { "display_name": "Worldview Weekly Energy Digest", "slug": "worldview-weekly-energy-digest", "id": "63725f2ddbba003f63bbfbcf" }, "preference": { "is_default": true, "is_admin": false, "is_redacted": false } }, .... ] }
POST Method¶
-
UserBriefFilterResource.on_post(req, resp)¶ User Brief Filter GET Method Request
Method:
POSTHEADER:
X-REQUEST-FROM: PlatformURL 1: https://stag.api.ranenetwork.com/user-data/v1/user-brief/filter
Request Object:
{ "email": "abc@exe.com" }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "brief_definition": { "display_name": "Worldview Weekly Energy Digest", "slug": "worldview-weekly-energy-digest", "id": "63725f2ddbba003f63bbfbcf" }, "preference": { "is_default": true, "is_admin": false, "is_redacted": false } }, .... ] }
Indices and tables¶
User Brief Entitlement¶
This endpoint is used to filter entitlement based off user or brief slug.
Use case
Provided user the endpoint returns all the brief user is entitled to
Provided brief slug the endpoint returns all the users entitled to receive designated brief
Provided both brief slug and user the endpoint returns object signifying whether user is entitled to receive the brief
GET Method¶
Brief Entitlement GET Method
To get user entitlement:
Request
Method:
GETURL : https://stag.api.ranenetwork.com/user-data/v1/brief-entitlement?email=some.user@ranenetwork.com
Note
The endpoint supports pagination, to use pagination fetch please provide page and size params along the url. E.g. https://stag.api.ranenetwork.com/user-data/v1/brief-entitlement?email=some.user@ranenetwork.com&page=1&size=5
Default page = 1 size = 24
Response Object:
{
"status_code": 200,
"request_id": "94c65ffc-5d76-44e5-8553-25dc1dd52aaa",
"data": [
{
"id": 21857,
"email": "some.user@ranenetwork.com",
"fname": "some",
"lname": "user",
"is_default": false,
"is_redacted": false,
"is_admin": false,
"brief_slug": "test-notification-brief",
"is_subscribed": false
},
{
"id": 21839,
"email": "some.user@ranenetwork.com",
"fname": "some",
"lname": "user",
"is_default": false,
"is_redacted": false,
"is_admin": false,
"brief_slug": "blackstone-daily-brief-test",
"is_subscribed": false
}
],
"total": 8
}
To get brief entitlement:
Method:
GETURL : https://stag.api.ranenetwork.com/user-data/v1/brief-entitlement?brief_slug=blackstone-daily-brief-test
Note
The endpoint supports pagination, to use pagination fetch please provide page and size params along the url. E.g. https://stag.api.ranenetwork.com/user-data/v1/brief-entitlement?brief_slug=blackstone-daily-brief-test&page=1&size=5
Default page = 1 size = 24
Response Object:
{
"status_code": 200,
"request_id": "6097bbbb-d788-4c9e-8520-31f3a82504ad",
"data": [
{
"id": 21845,
"email": "some.user@ranenetwork.com",
"fname": "some",
"lname": "user",
"is_default": false,
"is_redacted": false,
"is_admin": false,
"brief_slug": "blackstone-daily-brief-test",
"is_subscribed": false
},
{
"id": 21844,
"email": "some.user@ranenetwork.com",
"fname": "some",
"lname": "user",
"is_default": false,
"is_redacted": false,
"is_admin": false,
"brief_slug": "blackstone-daily-brief-test",
"is_subscribed": false
}
],
"total": 8
}
POST Method¶
Brief Entitlement GET Method
To add user/brief entitlement:
Request
Method:
POSTURL : https://stag.api.ranenetwork.com/user-data/v1/brief-entitlement
Request Object:
[ { "email": "some.user@ranenetwork.com", "fname": "some", "lname": "user", "is_default": false, "is_redacted": false, "is_admin": true, "brief_slug": "test-brief-new-46", "is_subscribed": false } ]
Note
The response will contain all the entitlements for every user sent on request object. i.e. if entitlements for 2 different user is added/updated via post call, all of the entitlements for both of the user will be returned in response.
Response Object:
{
"status_code": 200,
"request_id": "94c65ffc-5d76-44e5-8553-25dc1dd52aaa",
"data": [
{
"id": 21857,
"email": "some.user@ranenetwork.com",
"fname": "some",
"lname": "user",
"is_default": false,
"is_redacted": false,
"is_admin": false,
"brief_slug": "test-notification-brief",
"is_subscribed": false
},
{
"id": 21839,
"email": "some.user@ranenetwork.com",
"fname": "some",
"lname": "user",
"is_default": false,
"is_redacted": false,
"is_admin": false,
"brief_slug": "blackstone-daily-brief-test",
"is_subscribed": false
}
]
}
Application Entitled Brief¶
This endpoint is used to filter entitlement based off user.
Note
This endpoint provides all the brief entitled for a user, additionally it concat the brief that all user have access to.
E.g.
If brief “A” is available to all core user and a user “B” has his own entitlement, the response of this endpoint will include, all the entitlements for user “B” along with brief “A”. Additionally If entitled brief is not active anymore, the entitlement is omitted in the response.
Note
The endpoint doesn’t support post request, please refer to “User Brief Entitlement”, as this endpoint is just extended version of “User Brief Entitlement”
GET Method¶
Brief Entitlement GET Method
To get user entitlement and application brief:
Request
Method:
GETURL : https://stag.api.ranenetwork.com/user-data/v1/application-entitled-brief?email=some.user@ranenetwork.com
Warning
If non existent email is sent, the endpoint will treat it as a user with 0 entitlements and will return with list of brief that’s available to all core users.
Note
The endpoint doesn’t support paginated fetch. Also the default brief for user is returned at top index, followed by other brief sorted in alphabetical order.
Response Object:
{
"status_code": 200,
"request_id": "94c65ffc-5d76-44e5-8553-25dc1dd52aaa",
"data": [
{
"id": 21857,
"email": "some.user@ranenetwork.com",
"fname": "some",
"lname": "user",
"is_default": false,
"is_redacted": false,
"is_admin": false,
"brief_slug": "test-notification-brief",
"is_subscribed": false
},
{
"id": 21839,
"email": "some.user@ranenetwork.com",
"fname": "some",
"lname": "user",
"is_default": false,
"is_redacted": false,
"is_admin": false,
"brief_slug": "blackstone-daily-brief-test",
"is_subscribed": false
}
],
"total": 2
}