From 389f85836911c8a5078c6007f7d02dd154ccdbac Mon Sep 17 00:00:00 2001 From: fede Date: Thu, 12 Mar 2026 11:17:16 -0300 Subject: [PATCH] hecha una implementacion que no puede tener coinsidencias --- models/url.go | 3 +-- repository/CrearUrl.go | 29 +++++++++++++++-------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/models/url.go b/models/url.go index 388cb30..e75a6e0 100644 --- a/models/url.go +++ b/models/url.go @@ -3,8 +3,7 @@ package models import "time" type Url struct { - Shorturl string `gorm:"primaryKey"` -// Id uint64 `gorm: "primaryKey;autoIncrement"` + Shorturl int64 `gorm:"primaryKey;autoIncrement:true"` Longurl string `gorm:"uniqueIndex:idx_lurl"` Time time.Time `gorm:"autoCreateTime"` } diff --git a/repository/CrearUrl.go b/repository/CrearUrl.go index a30dd2b..3187137 100644 --- a/repository/CrearUrl.go +++ b/repository/CrearUrl.go @@ -1,7 +1,6 @@ package repository import ( - "crypto/sha3" "fmt" "url-short/models" @@ -16,29 +15,31 @@ func CrearUrl(longURL string, db *gorm.DB) (string, error) { return "", result.Error } if counturl != 0 { - println(1) + // println(1) var short models.Url result = db.Model(&short).Where("longurl = ?", longURL).Select("shorturl").First(&short) if result.Error != nil { return "", result.Error } - return short.Shorturl, nil + return fmt.Sprintf("%d", short.Shorturl), nil } // shortURL := base64.StdEncoding.EncodeToString([]byte(longURL))[:10] - sha := sha3.New224() - sha.Write([]byte(longURL)) - shortURL := fmt.Sprintf("%x", sha.Sum(nil))[:10] + // sha := sha3.New224() + // sha.Write([]byte(longURL)) + // shortURL := fmt.Sprintf("%x", sha.Sum(nil))[:10] - result = db.Model(&models.Url{}).Where("shorturl = ?", shortURL).Count(&counturl) - if result.Error != nil { - return "", result.Error - } - if counturl != 0 { - return shortURL, nil - } + // result = db.Model(&models.Url{}).Where("shorturl = ?", shortURL).Count(&counturl) + // if result.Error != nil { + // return "", result.Error + // } + // if counturl != 0 { + // return shortURL, nil + // } - result = db.Create(&models.Url{Longurl: longURL, Shorturl: shortURL}) + var url models.Url + result = db.Create(&models.Url{Longurl: longURL}).Scan(&url) + shortURL := fmt.Sprintf("%d", url.Shorturl) if result.Error != nil { return "", result.Error