Add multiple Page capability #19

Merged
tueem merged 5 commits from feat/multi-page into dev 2026-05-27 21:24:03 +00:00
Owner

This PR adds the following endpoints:

POST /svg/{id}/page
-->
multipart/form-data
files: svg files to add as pages
<--

[
	{
		"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
		"Page": 8,
		"TemplateKeys": [
			"VIOLA",
			"OLIVIA",
			"ORSINO"
		]
	}
]

DELETE /svg/{id}/page/{page} (deletes the specified page)

This also changes some existing endpoints

GET /svg
<--

[
	{
		"Id": "f097690725df43fb9700114a3542e3b4",
		"Name": "test",
		"Pages": [
			{
				"TemplateId": "f097690725df43fb9700114a3542e3b4",
				"Page": 1,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			},
			{
				"TemplateId": "f097690725df43fb9700114a3542e3b4",
				"Page": 2,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			},
			{
				"TemplateId": "f097690725df43fb9700114a3542e3b4",
				"Page": 3,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			}
		]
	},
	{
		"Id": "273ece6325ec019cb6cc4d3cfeca156e",
		"Name": "test",
		"Pages": [
			{
				"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
				"Page": 1,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			},
			{
				"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
				"Page": 2,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			},
			{
				"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
				"Page": 3,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			},
			{
				"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
				"Page": 4,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			},
			{
				"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
				"Page": 5,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			},
			{
				"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
				"Page": 6,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			},
			{
				"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
				"Page": 7,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			},
			{
				"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
				"Page": 8,
				"TemplateKeys": [
					"VIOLA",
					"OLIVIA",
					"ORSINO"
				]
			}
		]
	}
]

GET /svg/{id}
<--

{
	"Urls": [
		"http://127.0.0.1:3000/public/793109915-1.svg",
		"http://127.0.0.1:3000/public/1034749377-2.svg",
		"http://127.0.0.1:3000/public/125236797-3.svg"
	]
}

POST /svg
-->
multipart/form-data
files: svg files to add
<--

{
	"Id": "273ece6325ec019cb6cc4d3cfeca156e",
	"Name": "test",
	"Pages": [
		{
			"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
			"Page": 1,
			"TemplateKeys": [
				"VIOLA",
				"OLIVIA",
				"ORSINO"
			]
		},
		{
			"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
			"Page": 2,
			"TemplateKeys": [
				"VIOLA",
				"OLIVIA",
				"ORSINO"
			]
		},
		{
			"TemplateId": "273ece6325ec019cb6cc4d3cfeca156e",
			"Page": 3,
			"TemplateKeys": [
				"VIOLA",
				"OLIVIA",
				"ORSINO"
			]
		}
	]
}

closes #12

This PR adds the following endpoints: POST /svg/{id}/page --> multipart/form-data files: svg files to add as pages <-- ```json [ { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 8, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] } ] ``` DELETE /svg/{id}/page/{page} (deletes the specified page) ## This also changes some existing endpoints GET /svg <-- ```json [ { "Id": "f097690725df43fb9700114a3542e3b4", "Name": "test", "Pages": [ { "TemplateId": "f097690725df43fb9700114a3542e3b4", "Page": 1, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "f097690725df43fb9700114a3542e3b4", "Page": 2, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "f097690725df43fb9700114a3542e3b4", "Page": 3, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] } ] }, { "Id": "273ece6325ec019cb6cc4d3cfeca156e", "Name": "test", "Pages": [ { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 1, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 2, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 3, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 4, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 5, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 6, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 7, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 8, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] } ] } ] ``` GET /svg/{id} <-- ```json { "Urls": [ "http://127.0.0.1:3000/public/793109915-1.svg", "http://127.0.0.1:3000/public/1034749377-2.svg", "http://127.0.0.1:3000/public/125236797-3.svg" ] } ``` POST /svg --> multipart/form-data files: svg files to add <-- ```json { "Id": "273ece6325ec019cb6cc4d3cfeca156e", "Name": "test", "Pages": [ { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 1, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 2, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] }, { "TemplateId": "273ece6325ec019cb6cc4d3cfeca156e", "Page": 3, "TemplateKeys": [ "VIOLA", "OLIVIA", "ORSINO" ] } ] } ``` closes #12
tueem added this to the First prototype milestone 2026-05-27 21:19:00 +00:00
tueem added the enhancement label 2026-05-27 21:19:00 +00:00
tueem added this to the dev project 2026-05-27 21:19:00 +00:00
tueem added 5 commits 2026-05-27 21:19:00 +00:00
tueem moved this to In Progress in dev on 2026-05-27 21:21:23 +00:00
tueem merged commit e87097e692 into dev 2026-05-27 21:24:03 +00:00
tueem deleted branch feat/multi-page 2026-05-27 21:24:03 +00:00
tueem moved this to Done in dev on 2026-05-27 21:26:27 +00:00
Sign in to join this conversation.