Full url in response

This commit is contained in:
Ian Gulliver
2024-12-03 20:33:57 -08:00
parent 29c97c5c09
commit 72e2599b79
3 changed files with 12 additions and 80 deletions

View File

@@ -30,6 +30,7 @@ type ShortLinks struct {
type setResponse struct { type setResponse struct {
Short string `json:"short"` Short string `json:"short"`
Domain string `json:"domain"` Domain string `json:"domain"`
URL string `json:"url"`
} }
type suggestResponse struct { type suggestResponse struct {
@@ -188,6 +189,7 @@ func (sl *ShortLinks) serveSet(w http.ResponseWriter, r *http.Request) {
sendJSON(w, setResponse{ sendJSON(w, setResponse{
Short: short, Short: short,
Domain: sl.getDomain(r.Host), Domain: sl.getDomain(r.Host),
URL: fmt.Sprintf("https://%s/%s", sl.getDomain(r.Host), short),
}) })
} }

View File

@@ -94,49 +94,14 @@ sl-tag::part(base) {
Get Get
<sl-tag size="small" pill variant="primary">Value</sl-tag> <sl-tag size="small" pill variant="primary">Value</sl-tag>
for for
<sl-tag size="small" pill variant="primary">short</sl-tag> <sl-tag size="small" pill variant="primary">url</sl-tag>
in in
<sl-tag size="small" pill variant="primary">Contents of URL</sl-tag> <sl-tag size="small" pill variant="primary">Contents of URL</sl-tag>
</sl-card> </sl-card>
<sl-card class="card-basic">
Set variable
<sl-tag size="small" pill variant="primary">short</sl-tag>
to
<sl-tag size="small" pill variant="primary">Dictionary Value</sl-tag>
</sl-card>
<sl-card class="card-basic">
Get
<sl-tag size="small" pill variant="primary">Value</sl-tag>
for
<sl-tag size="small" pill variant="primary">domain</sl-tag>
in
<sl-tag size="small" pill variant="primary">Contents of URL</sl-tag>
</sl-card>
<sl-card class="card-basic">
Set variable
<sl-tag size="small" pill variant="primary">domain</sl-tag>
to
<sl-tag size="small" pill variant="primary">Dictionary Value</sl-tag>
</sl-card>
<sl-card class="card-basic">
Combine
<sl-tag size="small" pill variant="primary">https://</sl-tag>
<sl-tag size="small" pill variant="primary">domain</sl-tag>
<sl-tag size="small" pill variant="primary">/</sl-tag>
<sl-tag size="small" pill variant="primary">short</sl-tag>
<sl-tag size="small" pill variant="neutral">+</sl-tag>
with
<sl-tag size="small" pill variant="primary">Custom</sl-tag>
<sl-tag size="small" pill variant="neutral">Text</sl-tag>
</sl-card>
<sl-card class="card-basic"> <sl-card class="card-basic">
Share Share
<sl-tag size="small" pill variant="primary">Combined Text</sl-tag> <sl-tag size="small" pill variant="primary">Dictionary Value</sl-tag>
<sl-divider></sl-divider> <sl-divider></sl-divider>
Type: Type:
<sl-tag size="small" pill variant="primary">URL</sl-tag> <sl-tag size="small" pill variant="primary">URL</sl-tag>
@@ -186,49 +151,14 @@ sl-tag::part(base) {
Get Get
<sl-tag size="small" pill variant="primary">Value</sl-tag> <sl-tag size="small" pill variant="primary">Value</sl-tag>
for for
<sl-tag size="small" pill variant="primary">short</sl-tag> <sl-tag size="small" pill variant="primary">url</sl-tag>
in in
<sl-tag size="small" pill variant="primary">Contents of URL</sl-tag> <sl-tag size="small" pill variant="primary">Contents of URL</sl-tag>
</sl-card> </sl-card>
<sl-card class="card-basic">
Set variable
<sl-tag size="small" pill variant="primary">short</sl-tag>
to
<sl-tag size="small" pill variant="primary">Dictionary Value</sl-tag>
</sl-card>
<sl-card class="card-basic">
Get
<sl-tag size="small" pill variant="primary">Value</sl-tag>
for
<sl-tag size="small" pill variant="primary">domain</sl-tag>
in
<sl-tag size="small" pill variant="primary">Contents of URL</sl-tag>
</sl-card>
<sl-card class="card-basic">
Set variable
<sl-tag size="small" pill variant="primary">domain</sl-tag>
to
<sl-tag size="small" pill variant="primary">Dictionary Value</sl-tag>
</sl-card>
<sl-card class="card-basic">
Combine
<sl-tag size="small" pill variant="primary">https://</sl-tag>
<sl-tag size="small" pill variant="primary">domain</sl-tag>
<sl-tag size="small" pill variant="primary">/</sl-tag>
<sl-tag size="small" pill variant="primary">short</sl-tag>
<sl-tag size="small" pill variant="neutral">+</sl-tag>
with
<sl-tag size="small" pill variant="primary">Custom</sl-tag>
<sl-tag size="small" pill variant="neutral">Text</sl-tag>
</sl-card>
<sl-card class="card-basic"> <sl-card class="card-basic">
Copy Copy
<sl-tag size="small" pill variant="primary">Combined Text</sl-tag> <sl-tag size="small" pill variant="primary">Dictionary Value</sl-tag>
to clipboard to clipboard
<sl-divider></sl-divider> <sl-divider></sl-divider>
Type: Type:

View File

@@ -142,9 +142,9 @@ async function set(short, long) {
const data = await resp.json(); const data = await resp.json();
const newShort = data.short; const newShort = data.short;
const newDomain = data.domain; const newURL = data.url;
setShortItem(newShort, newDomain, 'check-square'); setShortItem(newShort, newURL, 'check-square');
// Only set the icons if we were actually setting from these inputs // Only set the icons if we were actually setting from these inputs
if (document.getElementById('short').value == short && document.getElementById('long').value == long) { if (document.getElementById('short').value == short && document.getElementById('long').value == long) {
@@ -155,7 +155,7 @@ async function set(short, long) {
// Only set the clipboard if the user didn't change the inputs // Only set the clipboard if the user didn't change the inputs
if (document.getElementById('short').value == oldShort && document.getElementById('long').value == oldLong) { if (document.getElementById('short').value == oldShort && document.getElementById('long').value == oldLong) {
try { try {
await navigator.clipboard.writeText(`${window.location.protocol}//${newDomain}/${newShort}`); await navigator.clipboard.writeText(newURL);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
@@ -190,7 +190,7 @@ async function set(short, long) {
} }
} }
function setShortItem(short, domain, icon) { function setShortItem(short, url, icon) {
const tree = document.getElementById('tree'); const tree = document.getElementById('tree');
for (const item of tree.children) { for (const item of tree.children) {
@@ -203,9 +203,9 @@ function setShortItem(short, domain, icon) {
item.appendChild(document.createElement('sl-icon')).setAttribute('name', icon); item.appendChild(document.createElement('sl-icon')).setAttribute('name', icon);
item.appendChild(document.createTextNode(short)); item.appendChild(document.createTextNode(short));
if (domain != null) { if (url != null) {
item.addEventListener('click', () => { item.addEventListener('click', () => {
navigator.clipboard.writeText(`${window.location.protocol}//${domain}/${short}`); navigator.clipboard.writeText(url);
}); });
} }