59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package model
|
||
|
||
import (
|
||
"database/sql"
|
||
"net/http"
|
||
|
||
"github.com/gin-gonic/gin"
|
||
)
|
||
|
||
type Repository interface {
|
||
Create(task *Task) error
|
||
}
|
||
|
||
type PostgresRepository struct {
|
||
db *sql.DB
|
||
}
|
||
|
||
func NewPostgresRepository(db *sql.DB) *PostgresRepository {
|
||
return &PostgresRepository{db: db}
|
||
}
|
||
|
||
func (r *PostgresRepository) Create(task *Task) error {
|
||
|
||
query := `INSERT INTO task (id_category, id_profile, tp_level, tp_lang, "name", description, code, unit_test, dt_create)
|
||
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, now()) RETURNING id`
|
||
|
||
err := r.db.QueryRow(
|
||
query,
|
||
task.Id_category,
|
||
task.Id_profile,
|
||
task.Tp_level,
|
||
task.Tp_lang,
|
||
task.Name,
|
||
task.Description,
|
||
task.Code,
|
||
task.Unit_test,
|
||
task.Dt_create,
|
||
|
||
).Scan(&task.ID)
|
||
|
||
return err
|
||
}
|
||
|
||
|
||
func CreateTask(c *gin.Context) {
|
||
id := c.Param("id") // Получаем ID пользователя из параметров URL.
|
||
|
||
// Здесь должна быть логика получения информации о пользователе из базы данных или другого источника.
|
||
// В этом примере мы просто возвращаем фиктивные данные.
|
||
|
||
user := map[string]interface{}{
|
||
"id": id,
|
||
"name": "John Doe",
|
||
"email": "john.doe@example.com",
|
||
}
|
||
|
||
c.JSON(http.StatusOK, user) // Отправляем JSON-ответ с информацией о пользователе.
|
||
}
|