Compare commits
No commits in common. "e67c9a77cecaf402579486d112da12c068a70044" and "54c45ac3bc811207875b3e825d1c3f67badbdda2" have entirely different histories.
e67c9a77ce
...
54c45ac3bc
12 changed files with 35 additions and 113 deletions
|
|
@ -395,9 +395,6 @@ paths:
|
||||||
rate:
|
rate:
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
ftime:
|
|
||||||
type: string
|
|
||||||
format: date-time
|
|
||||||
required:
|
required:
|
||||||
- title_id
|
- title_id
|
||||||
- status
|
- status
|
||||||
|
|
@ -481,9 +478,6 @@ paths:
|
||||||
rate:
|
rate:
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
ftime:
|
|
||||||
type: string
|
|
||||||
format: date-time
|
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Title successfully updated
|
description: Title successfully updated
|
||||||
|
|
|
||||||
|
|
@ -262,8 +262,7 @@ type GetUserTitlesParams struct {
|
||||||
|
|
||||||
// AddUserTitleJSONBody defines parameters for AddUserTitle.
|
// AddUserTitleJSONBody defines parameters for AddUserTitle.
|
||||||
type AddUserTitleJSONBody struct {
|
type AddUserTitleJSONBody struct {
|
||||||
Ftime *time.Time `json:"ftime,omitempty"`
|
Rate *int32 `json:"rate,omitempty"`
|
||||||
Rate *int32 `json:"rate,omitempty"`
|
|
||||||
|
|
||||||
// Status User's title status
|
// Status User's title status
|
||||||
Status UserTitleStatus `json:"status"`
|
Status UserTitleStatus `json:"status"`
|
||||||
|
|
@ -272,8 +271,7 @@ type AddUserTitleJSONBody struct {
|
||||||
|
|
||||||
// UpdateUserTitleJSONBody defines parameters for UpdateUserTitle.
|
// UpdateUserTitleJSONBody defines parameters for UpdateUserTitle.
|
||||||
type UpdateUserTitleJSONBody struct {
|
type UpdateUserTitleJSONBody struct {
|
||||||
Ftime *time.Time `json:"ftime,omitempty"`
|
Rate *int32 `json:"rate,omitempty"`
|
||||||
Rate *int32 `json:"rate,omitempty"`
|
|
||||||
|
|
||||||
// Status User's title status
|
// Status User's title status
|
||||||
Status *UserTitleStatus `json:"status,omitempty"`
|
Status *UserTitleStatus `json:"status,omitempty"`
|
||||||
|
|
|
||||||
|
|
@ -61,9 +61,6 @@ patch:
|
||||||
rate:
|
rate:
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
ftime:
|
|
||||||
type: string
|
|
||||||
format: date-time
|
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Title successfully updated
|
description: Title successfully updated
|
||||||
|
|
|
||||||
|
|
@ -122,9 +122,6 @@ post:
|
||||||
rate:
|
rate:
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
ftime:
|
|
||||||
type: string
|
|
||||||
format: date-time
|
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Title successfully added to user
|
description: Title successfully added to user
|
||||||
|
|
|
||||||
|
|
@ -69,16 +69,6 @@ func sqlDate2oapi(p_date pgtype.Timestamptz) *time.Time {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func oapiDate2sql(t *time.Time) pgtype.Timestamptz {
|
|
||||||
if t == nil {
|
|
||||||
return pgtype.Timestamptz{Valid: false}
|
|
||||||
}
|
|
||||||
return pgtype.Timestamptz{
|
|
||||||
Time: *t,
|
|
||||||
Valid: true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// func UserTitleStatus2Sqlc(s *[]oapi.UserTitleStatus) (*SqlcUserStatus, error) {
|
// func UserTitleStatus2Sqlc(s *[]oapi.UserTitleStatus) (*SqlcUserStatus, error) {
|
||||||
// var sqlc_status SqlcUserStatus
|
// var sqlc_status SqlcUserStatus
|
||||||
// if s == nil {
|
// if s == nil {
|
||||||
|
|
@ -375,7 +365,6 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
|
||||||
TitleID: request.Body.TitleId,
|
TitleID: request.Body.TitleId,
|
||||||
Status: *status,
|
Status: *status,
|
||||||
Rate: request.Body.Rate,
|
Rate: request.Body.Rate,
|
||||||
Ftime: oapiDate2sql(request.Body.Ftime),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
user_title, err := s.db.InsertUserTitle(ctx, params)
|
user_title, err := s.db.InsertUserTitle(ctx, params)
|
||||||
|
|
@ -439,7 +428,6 @@ func (s Server) UpdateUserTitle(ctx context.Context, request oapi.UpdateUserTitl
|
||||||
Rate: request.Body.Rate,
|
Rate: request.Body.Rate,
|
||||||
UserID: request.UserId,
|
UserID: request.UserId,
|
||||||
TitleID: request.TitleId,
|
TitleID: request.TitleId,
|
||||||
Ftime: oapiDate2sql(request.Body.Ftime),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
user_title, err := s.db.UpdateUserTitle(ctx, params)
|
user_title, err := s.db.UpdateUserTitle(ctx, params)
|
||||||
|
|
|
||||||
|
|
@ -400,14 +400,13 @@ FROM reviews
|
||||||
WHERE review_id = sqlc.arg('review_id')::bigint;
|
WHERE review_id = sqlc.arg('review_id')::bigint;
|
||||||
|
|
||||||
-- name: InsertUserTitle :one
|
-- name: InsertUserTitle :one
|
||||||
INSERT INTO usertitles (user_id, title_id, status, rate, review_id, ctime)
|
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
||||||
VALUES (
|
VALUES (
|
||||||
sqlc.arg('user_id')::bigint,
|
sqlc.arg('user_id')::bigint,
|
||||||
sqlc.arg('title_id')::bigint,
|
sqlc.arg('title_id')::bigint,
|
||||||
sqlc.arg('status')::usertitle_status_t,
|
sqlc.arg('status')::usertitle_status_t,
|
||||||
sqlc.narg('rate')::int,
|
sqlc.narg('rate')::int,
|
||||||
sqlc.narg('review_id')::bigint,
|
sqlc.narg('review_id')::bigint
|
||||||
sqlc.narg('ftime')::timestamptz
|
|
||||||
)
|
)
|
||||||
RETURNING user_id, title_id, status, rate, review_id, ctime;
|
RETURNING user_id, title_id, status, rate, review_id, ctime;
|
||||||
|
|
||||||
|
|
@ -416,8 +415,7 @@ RETURNING user_id, title_id, status, rate, review_id, ctime;
|
||||||
UPDATE usertitles
|
UPDATE usertitles
|
||||||
SET
|
SET
|
||||||
status = COALESCE(sqlc.narg('status')::usertitle_status_t, status),
|
status = COALESCE(sqlc.narg('status')::usertitle_status_t, status),
|
||||||
rate = COALESCE(sqlc.narg('rate')::int, rate),
|
rate = COALESCE(sqlc.narg('rate')::int, rate)
|
||||||
ctime = COALESCE(sqlc.narg('ftime')::timestamptz, ctime)
|
|
||||||
WHERE
|
WHERE
|
||||||
user_id = sqlc.arg('user_id')
|
user_id = sqlc.arg('user_id')
|
||||||
AND title_id = sqlc.arg('title_id')
|
AND title_id = sqlc.arg('title_id')
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,4 @@ import type { ClientOptions as ClientOptions2 } from './types.gen';
|
||||||
*/
|
*/
|
||||||
export type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;
|
export type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;
|
||||||
|
|
||||||
export const client = createClient(createConfig<ClientOptions2>({ baseUrl: '/api/v1' }));
|
export const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'http://10.1.0.65:8081/api/v1' }));
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
import type { Client, Options as Options2, TDataShape } from './client';
|
import type { Client, Options as Options2, TDataShape } from './client';
|
||||||
import { client } from './client.gen';
|
import { client } from './client.gen';
|
||||||
import type { AddUserTitleData, AddUserTitleErrors, AddUserTitleResponses, DeleteUserTitleData, DeleteUserTitleErrors, DeleteUserTitleResponses, GetTitleData, GetTitleErrors, GetTitleResponses, GetTitlesData, GetTitlesErrors, GetTitlesResponses, GetUsersData, GetUsersErrors, GetUsersIdData, GetUsersIdErrors, GetUsersIdResponses, GetUsersResponses, GetUserTitleData, GetUserTitleErrors, GetUserTitleResponses, GetUserTitlesData, GetUserTitlesErrors, GetUserTitlesResponses, UpdateUserData, UpdateUserErrors, UpdateUserResponses, UpdateUserTitleData, UpdateUserTitleErrors, UpdateUserTitleResponses } from './types.gen';
|
import type { AddUserTitleData, AddUserTitleErrors, AddUserTitleResponses, DeleteUserTitleData, DeleteUserTitleErrors, DeleteUserTitleResponses, GetTitleData, GetTitleErrors, GetTitleResponses, GetTitlesData, GetTitlesErrors, GetTitlesResponses, GetUsersIdData, GetUsersIdErrors, GetUsersIdResponses, GetUserTitleData, GetUserTitleErrors, GetUserTitleResponses, GetUserTitlesData, GetUserTitlesErrors, GetUserTitlesResponses, UpdateUserData, UpdateUserErrors, UpdateUserResponses, UpdateUserTitleData, UpdateUserTitleErrors, UpdateUserTitleResponses } from './types.gen';
|
||||||
|
|
||||||
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
|
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
|
||||||
/**
|
/**
|
||||||
|
|
@ -32,11 +32,6 @@ export const getTitles = <ThrowOnError extends boolean = false>(options?: Option
|
||||||
*/
|
*/
|
||||||
export const getTitle = <ThrowOnError extends boolean = false>(options: Options<GetTitleData, ThrowOnError>) => (options.client ?? client).get<GetTitleResponses, GetTitleErrors, ThrowOnError>({ url: '/titles/{title_id}', ...options });
|
export const getTitle = <ThrowOnError extends boolean = false>(options: Options<GetTitleData, ThrowOnError>) => (options.client ?? client).get<GetTitleResponses, GetTitleErrors, ThrowOnError>({ url: '/titles/{title_id}', ...options });
|
||||||
|
|
||||||
/**
|
|
||||||
* Search user by nickname or dispname (both in one param), response is always sorted by id
|
|
||||||
*/
|
|
||||||
export const getUsers = <ThrowOnError extends boolean = false>(options?: Options<GetUsersData, ThrowOnError>) => (options?.client ?? client).get<GetUsersResponses, GetUsersErrors, ThrowOnError>({ url: '/users/', ...options });
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get user info
|
* Get user info
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -60,12 +60,6 @@ export type Title = {
|
||||||
title_names: {
|
title_names: {
|
||||||
[key: string]: Array<string>;
|
[key: string]: Array<string>;
|
||||||
};
|
};
|
||||||
/**
|
|
||||||
* Localized description. Key = language (ISO 639-1), value = description.
|
|
||||||
*/
|
|
||||||
title_desc?: {
|
|
||||||
[key: string]: string;
|
|
||||||
};
|
|
||||||
studio?: Studio;
|
studio?: Studio;
|
||||||
tags: Tags;
|
tags: Tags;
|
||||||
poster?: Image;
|
poster?: Image;
|
||||||
|
|
@ -237,50 +231,6 @@ export type GetTitleResponses = {
|
||||||
|
|
||||||
export type GetTitleResponse = GetTitleResponses[keyof GetTitleResponses];
|
export type GetTitleResponse = GetTitleResponses[keyof GetTitleResponses];
|
||||||
|
|
||||||
export type GetUsersData = {
|
|
||||||
body?: never;
|
|
||||||
path?: never;
|
|
||||||
query?: {
|
|
||||||
word?: string;
|
|
||||||
limit?: number;
|
|
||||||
/**
|
|
||||||
* pass cursor naked
|
|
||||||
*/
|
|
||||||
cursor_id?: number;
|
|
||||||
};
|
|
||||||
url: '/users/';
|
|
||||||
};
|
|
||||||
|
|
||||||
export type GetUsersErrors = {
|
|
||||||
/**
|
|
||||||
* Request params are not correct
|
|
||||||
*/
|
|
||||||
400: unknown;
|
|
||||||
/**
|
|
||||||
* Unknown server error
|
|
||||||
*/
|
|
||||||
500: unknown;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type GetUsersResponses = {
|
|
||||||
/**
|
|
||||||
* List of users with cursor
|
|
||||||
*/
|
|
||||||
200: {
|
|
||||||
/**
|
|
||||||
* List of users
|
|
||||||
*/
|
|
||||||
data: Array<User>;
|
|
||||||
cursor: number;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* No users found
|
|
||||||
*/
|
|
||||||
204: void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type GetUsersResponse = GetUsersResponses[keyof GetUsersResponses];
|
|
||||||
|
|
||||||
export type GetUsersIdData = {
|
export type GetUsersIdData = {
|
||||||
body?: never;
|
body?: never;
|
||||||
path: {
|
path: {
|
||||||
|
|
|
||||||
|
|
@ -169,4 +169,17 @@ EXECUTE FUNCTION update_title_rating();
|
||||||
CREATE TRIGGER trg_notify_new_signal
|
CREATE TRIGGER trg_notify_new_signal
|
||||||
AFTER INSERT ON signals
|
AFTER INSERT ON signals
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
EXECUTE FUNCTION notify_new_signal();
|
EXECUTE FUNCTION notify_new_signal();
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION set_ctime()
|
||||||
|
RETURNS TRIGGER AS $$
|
||||||
|
BEGIN
|
||||||
|
NEW.ctime = now();
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
CREATE TRIGGER set_ctime_on_update
|
||||||
|
BEFORE UPDATE ON usertitles
|
||||||
|
FOR EACH ROW
|
||||||
|
EXECUTE FUNCTION set_ctime();
|
||||||
|
|
@ -9,8 +9,6 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/jackc/pgx/v5/pgtype"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const createImage = `-- name: CreateImage :one
|
const createImage = `-- name: CreateImage :one
|
||||||
|
|
@ -438,25 +436,23 @@ func (q *Queries) InsertTitleTags(ctx context.Context, arg InsertTitleTagsParams
|
||||||
}
|
}
|
||||||
|
|
||||||
const insertUserTitle = `-- name: InsertUserTitle :one
|
const insertUserTitle = `-- name: InsertUserTitle :one
|
||||||
INSERT INTO usertitles (user_id, title_id, status, rate, review_id, ctime)
|
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
||||||
VALUES (
|
VALUES (
|
||||||
$1::bigint,
|
$1::bigint,
|
||||||
$2::bigint,
|
$2::bigint,
|
||||||
$3::usertitle_status_t,
|
$3::usertitle_status_t,
|
||||||
$4::int,
|
$4::int,
|
||||||
$5::bigint,
|
$5::bigint
|
||||||
$6::timestamptz
|
|
||||||
)
|
)
|
||||||
RETURNING user_id, title_id, status, rate, review_id, ctime
|
RETURNING user_id, title_id, status, rate, review_id, ctime
|
||||||
`
|
`
|
||||||
|
|
||||||
type InsertUserTitleParams struct {
|
type InsertUserTitleParams struct {
|
||||||
UserID int64 `json:"user_id"`
|
UserID int64 `json:"user_id"`
|
||||||
TitleID int64 `json:"title_id"`
|
TitleID int64 `json:"title_id"`
|
||||||
Status UsertitleStatusT `json:"status"`
|
Status UsertitleStatusT `json:"status"`
|
||||||
Rate *int32 `json:"rate"`
|
Rate *int32 `json:"rate"`
|
||||||
ReviewID *int64 `json:"review_id"`
|
ReviewID *int64 `json:"review_id"`
|
||||||
Ftime pgtype.Timestamptz `json:"ftime"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *Queries) InsertUserTitle(ctx context.Context, arg InsertUserTitleParams) (Usertitle, error) {
|
func (q *Queries) InsertUserTitle(ctx context.Context, arg InsertUserTitleParams) (Usertitle, error) {
|
||||||
|
|
@ -466,7 +462,6 @@ func (q *Queries) InsertUserTitle(ctx context.Context, arg InsertUserTitleParams
|
||||||
arg.Status,
|
arg.Status,
|
||||||
arg.Rate,
|
arg.Rate,
|
||||||
arg.ReviewID,
|
arg.ReviewID,
|
||||||
arg.Ftime,
|
|
||||||
)
|
)
|
||||||
var i Usertitle
|
var i Usertitle
|
||||||
err := row.Scan(
|
err := row.Scan(
|
||||||
|
|
@ -1064,20 +1059,18 @@ const updateUserTitle = `-- name: UpdateUserTitle :one
|
||||||
UPDATE usertitles
|
UPDATE usertitles
|
||||||
SET
|
SET
|
||||||
status = COALESCE($1::usertitle_status_t, status),
|
status = COALESCE($1::usertitle_status_t, status),
|
||||||
rate = COALESCE($2::int, rate),
|
rate = COALESCE($2::int, rate)
|
||||||
ctime = COALESCE($3::timestamptz, ctime)
|
|
||||||
WHERE
|
WHERE
|
||||||
user_id = $4
|
user_id = $3
|
||||||
AND title_id = $5
|
AND title_id = $4
|
||||||
RETURNING user_id, title_id, status, rate, review_id, ctime
|
RETURNING user_id, title_id, status, rate, review_id, ctime
|
||||||
`
|
`
|
||||||
|
|
||||||
type UpdateUserTitleParams struct {
|
type UpdateUserTitleParams struct {
|
||||||
Status *UsertitleStatusT `json:"status"`
|
Status *UsertitleStatusT `json:"status"`
|
||||||
Rate *int32 `json:"rate"`
|
Rate *int32 `json:"rate"`
|
||||||
Ftime pgtype.Timestamptz `json:"ftime"`
|
UserID int64 `json:"user_id"`
|
||||||
UserID int64 `json:"user_id"`
|
TitleID int64 `json:"title_id"`
|
||||||
TitleID int64 `json:"title_id"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fails with sql.ErrNoRows if (user_id, title_id) not found
|
// Fails with sql.ErrNoRows if (user_id, title_id) not found
|
||||||
|
|
@ -1085,7 +1078,6 @@ func (q *Queries) UpdateUserTitle(ctx context.Context, arg UpdateUserTitleParams
|
||||||
row := q.db.QueryRow(ctx, updateUserTitle,
|
row := q.db.QueryRow(ctx, updateUserTitle,
|
||||||
arg.Status,
|
arg.Status,
|
||||||
arg.Rate,
|
arg.Rate,
|
||||||
arg.Ftime,
|
|
||||||
arg.UserID,
|
arg.UserID,
|
||||||
arg.TitleID,
|
arg.TitleID,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue