added time

This commit is contained in:
Darko Luketic 2018-04-03 22:11:59 +02:00
parent 054dc5afce
commit f89589d0db
8 changed files with 74 additions and 14 deletions

View File

@ -20,8 +20,7 @@
"prefix": "icod", "prefix": "icod",
"styles": [ "styles": [
"styles.scss", "styles.scss",
"../node_modules/font-awesome/css/font-awesome.min.css", "../node_modules/primeng/resources/themes/darkness/theme.css",
"../node_modules/primeng/resources/themes/omega/theme.css",
"../node_modules/primeng/resources/primeng.min.css" "../node_modules/primeng/resources/primeng.min.css"
], ],
"scripts": [], "scripts": [],

View File

@ -0,0 +1 @@
$fa-font-path : '../node_modules/font-awesome/fonts';

View File

@ -6,5 +6,5 @@ import { Component } from '@angular/core';
styleUrls: ['./app.component.scss'] styleUrls: ['./app.component.scss']
}) })
export class AppComponent { export class AppComponent {
title = 'icod';
} }

View File

@ -7,17 +7,31 @@ import { ServiceWorkerModule } from '@angular/service-worker';
import {AppComponent} from './app.component'; import {AppComponent} from './app.component';
import {environment} from '../environments/environment'; import {environment} from '../environments/environment';
import {FormsModule} from '@angular/forms';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {HttpClientModule} from '@angular/common/http';
import {SplitButtonModule, ToolbarModule} from 'primeng/primeng';
import {MenuModule} from 'primeng/menu';
import { DataComponent } from './components/data/data.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
AppComponent AppComponent,
DataComponent
], ],
imports: [ imports: [
BrowserModule, BrowserModule,
AppRoutingModule, AppRoutingModule,
ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production }) ServiceWorkerModule.register('/ngsw-worker.js', {enabled: environment.production}),
FormsModule,
BrowserAnimationsModule,
HttpClientModule,
ToolbarModule,
SplitButtonModule,
MenuModule,
], ],
providers: [], providers: [],
bootstrap: [AppComponent] bootstrap: [AppComponent]
}) })
export class AppModule { } export class AppModule {
}

View File

@ -1 +1,3 @@
@import "~bootstrap/scss/bootstrap"; /*@import "~bootstrap/scss/bootstrap";*/
@import "variables";
@import "~font-awesome/scss/font-awesome";

View File

@ -3,6 +3,8 @@ package handler
import ( import (
"strconv" "strconv"
"time"
"git.icod.de/dalu/refdata/api/repo" "git.icod.de/dalu/refdata/api/repo"
"git.icod.de/dalu/refdata/model" "git.icod.de/dalu/refdata/model"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@ -57,6 +59,7 @@ func (h *Handler) ListData(cx *gin.Context) {
age := cx.Query("age") age := cx.Query("age")
price := cx.Query("price") price := cx.Query("price")
enabled := cx.Query("enabled") enabled := cx.Query("enabled")
when := cx.Query("when")
// string // string
if name == "1" { if name == "1" {
@ -109,6 +112,7 @@ func (h *Handler) ListData(cx *gin.Context) {
if price == "1" { if price == "1" {
p.Price = true p.Price = true
p.PriceQuery = repo.DataPriceQuery{} p.PriceQuery = repo.DataPriceQuery{}
p.PriceQuery.Operation = cx.Query("price.operation")
from, e := strconv.ParseFloat(cx.Query("age.from"), 64) from, e := strconv.ParseFloat(cx.Query("age.from"), 64)
if e != nil { if e != nil {
cx.AbortWithStatus(400) cx.AbortWithStatus(400)
@ -136,6 +140,25 @@ func (h *Handler) ListData(cx *gin.Context) {
} }
} }
// time
if when == "1" {
p.When = true
p.WhenQuery = repo.DataWhenQuery{}
p.WhenQuery.Operation = cx.Query("when.operation")
from, e := time.Parse(time.RFC3339, cx.Query("when.from"))
if e != nil {
cx.AbortWithStatus(400)
return
}
to, e := time.Parse(time.RFC3339, cx.Query("when.to"))
if e != nil {
cx.AbortWithStatus(400)
return
}
p.WhenQuery.From = from
p.WhenQuery.To = to
}
m, e := h.dataRepo.List(p) m, e := h.dataRepo.List(p)
if e != nil { if e != nil {
cx.AbortWithError(500, e) cx.AbortWithError(500, e)

View File

@ -4,6 +4,8 @@ import (
"errors" "errors"
"fmt" "fmt"
"time"
"git.icod.de/dalu/refdata/model" "git.icod.de/dalu/refdata/model"
"github.com/globalsign/mgo" "github.com/globalsign/mgo"
"github.com/globalsign/mgo/bson" "github.com/globalsign/mgo/bson"
@ -54,6 +56,18 @@ type DataEnabledQuery struct {
Query bool Query bool
} }
// refid
type DataRefIdQuery struct {
Query string
}
// time
type DataWhenQuery struct {
Operation string
From time.Time
To time.Time
}
type DataParams struct { type DataParams struct {
Start int // list only Start int // list only
Limit int // list only Limit int // list only
@ -66,6 +80,7 @@ type DataParams struct {
Age bool Age bool
Price bool Price bool
Enabled bool Enabled bool
When bool
IdQuery DataIdQuery // get only IdQuery DataIdQuery // get only
NameQuery DataNameQuery NameQuery DataNameQuery
@ -74,6 +89,7 @@ type DataParams struct {
AgeQuery DataAgeQuery AgeQuery DataAgeQuery
PriceQuery DataPriceQuery PriceQuery DataPriceQuery
EnabledQuery DataEnabledQuery EnabledQuery DataEnabledQuery
WhenQuery DataWhenQuery
} }
type DataRepository struct { type DataRepository struct {

View File

@ -1,6 +1,10 @@
package model package model
import "github.com/globalsign/mgo/bson" import (
"time"
"github.com/globalsign/mgo/bson"
)
type Data struct { type Data struct {
Id bson.ObjectId `bson:"_id,omitempty" json:"id"` Id bson.ObjectId `bson:"_id,omitempty" json:"id"`
@ -9,4 +13,5 @@ type Data struct {
Location string `bson:"location" json:"location"` Location string `bson:"location" json:"location"`
Age float64 `bson:"age,omitempty" json:"age,omitempty"` Age float64 `bson:"age,omitempty" json:"age,omitempty"`
Price float64 `bson:"price,omitempty" json:"price,omitempty"` Price float64 `bson:"price,omitempty" json:"price,omitempty"`
When time.Time `bson:"when" json:"when"`
} }