Skip to content

Commit

Permalink
UserEntities method added to library
Browse files Browse the repository at this point in the history
UserEntities tests implemented
Version of library increased
  • Loading branch information
Dmitriy Kuragin committed Mar 2, 2016
1 parent 1cec65e commit e2bc0f9
Show file tree
Hide file tree
Showing 28 changed files with 591 additions and 184 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,5 @@ Pods
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control?
#
# Pods/

Pods/
Podfile.lock
35 changes: 29 additions & 6 deletions ApiAI.podspec.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ApiAI",
"version": "0.4.5",
"version": "0.4.6",
"license": "MIT",
"summary": "The API.AI iOS SDK makes it easy to integrate speech recognition with API.AI natural language processing API on iOS devices.",
"homepage": "http://api.ai/",
Expand All @@ -10,7 +10,7 @@

"source": {
"git": "https://github.com/api-ai/api-ai-ios-sdk.git",
"tag": "v0.4.5"
"tag": "v0.4.6"
},

"requires_arc": true,
Expand Down Expand Up @@ -192,10 +192,33 @@
"requires_arc": true,

"dependencies": {
"ApiAI/Core": [
"~> 1.1.0"
]
"ApiAI/Core": []
}
},
{
"name": "UserEntities",

"source_files": [
"ApiAI/UserEntities",
"ApiAI/UserEntities/Classes/**/*.{h,m}",
"ApiAI/UserEntities/Private/**/*.{h,m,c}"
],

"resources": [],

"public_header_files": [
"ApiAI/UserEntities/Classes/**/*.{h}"
],

"ios": {
"frameworks": ["Foundation"]
},

"requires_arc": true,

"dependencies": {
"ApiAI/Core": []
}
}
}
]
}
30 changes: 24 additions & 6 deletions ApiAI.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@
/* Begin PBXBuildFile section */
5801F1271B0F33790016DE2A /* AIRequestEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 5801F1261B0F33790016DE2A /* AIRequestEntity.m */; };
5801F12B1B0F3E250016DE2A /* AIRequestEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 5801F12A1B0F3E250016DE2A /* AIRequestEntry.m */; };
581409F21C86B1500014BBE8 /* AISessionIdentifierStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 581409F11C86B1500014BBE8 /* AISessionIdentifierStorage.m */; };
581409F51C86B8290014BBE8 /* AIQueryRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 581409F41C86B8290014BBE8 /* AIQueryRequest.m */; };
581409F81C86C7E30014BBE8 /* UserEntitiesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 581409F71C86C7E30014BBE8 /* UserEntitiesTests.m */; };
581AB3AF1A245D8300E8A190 /* AIVoiceRequestButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 581AB39D1A245D8300E8A190 /* AIVoiceRequestButton.m */; };
581AB3B01A245D8300E8A190 /* AIEllipseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 581AB3A81A245D8300E8A190 /* AIEllipseView.m */; };
581AB3B11A245D8300E8A190 /* AIProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 581AB3AA1A245D8300E8A190 /* AIProgressView.m */; };
Expand Down Expand Up @@ -76,7 +79,7 @@
58D697061B679D0300693710 /* AISoundRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = 58D696FB1B679D0300693710 /* AISoundRecorder.m */; };
58D697071B679D0300693710 /* AISoundRecorderConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 58D696FD1B679D0300693710 /* AISoundRecorderConstants.m */; };
58D6970B1B67A19200693710 /* AIResponseConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 58D6970A1B67A19200693710 /* AIResponseConstants.m */; };
58D6975E1B67ACD300693710 /* AIRequest+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 58D6975D1B67ACD300693710 /* AIRequest+Private.m */; };
58D6975E1B67ACD300693710 /* AIQueryRequest+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 58D6975D1B67ACD300693710 /* AIQueryRequest+Private.m */; };
58D90EDE1A42E41E00A937EC /* ApiAI.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 58C2A83419BEE0E000632C2F /* ApiAI.h */; };
58D90EDF1A42E64400A937EC /* AIConfiguration.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 58C2A83319BEE0E000632C2F /* AIConfiguration.h */; };
58D90EE01A42E64400A937EC /* AIRequest.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 58C2A83619BEE0E000632C2F /* AIRequest.h */; };
Expand Down Expand Up @@ -137,6 +140,12 @@
5801F1291B0F3E250016DE2A /* AIRequestEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRequestEntry.h; sourceTree = "<group>"; };
5801F12A1B0F3E250016DE2A /* AIRequestEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIRequestEntry.m; sourceTree = "<group>"; };
5801F12C1B0F3E340016DE2A /* AIRequestEntity_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRequestEntity_Private.h; sourceTree = "<group>"; };
581409F01C86B1500014BBE8 /* AISessionIdentifierStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AISessionIdentifierStorage.h; sourceTree = "<group>"; };
581409F11C86B1500014BBE8 /* AISessionIdentifierStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AISessionIdentifierStorage.m; sourceTree = "<group>"; };
581409F31C86B8290014BBE8 /* AIQueryRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIQueryRequest.h; sourceTree = "<group>"; };
581409F41C86B8290014BBE8 /* AIQueryRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIQueryRequest.m; sourceTree = "<group>"; };
581409F61C86B9AC0014BBE8 /* AIRequest_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIRequest_Private.h; sourceTree = "<group>"; };
581409F71C86C7E30014BBE8 /* UserEntitiesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserEntitiesTests.m; sourceTree = "<group>"; };
581AB39C1A245D8300E8A190 /* AIVoiceRequestButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIVoiceRequestButton.h; sourceTree = "<group>"; };
581AB39D1A245D8300E8A190 /* AIVoiceRequestButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIVoiceRequestButton.m; sourceTree = "<group>"; };
581AB39E1A245D8300E8A190 /* AIVoiceRequestButton.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AIVoiceRequestButton.xib; sourceTree = "<group>"; };
Expand Down Expand Up @@ -234,8 +243,8 @@
58D697081B679D7300693710 /* ApiAI.podspec.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = ApiAI.podspec.json; sourceTree = "<group>"; };
58D697091B67A19200693710 /* AIResponseConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AIResponseConstants.h; sourceTree = "<group>"; };
58D6970A1B67A19200693710 /* AIResponseConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AIResponseConstants.m; sourceTree = "<group>"; };
58D6975C1B67ACD300693710 /* AIRequest+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AIRequest+Private.h"; sourceTree = "<group>"; };
58D6975D1B67ACD300693710 /* AIRequest+Private.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "AIRequest+Private.m"; sourceTree = "<group>"; };
58D6975C1B67ACD300693710 /* AIQueryRequest+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AIQueryRequest+Private.h"; sourceTree = "<group>"; };
58D6975D1B67ACD300693710 /* AIQueryRequest+Private.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "AIQueryRequest+Private.m"; sourceTree = "<group>"; };
58ECF07519C4388F00EF5291 /* ApiAI_ApiAI_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApiAI_ApiAI_Private.h; sourceTree = "<group>"; };
58ECF07619C4399400EF5291 /* AIDataService_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIDataService_Private.h; sourceTree = "<group>"; };
58F060281A8CAEFE002615DF /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
Expand Down Expand Up @@ -486,6 +495,8 @@
5869BCFC1B37E505000B99B7 /* AINullabilityDefines.h */,
5862C2D41BAEABE1007C6C4F /* AIRequestContext.h */,
5862C2D51BAEABE1007C6C4F /* AIRequestContext.m */,
581409F31C86B8290014BBE8 /* AIQueryRequest.h */,
581409F41C86B8290014BBE8 /* AIQueryRequest.m */,
);
path = Classes;
sourceTree = "<group>";
Expand All @@ -498,8 +509,11 @@
58C2A85819BEE0E000632C2F /* Streamer */,
58ECF07519C4388F00EF5291 /* ApiAI_ApiAI_Private.h */,
58ECF07619C4399400EF5291 /* AIDataService_Private.h */,
58D6975C1B67ACD300693710 /* AIRequest+Private.h */,
58D6975D1B67ACD300693710 /* AIRequest+Private.m */,
58D6975C1B67ACD300693710 /* AIQueryRequest+Private.h */,
58D6975D1B67ACD300693710 /* AIQueryRequest+Private.m */,
581409F01C86B1500014BBE8 /* AISessionIdentifierStorage.h */,
581409F11C86B1500014BBE8 /* AISessionIdentifierStorage.m */,
581409F61C86B9AC0014BBE8 /* AIRequest_Private.h */,
);
path = Private;
sourceTree = "<group>";
Expand Down Expand Up @@ -643,6 +657,7 @@
588D23AA1AFB3D21008289F1 /* response.json */,
58F0604D1A8CB366002615DF /* ApiAITests.m */,
58AA07AD1B39494900A259D9 /* AIVADTest.m */,
581409F71C86C7E30014BBE8 /* UserEntitiesTests.m */,
58F0604B1A8CB366002615DF /* Supporting Files */,
);
path = ApiAITests;
Expand Down Expand Up @@ -853,7 +868,9 @@
58C2A86219BEE0E000632C2F /* AIDataService.m in Sources */,
58FF3A2D1C43BD240038BD9D /* AIUserEntity.m in Sources */,
5801F12B1B0F3E250016DE2A /* AIRequestEntry.m in Sources */,
581409F51C86B8290014BBE8 /* AIQueryRequest.m in Sources */,
588D23B21AFB4059008289F1 /* AIResponseContext.m in Sources */,
581409F21C86B1500014BBE8 /* AISessionIdentifierStorage.m in Sources */,
588D239F1AFB3C95008289F1 /* AIResponseResult.m in Sources */,
588D239D1AFB3C95008289F1 /* AIResponseMetadata.m in Sources */,
58D697021B679D0300693710 /* EnergyAndZeroCross.m in Sources */,
Expand All @@ -869,7 +886,7 @@
58D697071B679D0300693710 /* AISoundRecorderConstants.m in Sources */,
581AB3B01A245D8300E8A190 /* AIEllipseView.m in Sources */,
5801F1271B0F33790016DE2A /* AIRequestEntity.m in Sources */,
58D6975E1B67ACD300693710 /* AIRequest+Private.m in Sources */,
58D6975E1B67ACD300693710 /* AIQueryRequest+Private.m in Sources */,
588D23AE1AFB3E26008289F1 /* AIRequest+AIMappedResponse.m in Sources */,
58C2A85D19BEE0E000632C2F /* AITextRequest.m in Sources */,
);
Expand All @@ -880,6 +897,7 @@
buildActionMask = 2147483647;
files = (
588D23AF1AFB3F24008289F1 /* AIRequest+AIMappedResponse.m in Sources */,
581409F81C86C7E30014BBE8 /* UserEntitiesTests.m in Sources */,
588D23A91AFB3CAB008289F1 /* AIDatePeriodFormatter.m in Sources */,
588D23A41AFB3CA1008289F1 /* AIResponseFulfillment.m in Sources */,
588D23A81AFB3CA1008289F1 /* AIResponseStatus.m in Sources */,
Expand Down
8 changes: 8 additions & 0 deletions ApiAI.xcodeproj/xcshareddata/xcschemes/ApiAITests.xcscheme
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@
BlueprintName = "ApiAITests"
ReferencedContainer = "container:ApiAI.xcodeproj">
</BuildableReference>
<SkippedTests>
<Test
Identifier = "AIVADTest">
</Test>
<Test
Identifier = "ApiAITests">
</Test>
</SkippedTests>
</TestableReference>
</Testables>
<MacroExpansion>
Expand Down
90 changes: 90 additions & 0 deletions ApiAI/Classes/AIQueryRequest.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
//
// AIQueryRequest.h
// ApiAI
//
// Created by Kuragin Dmitriy on 02/03/16.
// Copyright © 2016 Kuragin Dmitriy. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "AIRequest.h"

@interface AIQueryRequest : AIRequest

/*!
@property version
@discussion current version of apiai, default upper version.
*/

@property(nonatomic, copy) NSString *version;

/*!
@property contexts
@discussion array of strings - List of contexts for the query that are enforced from the client. Default in nil.
*/

@property(nonatomic, copy) NSArray AI_GENERICS_1(NSString *) *contexts DEPRECATED_MSG_ATTRIBUTE("Use requestContexts");

/*!
@property requestContexts
@discussion array of context objects - List of contexts for the query that are enforced from the client. Default in nil.
*/

@property(nonatomic, copy) NSArray AI_GENERICS_1(AIRequestContext *) *requestContexts;

/*!
@property entities
@discussion array of entity objects - List of entities for the query that are enforced from the client. Default in nil.
*/
@property(nonatomic, copy) NSArray AI_GENERICS_1(AIRequestEntity *) *entities;

/*!
@property resetContexts
@discussion Possible values: YES, NO. Add new contexts to the active contexts or forget old contexts and use only supplied with the query. Default is NO.
*/
@property(nonatomic, assign) BOOL resetContexts;

/*!
@property sessionId
@discussion A string token up to 36 symbols long, used to identify the client and to manage contexts per client. Default is md5 checksum from identifierForVendor + bundleIdentifier (maximum length 36 symbols)
*/
@property(nonatomic, copy) NSString *sessionId;

/*!
@property lang
@discussion Language of current client. Default is ApiAI lang propery.
*/
@property(nonatomic, copy) NSString *lang;

/*!
@property timeZone
@discussion Current timezone. Default system timetoze.
*/
@property(nonatomic, copy) NSTimeZone *timeZone;

@end
47 changes: 47 additions & 0 deletions ApiAI/Classes/AIQueryRequest.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
//
// AIQueryRequest.m
// ApiAI
//
// Created by Kuragin Dmitriy on 02/03/16.
// Copyright © 2016 Kuragin Dmitriy. All rights reserved.
//

#import "AIQueryRequest.h"
#import "AISessionIdentifierStorage.h"

@implementation AIQueryRequest

- (void)setContexts:(NSArray *)contexts
{
_contexts = [contexts copy];

NSMutableArray AI_GENERICS_1(AIRequestContext *) *requestContexts = [NSMutableArray array];

[contexts enumerateObjectsUsingBlock:^(id __AI_NONNULL obj, NSUInteger idx, BOOL * __AI_NONNULL stop) {
AIRequestContext *requestContext = [[AIRequestContext alloc] initWithName:obj
andParameters:nil];
[requestContexts addObject:requestContext];
}];

self.requestContexts = requestContexts;
}

- (NSString *)sessionId
{
if (!_sessionId) {
_sessionId = [AISessionIdentifierStorage defaulSessionIdentifier];
}

return _sessionId;
}

- (NSTimeZone *)timeZone
{
if (!_timeZone) {
_timeZone = [NSTimeZone localTimeZone];
}

return _timeZone;
}

@end
Loading

0 comments on commit e2bc0f9

Please sign in to comment.