State Resource

Manages learner state for an activity.

createState

Creates or merges into a state document by the agent, activity identifier and state identifier.

Example

const agent: Agent = {
  objectType: "Agent",
  name: "Test Agent",
  mbox: "mailto:test@agent.com"
};
const activityId: string = "https://example.com/activities/test-activity";
const stateId: string = activityId + "/states/myStateId";
const state: DocumentJson = {
  myKey: "myValue"
};

xapi.createState({
  agent: agent,
  activityId: activityId,
  stateId: stateId,
  state: state
});

Parameters

Parameter

Type

Required

Description

agent

true

The agent experiencing the AU.

activityId

string

true

The URI of the activity.

stateId

string

true

The URI of the state to be created or merged into.

state

true

The state data to be stored.

registration

string

false

The registration associated with this state.

etag

string

false

The ETag of the original document if merging.

matchHeader

string

false

The ETag header type. Accepts "If-Match" or "If-None-Match".

Returns

This method returns an AxiosPromise with empty success data if successful.

setState

Creates or overwrites a state document by the agent, activity identifier and state identifier.

Example

const agent: Agent = {
  objectType: "Agent",
  name: "Test Agent",
  mbox: "mailto:test@agent.com"
};
const activityId: string = "https://example.com/activities/test-activity";
const stateId: string = activityId + "/states/myStateId";
const state: Document = {
  myKey: "myValue"
};

xapi.setState(agent, activityId, stateId, state);

Parameters

Parameter

Type

Required

Description

agent

true

The agent experiencing the AU.

activityId

string

true

The URI of the activity.

stateId

string

true

The URI of the state to be created or overwritten.

state

true

The state data to be stored.

registration

string

false

The registration associated with this state.

etag

string

false

The ETag of the original document if overwriting.

matchHeader

string

false

The ETag header type. Accepts "If-Match" or "If-None-Match".

contentType

string

false

The content type of the state data.

Returns

This method returns an AxiosPromise with empty success data if successful.

getStates

Gets an array of state identifiers by the agent and activity identifier.

Example

const agent: Agent = {
  objectType: "Agent",
  name: "Test Agent",
  mbox: "mailto:test@agent.com"
};
const activityId: string = "https://example.com/activities/test-activity";

xapi.getStates({
  agent: agent,
  activityId: activityId
}).then((result: AxiosResponse<string[]>) => {
  const states: string[] = result.data;
  console.log(states); // ["https://example.com/activities/test-activity/states/myStateId"]
});

Parameters

Parameter

Type

Required

Description

agent

true

The agent experiencing the AU.

activityId

string

true

The URI of the activity.

registration

string

false

The registration associated with this state.

since

Timestamp

false

Only return States stored since specified Timestamp.

useCacheBuster

boolean

false

Enables cache busting.

Returns

This method returns an AxiosPromise with the success data containing an array of state identifiers if successful.

getState

Gets a state document by the agent, activity identifier and the state identifier.

Example

const agent: Agent = {
  objectType: "Agent",
  name: "Test Agent",
  mbox: "mailto:test@agent.com"
};
const activityId: string = "https://example.com/activities/test-activity";
const stateId: string = activityId + "/states/myStateId";

xapi.getState({
  agent: agent,
  activityId: activityId,
  stateId: stateId
}).then((result: AxiosResponse<Document>) => {
  const state = result.data;
  // do stuff with state
});

Parameters

Parameter

Type

Required

Description

agent

true

The agent experiencing the AU.

activityId

string

true

The URI of the activity.

stateId

string

true

The URI of the state to be retrieved.

registration

string

false

The registration associated with this state.

useCacheBuster

boolean

false

Enables cache busting.

Returns

This method returns an AxiosPromise with the success data containing the stored Document if successful.

deleteState

Deletes a state document by the agent, activity identifier and the state identifier.

Example

const agent: Agent = {
  objectType: "Agent",
  name: "Test Agent",
  mbox: "mailto:test@agent.com"
};
const activityId: string = "https://example.com/activities/test-activity";
const stateId: string = activityId + "/states/myStateId";

xapi.deleteState({
  agent: agent,
  activityId: activityId,
  stateId: stateId
});

Parameters

Parameter

Type

Required

Description

agent

true

The agent experiencing the AU.

activityId

string

true

The URI of the activity.

stateId

string

true

The URI of the state to be deleted.

registration

string

false

The registration associated with this stage.

etag

string

false

The ETag of the original document.

Returns

This method returns an AxiosPromise with empty success data if successful.

deleteStates

Deletes all state documents by the agent and activity identifier.

Example

const agent: Agent = {
  objectType: "Agent",
  name: "Test Agent",
  mbox: "mailto:test@agent.com"
};
const activityId: string = "https://example.com/activities/test-activity";

xapi.deleteStates({
  agent: agent,
  activityId: activityId
});

Parameters

Parameter

Type

Required

Description

agent

true

The agent experiencing the AU.

activityId

string

true

The URI of the activity.

registration

string

false

The registration associated with this stage.

etag

string

false

The ETag of the original document if overwriting.

Returns

This method returns an AxiosPromise with empty success data if successful.

Last updated