User Preference API¶
User Preference API will holds preferences related to the users. Refer https://ranenetwork.atlassian.net/wiki/spaces/TECH/pages/884473857/Preferences+Alerts+Notifications+User+data+API for initial draft of API.
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-preference/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",
"Babel==2.8.0",
...
],
"name": "user-data",
"versions": [
"v1",
"v2"
],
"middleware": [
"RequestResponseMiddleware",
"AuthenticationMiddleware",
"ResponseGeneratorMiddleware"
],
"routes": {
"v1": {
"preference-hierarchy": [
"delete",
"get",
"post",
"put"
],
"preference-hierarchy/{pk:int}": [
"delete",
"get",
"post",
"put"
]
...
},
"v2": {
...
}
}
}
}
Application Resource¶
-
class
v1.resources.application.ApplicationResource¶ Application Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
ApplicationResource.on_get(req, resp)¶ Application GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-preference/v1/application
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Application ID>, "name" : <String, Application Name>, "description" : <String, Application Description> } ... ] }
POST Method¶
-
ApplicationResource.on_post(req, resp)¶ Application POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-preference/v1/application
Request Object:
[ { "name": <String, Application Title -optional>, "description": <String, Application Description -optional> } ]
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Application ID>, "name": <String, Application Name>, "description": <String, Application Description> } ] }
PUT Method¶
-
ApplicationResource.on_put(req, resp, pk: int)¶ Application PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-preference/v1/application/<application_id>
Request Object:
{ "name": <String, Application Title>, "description": <String, Application Description -optional> }
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Application ID>, "name": <String, Application Name>, "description": <String, Application Description> } ] }
DELETE Method¶
-
ApplicationResource.on_delete(req, resp, pk: int)¶ Application Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-preference/v1/application/<application_id>
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id": <Integer, Application ID>, "name": <String, Application Name>, "description": <String, Application Description> } ] }
Entity Preference Resource¶
-
class
v1.resources.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-preference/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-preference/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-preference/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-preference/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.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-preference/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-preference/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-preference/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-preference/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> } ] }
Preference Resource¶
-
class
v1.resources.preference.PreferenceResource¶ Preference Class
Note
Allowed Methods: GET / POST / PUT / DELETE
GET Method¶
-
PreferenceResource.on_get(req, resp)¶ Preference GET Method
Request
Method:
GETURL 1: https://stag.api.ranenetwork.com/user-preference/v1/preference
Response Object:
{ "status_code": 200, "request_id": <Request UUID>, "data": [ { "id" : <Integer, Preference ID>, "name" : <String, Preference Name>, "preference_hierarchy" : <int, Preference Hierarchy>, "user_id" : <int, User ID>, "user_email" : <String, User Email>, "application_preference" : <int, Application Preference ID>, "type" : <String, Preference Type(Entity/Generic)> }, ... ] }
POST Method¶
-
PreferenceResource.on_post(req, resp)¶ Preference POST Method
Request
Method:
POSTURL: https://stag.api.ranenetwork.com/user-preference/v1/preference
Request Array:
[ { "name" : <String, Preference Name>, "preference_hierarchy" : <int, Preference Hierarchy>, "user_id" : <int, User ID>, "user_email" : <String, User Email>, "application_preference" : <int, Application Preference ID>, "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" : <int, Preference Hierarchy>, "user_id" : <int, User ID>, "user_email" : <String, User Email>, "application_preference" : <int, Application Preference ID>, "type" : <String, Preference Type(Entity/Generic)> }, ... ] }
PUT Method¶
-
PreferenceResource.on_put(req, resp, pk: int)¶ Preference PUT Method
Request
Method:
PUTURL: https://stag.api.ranenetwork.com/user-preference/v1/preference/<preference_id>
Request Object:
{ "name" : <String, Preference Name -optional>, "preference_hierarchy" : <int, Preference Hierarchy -optional>, "user_id" : <int, User ID -optional>, "user_email" : <String, User Email -optional>, "application_preference" : <int, 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" : <int, Preference Hierarchy>, "user_id" : <int, User ID>, "user_email" : <String, User Email>, "application_preference" : <int, Application Preference ID>, "type" : <String, Preference Type(Entity/Generic)> } }
DELETE Method¶
-
PreferenceResource.on_delete(req, resp, pk: int)¶ Preference Delete Method
Request
Method:
DELETEURL: https://stag.api.ranenetwork.com/user-preference/v1/preference/<preference_id>
Response Object
{ "status_code": 200, "request_id": <Request UUID>, "data": { "id" : <Integer, Preference ID>, "name" : <String, Preference Name>, "preference_hierarchy" : <int, Preference Hierarchy>, "user_id" : <int, User ID>, "user_email" : <String, User Email>, "application_preference" : <int, Application Preference ID>, "type" : <String, Preference Type(Entity/Generic)> } }
Preference Getter Resource¶
-
class
v1.resources.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-preference/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.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-preference/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> }, ... ] } ] }
Preference Hierarchy Resource¶
-
class
v1.resources.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-preference/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-preference/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-preference/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-preference/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