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

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

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

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

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

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: POST

  • URL: 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: PUT

  • URL: 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

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

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: POST

  • URL: https://stag.api.ranenetwork.com/user-data/v1/user

  • Request 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: PUT

  • URL: https://stag.api.ranenetwork.com/user-data/v1/user/1

  • Request 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

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

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

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

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

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

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

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: POST

  • URL: https://stag.api.ranenetwork.com/user-data/v1/feature

  • Request 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

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

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: POST

  • URL: https://stag.api.ranenetwork.com/user-data/v1/package

  • Request 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: PUT

  • URL: 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

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

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

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

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

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: POST

  • URL: 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: PUT

  • URL: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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: POST

  • URL: 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: POST

  • URL: 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

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: POST

  • URL: 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: PUT

  • URL: 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

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

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: POST

  • URL: https://stag.api.ranenetwork.com/user-data/v1/client

  • Request 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

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

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

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

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

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

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

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: POST

  • URL: 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

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

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

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: POST

  • URL: 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: POST

  • URL: 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
            }
        }
        ...
    ]
}

POST Method

ContentEntitlementSyncResource.on_post(req, resp)

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

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

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: GET

  • URL : 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: GET

  • URL : 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: POST

  • URL : 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: GET

  • URL : 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
}