SPIKE: Store pop-up notes values

IN PROGRESS

MODNOTES-164 - Getting issue details... STATUS

Participants:

RoleNameApproval
Solution Architect
Java Lead
Product Owner

Spike objective: show note pop-up on the Users/Check out app based on the flags 

Spike goal: define a way to inform applications about showing a note pop-up

Proposed solution:

Extend an existing note schema by allowing users to set up an additional properties. As a result we will have a note with properties for applications. Once Users/Check out application gets note with specific property, it decides to show a note to user.

 Click here to expand...
{
	"$schema":"http://json-schema.org/draft-04/schema#",
	"type":"object",
	"description":"Notes about all kind of objects",
	"additionalProperties":true,
	"properties":{
		"id":{
		"type":"string",
		"description":"Unique generated identifier for the note",
		"$ref":"../../raml-util/schemas/uuid.schema",
		"example":"62d00c36-a94f-434d-9cd2-c7ea159303da"
	},
	"typeId":{
		"type":"string",
		"description":"Type id of note",
		"$ref":"../../raml-util/schemas/uuid.schema",
		"example":"13d00c36-a94f-434d-9cd2-c7ea159303da"
	},
	"type":{
		"type":"string",
		"description":"Type of note (configured in settings)",
		"example":"Access issues",
		"readonly":true
	},
	"domain":{
		"type":"string",
		"description":"Domain associated with this note",
		"example":"eholdings"
	},
	"title":{
		"type":"string",
		"maxLength":255,
		"description":"Note title",
		"example":"BU Campus only issues"
	},
	"content":{
		"type":"string",
		"description":"Content of the note",
		"example":"There are access issues at BU campus"
	},
	"status":{
		"type":"string",
		"description":"Status of note - applies when searching by link.id and status",
		"enum":["ASSIGNED","UNASSIGNED"],
		"example":"ASSIGNED",
		"readonly":true
	},
	"creator":{
		"type":"object",
		"description":"User display info for creator of the note",
		"$ref":"userDisplayInfo.json",
		"readonly":true
	},
	"updater":{
		"type":"object",
		"description":"User display info for updater of the note",
		"$ref":"userDisplayInfo.json",
		"readonly":true
	},
	"metadata":{
		"type":"object",
		"$ref":"../../raml-util/schemas/metadata.schema",
		"readonly":true
	},
	"links":{
		"description":"Collection of links to associated objects",
		"type":"array",
		"items":{
			"type":"object",
			"$ref":"link.json"
		}
	}
},
"required":[
	"typeId",
	"title",
	"domain",
	"links"
	]
}

Proposed property values by app:

  • Users app - popUpOnUser
  • Check out app - popUpOnCheckOut


Example for note in mod-notes
{
	"id" : "11111111-1111-1111-1111-111111111111",
	"typeId" : "22222222-2222-2222-2222-222222222222",
	"domain" : "users",
	"title" : "test_title ",
	"content" : "test_content",
	"creator" : {
		"lastName" : "TEST_LAST_NAME",
		"firstName" : "TEST_FIRST_NAME"
	},
	"metadata" : {
		"createdDate" : "2019-12-03T09:21:57.793+00:00",
		"createdByUserId" : "00000000-0000-0000-0000-000000000000",
		"createdByUsername" : "test_user",
		"updatedDate" : "2019-12-03T09:21:57.793+00:00",
		"updatedByUserId" : "00000000-0000-0000-0000-000000000000"
	},
	"links" : [ {
		"id" : "55555555-5555-5555-5555-555555555555",
		"type" : "user"
	} ],
	"popUpOnUser": true,
	"popUpOnCheckOut": true
}

Pros:

  • Simple solution with not much changes needed.
  • Filtering: should be investigated

Cons:

  • "popUpOnUser", "popUpOnCheckOut" tags considered as a specific case for marking notes and will not be stored to the "tags" table from the mod-tags. It means that on

    GET .../tags 

    request, user will receive set of tags shared across FOLIO and they will not include pop-up tags for Users/Check out app.

  • Tags proposed for this solution will be known only for UI.

Questions & Answers:

1Will it be needed to search on those apps to find pop-up notes ? 

Implementation Stories:

  • Extend existing note schema to add tags (Back-end mod-notes) - MODNOTES-165 - Getting issue details... STATUS
  • Update Note pop-up by adding checkboxes for Users/Check out app (Front-end) - UINOTES-97 - Getting issue details... STATUS
  • Support note pop-up for Users app by tag (Front-end) - UIU-2008 - Getting issue details... STATUS
  • Support note pop-up for Check out app by tag (Front-end) -