fix:added models

This commit is contained in:
Altynbek 2019-04-25 19:17:50 +06:00
parent 6556bc0cb8
commit f15ea6600e
8 changed files with 303 additions and 11 deletions

8
.idea/go-holidayapi.iml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/misc.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/go-holidayapi.iml" filepath="$PROJECT_DIR$/.idea/go-holidayapi.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

242
.idea/workspace.xml generated Normal file
View file

@ -0,0 +1,242 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="881a79e0-96af-4431-ad87-340197b097ee" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/custom_time.go" afterDir="false" />
<change afterPath="$PROJECT_DIR$/holidayapi_test.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/holidayapi.go" beforeDir="false" afterPath="$PROJECT_DIR$/holidayapi.go" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/holidayapi.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="484">
<caret line="46" column="20" lean-forward="true" selection-start-line="46" selection-start-column="20" selection-end-line="46" selection-end-column="20" />
<folding>
<element signature="e#20#91#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/custom_time.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="14" selection-start-line="14" selection-end-line="14" />
<folding>
<element signature="e#20#49#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/holidayapi_test.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="14" column="5" lean-forward="true" selection-start-line="14" selection-start-column="5" selection-end-line="14" selection-end-column="5" />
<folding>
<element signature="e#20#48#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Go File" />
</list>
</option>
</component>
<component name="GOROOT" path="/snap/go/3540" />
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/holidayapi.go" />
<option value="$PROJECT_DIR$/custom_time.go" />
<option value="$PROJECT_DIR$/holidayapi_test.go" />
</list>
</option>
</component>
<component name="ProjectConfigurationFiles">
<option name="files">
<list>
<option value="$PROJECT_DIR$/.idea/go-holidayapi.iml" />
<option value="$PROJECT_DIR$/.idea/misc.xml" />
<option value="$PROJECT_DIR$/.idea/modules.xml" />
<option value="$PROJECT_DIR$/.idea/vcs.xml" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="y" value="-2" />
<option name="width" value="1080" />
<option name="height" value="1922" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="go-holidayapi" type="b2602c69:ProjectViewProjectNode" />
<item name="go-holidayapi" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="DefaultGoTemplateProperty" value="Go File" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="go.gopath.indexing.explicitly.defined" value="true" />
<property name="go.import.settings.migrated" value="true" />
<property name="go.sdk.automatically.set" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="nodejs_package_manager_path" value="npm" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" type="GoTestRunConfiguration" factoryName="Go Test" temporary="true" nameIsGenerated="true">
<module name="go-holidayapi" />
<working_directory value="$PROJECT_DIR$" />
<framework value="gotest" />
<kind value="PACKAGE" />
<package value="github.com/gelleson/go-holidayapi" />
<directory value="$PROJECT_DIR$/" />
<filePath value="$PROJECT_DIR$/" />
<pattern value="^TestHoliday$" />
<method v="2" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Go Test.TestHoliday in github.com/gelleson/go-holidayapi" />
</list>
</recent_temporary>
</component>
<component name="TestHistory">
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 03m 19s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 03m 55s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 05m 28s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 05m 53s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 06m 12s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 06m 32s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 07m 39s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 08m 40s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 11m 40s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
<history-entry file="TestHoliday_in_github_com_gelleson_go-holidayapi - 2019.04.25 at 19h 13m 23s.xml">
<configuration name="TestHoliday in github.com/gelleson/go-holidayapi" configurationId="GoTestRunConfiguration" />
</history-entry>
</component>
<component name="ToolWindowManager">
<frame x="0" y="-2" width="1080" height="1922" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Favorites" side_tool="true" />
<window_info content_ui="combo" id="Project" order="0" type="SLIDING" weight="0.24951644" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Docker" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" />
<window_info anchor="bottom" id="Version Control" />
<window_info anchor="bottom" id="Terminal" />
<window_info anchor="bottom" id="Event Log" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32975113" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="right" id="Database" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/custom_time.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="14" selection-start-line="14" selection-end-line="14" />
<folding>
<element signature="e#20#49#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/holidayapi.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="484">
<caret line="46" column="20" lean-forward="true" selection-start-line="46" selection-start-column="20" selection-end-line="46" selection-end-column="20" />
<folding>
<element signature="e#20#91#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/holidayapi_test.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="14" column="5" lean-forward="true" selection-start-line="14" selection-start-column="5" selection-end-line="14" selection-end-column="5" />
<folding>
<element signature="e#20#48#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View file

@ -2,6 +2,8 @@ package holidayapi
import (
"encoding/json"
"github.com/pkg/errors"
"github.com/simplereach/timeutils"
"io/ioutil"
"net/http"
"net/url"
@ -21,8 +23,27 @@ func NewV1(key string) *V1 {
return v1
}
func (v1 *V1) Holidays(args map[string]interface{}) (map[string]interface{}, error) {
var data map[string]interface{}
type Respone struct {
Status int32 `json:"status"`
Requests Request `json:"requests"`
Holidays []Holiday `json:"holidays"`
}
type Request struct {
Used int32 `json:"used"`
Available int32 `json:"available"`
Resets timeutils.Time `json:"resets"`
}
type Holiday struct {
Name string `json:"name"`
Date timeutils.Time `json:"date,omniempty"`
Observed timeutils.Time `json:"observed"`
Public bool `json:"public"`
}
func (v1 *V1) Holidays(args map[string]string) (Respone, error) {
var data Respone
if _, ok := args["key"]; !ok {
args["key"] = v1.Key
@ -31,13 +52,13 @@ func (v1 *V1) Holidays(args map[string]interface{}) (map[string]interface{}, err
params := url.Values{}
for k, v := range args {
params.Add(k, v.(string))
params.Add(k, v)
}
resp, err := http.Get(v1.Url + params.Encode())
if err != nil {
return nil, err
return Respone{}, err
}
defer resp.Body.Close()
@ -45,17 +66,16 @@ func (v1 *V1) Holidays(args map[string]interface{}) (map[string]interface{}, err
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
return Respone{}, err
}
json.Unmarshal([]byte(string(body)), &data)
err = json.Unmarshal(body, &data)
if err != nil {
return Respone{}, err
}
if resp.StatusCode != 200 {
_, ok := data["error"]
if !ok {
data["error"] = "Unknown error."
}
return Respone{}, errors.New("Unknown error!")
}
return data, nil

1
holidayapi_test.go Normal file
View file

@ -0,0 +1 @@
package holidayapi

1
models.go Normal file
View file

@ -0,0 +1 @@
package holidayapi