Roles API
General:
Basics:
Base-URL: https://capi.lagerkoll.com/v1/roles/
					Parameters in the url should all be encoded and all data sent should be UTF-8
                    
                        MAX number of requests per minute is set to 200.
                        
When the limit is hit an error with code 429 is returned, with the header "Retry-After" containing the number of seconds you have to wait for your next request.
				When the limit is hit an error with code 429 is returned, with the header "Retry-After" containing the number of seconds you have to wait for your next request.
Headers:
                        There are 2 ways to be authenticated when using this API. in both ways you add headers to the request.
1) Use an API-key together with store-id. This would be used when communicating machine to machine and no real person is involved. The API-key is available from where you activated the API. The store-id is also available in the same place.
2) Use a user_id and user_token together with a store-id. You get these values from the login-request. The values are connected to a person and are gained when an actual login to the system has been made.
                    
					1) Use an API-key together with store-id. This would be used when communicating machine to machine and no real person is involved. The API-key is available from where you activated the API. The store-id is also available in the same place.
2) Use a user_id and user_token together with a store-id. You get these values from the login-request. The values are connected to a person and are gained when an actual login to the system has been made.
store: <<STORE>> user_id: <<USER_ID>> user_token: <<USER_TOKEN>> api_key: <<API_KEY>> Accept: application/json Content-Type: application/json
Errors:
| Code | Description | 
|---|---|
| 900001 | Credentials don't match | 
| 900101 | Common error | 
| 900429 | Too many requests | 
| 908001 | Error getting role | 
| 908002 | Error creating role | 
| 908003 | Error updating role | 
{
  "errorCode" : 900101,
  "errorMessage" : "Something went wrong on the server",
  "errorField" : null,
  "errorData" : null
}
					Roles API:
Role
Get roles
                GETUrl: 
            
            Headers:
                    Accept: application/json or application/xml
                Get list of roles
                Body:
            Successfull response:
            
{"roles": [{ "loginServices": [{}], "storeGroupId": 9724, "paths": {}, "name": "name", "id": 8202, "nativeFeatures": [{}], "fields": {}, "portal": "portal", "users": 1045 }]}
Get role
                GETUrl: /{role_id}
            
            Headers:
                    Accept: application/json or application/xml
                Get role by id
                Body:
            Successfull response:
            
{"roles": [{ "loginServices": [{}], "storeGroupId": 7218, "paths": {}, "name": "name", "id": 2288, "nativeFeatures": [{}], "fields": {}, "portal": "portal", "users": 7350 }]}
Add role
                POSTUrl: 
            
            Headers:
                    Accept: application/json or application/xml
                Add new role
                Body:
            
{ "loginServices": [{}], "paths": {}, "name": "name", "nativeFeatures": [{}], "fields": {}, "portal": "portal" }
Successfull response:
            
{"roles": [{ "loginServices": [{}], "storeGroupId": 1664, "paths": {}, "name": "name", "id": 3333, "nativeFeatures": [{}], "fields": {}, "portal": "portal", "users": 4670 }]}
Update role
                PUTUrl: /{role_id}
            
            Headers:
                    Accept: application/json or application/xml
                Update existing role
                Body:
            
{ "loginServices": [{}], "storeGroupId": 6317, "paths": {}, "name": "name", "id": 9181, "nativeFeatures": [{}], "fields": {}, "portal": "portal", "users": 7768 }
Successfull response:
            
{"roles": [{ "loginServices": [{}], "storeGroupId": 6709, "paths": {}, "name": "name", "id": 4935, "nativeFeatures": [{}], "fields": {}, "portal": "portal", "users": 2902 }]}
Delete role
                DELETEUrl: /{role_id}
            
            Headers:
                    Accept: application/json or application/xml
                Delete existing role
                Body:
            Successfull response:
            Classes:
RoleDto
| Field | Type | Description | Default | Mandatory | Accepted values | Example values | Access | 
|---|---|---|---|---|---|---|---|
| id | Long | R | |||||
| storeGroupId | Long | R | |||||
| name | String | R,W | |||||
| paths | ArrayList | List of paths role has access to | R,W | ||||
| fields | HashMap | List of objects and fields that is filtered out when sending data to api and request data from api | R,W | ||||
| portal | String | What part of Lagerkoll is the role used | ADMIN, SHOP | R,W | |||
| users | int | Number of users connected to role | R | ||||
| loginServices | List | List of login services role has access to | R,W | ||||
| nativeFeatures | List | List of native features in mobile application role has access to | R,W | 
RolesResponseDto
| Field | Type | Description | Default | Mandatory | Accepted values | Example values | Access | 
|---|---|---|---|---|---|---|---|
| roles | List | R |