go-url-shortener/internal/db/user_relate_url.sql.go
2024-12-11 17:11:53 +08:00

113 lines
2.3 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.24.0
// source: user_relate_url.sql
package db
import (
"context"
"time"
)
const createUserUrl = `-- name: CreateUserUrl :one
INSERT INTO user_relate_url (
user_id, short_url, origin_url, status, expire_at
) VALUES (
$1, $2, $3, 0, $4
)
RETURNING id, user_id, short_url, origin_url, status, expire_at, created_at
`
type CreateUserUrlParams struct {
UserID string `json:"user_id"`
ShortUrl string `json:"short_url"`
OriginUrl string `json:"origin_url"`
ExpireAt time.Time `json:"expire_at"`
}
func (q *Queries) CreateUserUrl(ctx context.Context, arg *CreateUserUrlParams) (*UserRelateUrl, error) {
row := q.db.QueryRowContext(ctx, createUserUrl,
arg.UserID,
arg.ShortUrl,
arg.OriginUrl,
arg.ExpireAt,
)
var i UserRelateUrl
err := row.Scan(
&i.ID,
&i.UserID,
&i.ShortUrl,
&i.OriginUrl,
&i.Status,
&i.ExpireAt,
&i.CreatedAt,
)
return &i, err
}
const listUrlByUser = `-- name: ListUrlByUser :many
SELECT id, user_id, short_url, origin_url, status, expire_at, created_at
FROM user_relate_url
WHERE user_id = $1
ORDER BY id DESC
`
func (q *Queries) ListUrlByUser(ctx context.Context, userID string) ([]*UserRelateUrl, error) {
rows, err := q.db.QueryContext(ctx, listUrlByUser, userID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []*UserRelateUrl{}
for rows.Next() {
var i UserRelateUrl
if err := rows.Scan(
&i.ID,
&i.UserID,
&i.ShortUrl,
&i.OriginUrl,
&i.Status,
&i.ExpireAt,
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, &i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const updateStatus = `-- name: UpdateStatus :one
UPDATE user_relate_url
SET status = $2
WHERE short_url = $1
RETURNING id, user_id, short_url, origin_url, status, expire_at, created_at
`
type UpdateStatusParams struct {
ShortUrl string `json:"short_url"`
Status int32 `json:"status"`
}
func (q *Queries) UpdateStatus(ctx context.Context, arg *UpdateStatusParams) (*UserRelateUrl, error) {
row := q.db.QueryRowContext(ctx, updateStatus, arg.ShortUrl, arg.Status)
var i UserRelateUrl
err := row.Scan(
&i.ID,
&i.UserID,
&i.ShortUrl,
&i.OriginUrl,
&i.Status,
&i.ExpireAt,
&i.CreatedAt,
)
return &i, err
}