From f1b07bab2f433568de02684cfe3f38a2f41a8b9b Mon Sep 17 00:00:00 2001 From: Arnas Udovic Date: Thu, 1 Feb 2024 16:39:37 +0200 Subject: [PATCH] added url shorting flow --- .gitignore | 1 + assests/favicon.ico | Bin 0 -> 19134 bytes db.go | 145 ++++++++++++++++++++++++++++++++++++++ go.mod | 41 +++++++++++ go.sum | 141 ++++++++++++++++++++++++++++++++++++ main.go | 54 ++++++++++++++ views/index.html | 28 ++++++++ views/layouts/footer.html | 13 ++++ views/layouts/master.html | 26 +++++++ 9 files changed, 449 insertions(+) create mode 100644 assests/favicon.ico create mode 100644 db.go create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go create mode 100644 views/index.html create mode 100644 views/layouts/footer.html create mode 100644 views/layouts/master.html diff --git a/.gitignore b/.gitignore index adf8f72..2b4c842 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ # Go workspace file go.work +main.db diff --git a/assests/favicon.ico b/assests/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5d58779b86f6c6f02778c6737c0e6ebc3858e51b GIT binary patch literal 19134 zcmeI4O^h5@5yyKnR^}3IUn7)cd_l^M-~;$zWfl%ZaS$hRwF45zMD`)DhsZP59#%q1 zEP;I_A>!j;2_Z#BAjNoRSw$8`A;AVj91D7~d}T>OkK@1q<7xiCo~~8R+n!x#W);}k zEvcsJ)vH(URlRy2-M!i z!j_PB9}zsJe!f>Aya&oHVJP=HyO}?(!T(#B6?i3ZhO*VY7}V|NBJ=sWuqQPCpzjLT zg$qK!`%k^)!IJp*gcpSO3wIlYe&L&s1u+1Q3U3Q7MlT~2ye~A_Q@Lb!{4lSn8#_Mq zg|7rM`;l{@|wt^4{!0|0p~vWZt~| zmda&uM~}7dbv=Jfbvp^mGG_MSrvZFtUd>)d{Ly0Wzv1M}>zXSQ2M=Ma%pUar+5bOj zd^Xmb;_t_IK>WI^GaXM=Jp#VY^V8-(u{|$jJj~a!(Couc1LU;XdZY0BpkzN1+FGXm z=fV$!rW?+`sy6CO2l`hb|DO-!J(YjsWSj>_g(3V} z0&fqV^K@D`B?D&n@8ZAf%5O|)JY28m@Ewr7M}&5UeND0u$O)@AO0F0X zvzCxJF>j^=C8lM-Jo)=1Jm-_OWu7Jh{4yI|@4x4z!vh_JDyJO#yoU?&D z266WA0~J^g{}H|?w7y?1{I@dn3&KfY?E1I-mr>TK_2t(fvN9-JE5DWEw}iyytHRJ% ziAI3>UkI(=LBSIX_80mfHdcQ~{3Jj>W&^r$?{WUq-<1NNbozczlQ;+Lk+0rnS7kd# z*2OOfw*&IQ+kk&nXl)sf)iaLm;whD}z#21KkDA|QRC?jQ6B-T2?QL5h?0;L0m$}6! z(}((VIm|E4kZItbYHWQyU*@;Tq{m#E?xmnp#zlTw{cZ7KysVBml>u=H&%_JXKUDRc z$7biIc=B@^u-wFE;`{Qv>c~Co7fPN3$hqHzbH-W+d`zr;lGkkh3G)a2ku|BZ?VZ%! z+HB%OOZ-}T)BEgsS@q9I^iABDU%wBTf82{K$JyUaZj?C;0e#kn=|JBN#z2nwcM3mK zd0Oy$8on&}K8=^0So^WT`?X_r=Os7a#YV@4J~x=ZFlWi3@NB_e{{DqAh!5As4aq(& zoCfHZHRS!cVLp2*9sFV(J`e0%Le5<%^h=@~=x1Gs4IdkLvx^On>;v`=0zGod>RD6c z`cl=FV12S?eJ+`8^7=9FJG^AHJ0$$R(Ca2DpTBiKx99jVq5CW0q&y7FXV3mpdfp$t6|$dfobTev&+r_$ zEg5_6q&csqd0RhT_Lz-zX5*EN*oQgyqSbpUJ-+Ff&C+MbK%eJX)-HWN8`RP71tGqg zO{3=}n+AxR&+D=4jWJ1=xh40kf9S>>*|;V1`{18VK8{NNi12CQ<6cK)*5!|dzCYvf zo!CqRH`Lhd;XCj4mxb4a>|^Z5&kBz@JSE=WTe+`|#DKDp@vRF>_b=~f8LxJ%0UMjA zZ+lXnF^$Ba%%?k%$qsYw*N=^f{W(ATMRy9W$dK8emXbf4?m2hjv+1Zk zzWaBVHm3ZWlj?RF$RqArmr9U3CHHaeBOb%`Z(}q%X}*{F&fc`sb1suR0>qBB@1K#0 zK~H#5Sb9gYx%O1L>=&#di=okJ&NZ3)$l#=UVlQP4*w{I*?kE?e_mpdA?axWJ+u*zg zY~we&@qWtBx$)8`?|D8neduoVUBk}vIQ+hWKW__5*MsD&A@BRD%Ci8>q4#UkGlS|` z_u-uu*{lHXpezRLAxz2HAShWBNQ!z`V9Tg|2U z3-#-P_g#Ad{F!IZ3sAn7?FG0gCoKoef69N@3(m_&??1eKXL@sw_?UoPF-wS8`E>!lO%wlj#{?9s;JrnbNgSgE4+}qsp zJjmaVvLEafpUwAux*vi42>g#CkY%0A!|yLE#ouy8pNVrpLHp4YdAS!oQOmM8>qTi! z)99g`Ceh)79;sz%oF&nawxc64<(BB`kls^GC_k)!XD~`@dHEULe2_0x26x3-TYrnv zkLsc)bVGp7&-bE+Xf&S=X*&^ZMb%C#YI1qd2f_?0&@h2Y#)Tq^ss*iScmU=+Z5HKh zNUH^vW0^XTx8@s_`%|0kl7M`izKKLX<-uw^pkmEA1uH?n>+&62bZZMKq}HY)8{<=(^9N=>x? zKwMoE9n4j0r*m4Vw?&hUw1GUSD@KF^%bpi zXrymOfMKC88QYn$$X?jkJ?>vX!KnCZek=Sr@vvnsw7=H>+LFy1hoX zuZ^y&v1_*)(ncra57yF!&d{^o%Fz8@^|H3YrL0%g5{qkE*^62CZaEcKyJ;(m4$M_j z=-u~K(i4hgtzStO4ytYMlf5JHnZe=oq`Z%F8rR~t?oGObcrkt}>S!#h^|ffFn=L^X zRbH&GonGn=YPEW2 0 { + shortUrl = "https://" + c.Request.Host + "/" + shortUrl + } + c.HTML(http.StatusOK, "index", gin.H{ + "shortUrl": shortUrl, + }) + }) + + r.GET("/:short_url", func(c *gin.Context) { + redirectUrl := getRedirectUrl(db, c.Param("short_url")) + + if len(redirectUrl) == 0 { + c.Redirect(http.StatusMovedPermanently, "/") + } + + c.Redirect(http.StatusMovedPermanently, redirectUrl) + }) + + r.Run() +} diff --git a/views/index.html b/views/index.html new file mode 100644 index 0000000..fa407fc --- /dev/null +++ b/views/index.html @@ -0,0 +1,28 @@ +{{define "head"}} + +{{end}} + + +{{define "content"}} + +

+

+ + +
+ +{{if .shortUrl}} + {{ .shortUrl }} +{{end}} +

+ +{{end}} diff --git a/views/layouts/footer.html b/views/layouts/footer.html new file mode 100644 index 0000000..0de27d1 --- /dev/null +++ b/views/layouts/footer.html @@ -0,0 +1,13 @@ +
+
+ Udovič Arns + @zordsdavini@s.arns.lt +
+ +
+
+ Pruojekta kuods īr https://g.arns.lt/zordsdavini/url_shortiner +
+ +
+
diff --git a/views/layouts/master.html b/views/layouts/master.html new file mode 100644 index 0000000..e728aa6 --- /dev/null +++ b/views/layouts/master.html @@ -0,0 +1,26 @@ + + + + + Arna trumpintuos + + + {{template "head" .}} + + + +
+

Arna trumpintuos

+ +
+
+ {{template "content" .}} +
+
+ + {{include "layouts/footer"}} + + +
+ +