@rivascva/dt-idl 1.1.112 → 1.1.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -1
- package/go/auth/jwt.go +2 -5
- package/go/auth/models.go +2 -0
- package/go/psql/models.go +41 -0
- package/go/psql/utils.go +81 -0
- package/go.mod +6 -0
- package/go.sum +12 -0
- package/package.json +1 -1
- package/ts/types/types.ts +1 -0
package/dist/index.d.ts
CHANGED
|
@@ -1721,6 +1721,7 @@ type GetSearchStocksQueryParams = operations$3['getSearchStocks']['parameters'][
|
|
|
1721
1721
|
type GetStockHistoryQueryParams = operations$3['getStockHistory']['parameters']['query'];
|
|
1722
1722
|
type Portfolio = TradeServiceSchemas['Portfolio'];
|
|
1723
1723
|
type PortfolioType = TradeServiceSchemas['PortfolioType'];
|
|
1724
|
+
type UpdatePortfolioPayload = TradeServiceSchemas['UpdatePortfolioPayload'];
|
|
1724
1725
|
type AddOrderPayload = TradeServiceSchemas['AddOrderPayload'];
|
|
1725
1726
|
type Order = TradeServiceSchemas['Order'];
|
|
1726
1727
|
type OrderType = TradeServiceSchemas['OrderType'];
|
|
@@ -1736,4 +1737,4 @@ type UploadImageResponse = AssetServiceSchemas['UploadImageResponse'];
|
|
|
1736
1737
|
type DeleteImagePayload = AssetServiceSchemas['DeleteImagePayload'];
|
|
1737
1738
|
type AssetServiceError = AssetServiceSchemas['Error'];
|
|
1738
1739
|
|
|
1739
|
-
export { type AddOrderPayload, type AddUserPayload, type AssetServiceError, type DeleteImagePayload, type FullQuote, type GetIndexesQueryParams, type GetSearchStocksQueryParams, type GetStockHistoryQueryParams, type GetStocksByExchangeQueryParams, type GetStocksBySymbolsQueryParams, type Holding, type ImageType, type Index, type MarketServiceError, type NewsArticle, type Order, type OrderType, type Portfolio, type PortfolioType, type SimpleQuote, type SortField, type SortOrder, type StockHistoryEntry, type StockHistoryTimeframe, type StockNewsArticle, type TradeServiceError, type UpdateUserPayload, type UploadImagePayload, type UploadImageResponse, type User, type UserServiceError, createAssetServiceClient, createMarketServiceClient, createTradeServiceClient, createUserServiceClient, isAssetServiceError, isMarketServiceError, isTradeServiceError, isUserServiceError };
|
|
1740
|
+
export { type AddOrderPayload, type AddUserPayload, type AssetServiceError, type DeleteImagePayload, type FullQuote, type GetIndexesQueryParams, type GetSearchStocksQueryParams, type GetStockHistoryQueryParams, type GetStocksByExchangeQueryParams, type GetStocksBySymbolsQueryParams, type Holding, type ImageType, type Index, type MarketServiceError, type NewsArticle, type Order, type OrderType, type Portfolio, type PortfolioType, type SimpleQuote, type SortField, type SortOrder, type StockHistoryEntry, type StockHistoryTimeframe, type StockNewsArticle, type TradeServiceError, type UpdatePortfolioPayload, type UpdateUserPayload, type UploadImagePayload, type UploadImageResponse, type User, type UserServiceError, createAssetServiceClient, createMarketServiceClient, createTradeServiceClient, createUserServiceClient, isAssetServiceError, isMarketServiceError, isTradeServiceError, isUserServiceError };
|
package/go/auth/jwt.go
CHANGED
|
@@ -17,15 +17,12 @@ func ValidateToken(token string, secret string) (*jwt.Token, ValidationError) {
|
|
|
17
17
|
// validate the token
|
|
18
18
|
parsedToken, err := parser.Parse(token, func(t *jwt.Token) (any, error) { return []byte(secret), nil })
|
|
19
19
|
if err != nil {
|
|
20
|
-
return nil,
|
|
20
|
+
return nil, ErrorInvalidToken
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
// validate the token expiration time
|
|
24
24
|
expirationTime, err := parsedToken.Claims.GetExpirationTime()
|
|
25
|
-
if err != nil {
|
|
26
|
-
return nil, fmt.Errorf("failed to get the expiration time from the token: %w", err)
|
|
27
|
-
}
|
|
28
|
-
if expirationTime.Before(time.Now()) {
|
|
25
|
+
if err != nil || expirationTime.Before(time.Now()) {
|
|
29
26
|
return nil, ErrorExpiredToken
|
|
30
27
|
}
|
|
31
28
|
|
package/go/auth/models.go
CHANGED
|
@@ -24,6 +24,8 @@ var approvedServices = []string{"dt-trade-service", "dt-portfolio-service", "dt-
|
|
|
24
24
|
type ValidationError = error
|
|
25
25
|
|
|
26
26
|
var (
|
|
27
|
+
// ErrorInvalidToken is returned when a token is invalid.
|
|
28
|
+
ErrorInvalidToken ValidationError = errors.New("invalid token")
|
|
27
29
|
// ErrorExpiredToken is returned when a token is expired.
|
|
28
30
|
ErrorExpiredToken ValidationError = errors.New("expired token")
|
|
29
31
|
)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
package psql
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"github.com/Masterminds/squirrel"
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
// sq is a PostgreSQL query statement builder.
|
|
8
|
+
var sq = squirrel.StatementBuilder.PlaceholderFormat(squirrel.Dollar)
|
|
9
|
+
|
|
10
|
+
// returnAllSuffix is a PostgreSQL suffix that returns all affected rows.
|
|
11
|
+
const returnAllSuffix = "RETURNING *"
|
|
12
|
+
|
|
13
|
+
// Entries represents the database column/value entries.
|
|
14
|
+
type Entries = map[string]any
|
|
15
|
+
|
|
16
|
+
// Where is for the where selector.
|
|
17
|
+
type Where = any
|
|
18
|
+
|
|
19
|
+
// Equal is for the equal syntax in where selectors.
|
|
20
|
+
type Equal = squirrel.Eq
|
|
21
|
+
|
|
22
|
+
// NotEqual is for the not equal syntax in where selectors.
|
|
23
|
+
type NotEqual = squirrel.NotEq
|
|
24
|
+
|
|
25
|
+
// LessThan is for the less than syntax in where selectors.
|
|
26
|
+
type LessThan = squirrel.Lt
|
|
27
|
+
|
|
28
|
+
// LessThanEqual is for the less than or equal syntax in where selectors.
|
|
29
|
+
type LessThanEqual = squirrel.LtOrEq
|
|
30
|
+
|
|
31
|
+
// GreaterThan is for the greater than syntax in where selectors.
|
|
32
|
+
type GreaterThan = squirrel.Gt
|
|
33
|
+
|
|
34
|
+
// GreaterThanEqual is for the greater than or equal syntax in where selectors.
|
|
35
|
+
type GreaterThanEqual = squirrel.GtOrEq
|
|
36
|
+
|
|
37
|
+
// Like is for the like syntax in where selectors.
|
|
38
|
+
type Like = squirrel.Like
|
|
39
|
+
|
|
40
|
+
// NotLike is for the not like syntax in where selectors.
|
|
41
|
+
type NotLike = squirrel.NotLike
|
package/go/psql/utils.go
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
package psql
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"reflect"
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
// GetEntries gets the database column/value entries from the given struct.
|
|
8
|
+
// It extracts the column names from the "db" tag in the struct.
|
|
9
|
+
// Omits the given database columns.
|
|
10
|
+
func GetEntries(v any, omit ...string) Entries {
|
|
11
|
+
// convert the struct into a reflect value
|
|
12
|
+
values := reflect.ValueOf(v)
|
|
13
|
+
types := values.Type()
|
|
14
|
+
|
|
15
|
+
// initiate helper variables
|
|
16
|
+
numFields := values.NumField()
|
|
17
|
+
entries := make(Entries, numFields)
|
|
18
|
+
|
|
19
|
+
// fill the entries map
|
|
20
|
+
for i := range numFields {
|
|
21
|
+
tag := types.Field(i).Tag.Get("db")
|
|
22
|
+
val := values.Field(i).Interface()
|
|
23
|
+
entries[tag] = val
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// delete any omitted columns
|
|
27
|
+
for _, tag := range omit {
|
|
28
|
+
delete(entries, tag)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return entries
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// GetSelectAllQuery builds and returns the query and arguments to perform a select all query on the given table.
|
|
35
|
+
// Provide a where map to specify which rows to select. A nil value will select all rows.
|
|
36
|
+
func GetSelectAllQuery(table string, where ...Where) (string, []any, error) {
|
|
37
|
+
builder := sq.Select("*").From(table)
|
|
38
|
+
for _, mp := range where {
|
|
39
|
+
builder = builder.Where(mp)
|
|
40
|
+
}
|
|
41
|
+
return builder.ToSql()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// GetSelectColumnQuery builds and returns the query and arguments to perform a select column query on the given table.
|
|
45
|
+
// Provide a where map to specify which rows to select. A nil value will select all rows.
|
|
46
|
+
func GetSelectColumnQuery(table string, column string, where ...Where) (string, []any, error) {
|
|
47
|
+
builder := sq.Select(column).From(table)
|
|
48
|
+
for _, mp := range where {
|
|
49
|
+
builder = builder.Where(mp)
|
|
50
|
+
}
|
|
51
|
+
return builder.ToSql()
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// GetInsertQuery builds and returns the query and arguments to perform an insert query on the given table.
|
|
55
|
+
// Get the table entries using the "GetEntries" method.
|
|
56
|
+
func GetInsertQuery(table string, entries Entries) (string, []any, error) {
|
|
57
|
+
builder := sq.Insert(table).SetMap(entries).Suffix(returnAllSuffix)
|
|
58
|
+
return builder.ToSql()
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// GetUpdateQuery builds and returns the query and arguments to perform an update query on the given table.
|
|
62
|
+
// Provide a where map to specify which rows to update.
|
|
63
|
+
// Get the table entries using the "GetEntries" method.
|
|
64
|
+
func GetUpdateQuery(table string, entries Entries, where ...Where) (string, []any, error) {
|
|
65
|
+
builder := sq.Update(table).SetMap(entries)
|
|
66
|
+
for _, mp := range where {
|
|
67
|
+
builder = builder.Where(mp)
|
|
68
|
+
}
|
|
69
|
+
builder = builder.Suffix(returnAllSuffix)
|
|
70
|
+
return builder.ToSql()
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// GetDeleteQuery builds and returns the query and arguments to perform a delete query on the given table.
|
|
74
|
+
// Provide a where map to specify which rows to delete.
|
|
75
|
+
func GetDeleteQuery(table string, where ...Where) (string, []any, error) {
|
|
76
|
+
builder := sq.Delete(table)
|
|
77
|
+
for _, mp := range where {
|
|
78
|
+
builder = builder.Where(mp)
|
|
79
|
+
}
|
|
80
|
+
return builder.ToSql()
|
|
81
|
+
}
|
package/go.mod
CHANGED
|
@@ -3,6 +3,12 @@ module github.com/RivasCVA/dt-idl
|
|
|
3
3
|
go 1.23
|
|
4
4
|
|
|
5
5
|
require (
|
|
6
|
+
github.com/Masterminds/squirrel v1.5.4
|
|
6
7
|
github.com/golang-jwt/jwt/v5 v5.2.2
|
|
7
8
|
github.com/google/uuid v1.6.0
|
|
8
9
|
)
|
|
10
|
+
|
|
11
|
+
require (
|
|
12
|
+
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
|
|
13
|
+
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
|
|
14
|
+
)
|
package/go.sum
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
+
github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM=
|
|
2
|
+
github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10=
|
|
3
|
+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
4
|
+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
1
5
|
github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8=
|
|
2
6
|
github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
|
|
3
7
|
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
|
4
8
|
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
9
|
+
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw=
|
|
10
|
+
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
|
|
11
|
+
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk=
|
|
12
|
+
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw=
|
|
13
|
+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
|
14
|
+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
|
15
|
+
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
|
|
16
|
+
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
package/package.json
CHANGED
package/ts/types/types.ts
CHANGED
|
@@ -31,6 +31,7 @@ export type GetStockHistoryQueryParams = MarketServiceOperations['getStockHistor
|
|
|
31
31
|
// Trade Service Types
|
|
32
32
|
export type Portfolio = TradeServiceSchemas['Portfolio'];
|
|
33
33
|
export type PortfolioType = TradeServiceSchemas['PortfolioType'];
|
|
34
|
+
export type UpdatePortfolioPayload = TradeServiceSchemas['UpdatePortfolioPayload'];
|
|
34
35
|
export type AddOrderPayload = TradeServiceSchemas['AddOrderPayload'];
|
|
35
36
|
export type Order = TradeServiceSchemas['Order'];
|
|
36
37
|
export type OrderType = TradeServiceSchemas['OrderType'];
|