Ejemplo n.º 1
0
    def method_parameters(api):
        parameters = []

        # Create request object parameters
        request_object = iOSTemplateMethods.get_api_request_object(api)
        if request_object:
            parameters.extend(
                SwiftParameter.generate_field_parameters(request_object))
            parameters.extend(
                SwiftParameter.generate_relationship_parameters(
                    request_object))

        # Add id parameter if we need it
        id_parameter = SwiftParameter.create_id_parameter(
            api.url_path, request_object)
        if id_parameter:
            parameters.append(id_parameter)

        # Add required RestKit parameters
        parameters.extend([
            SwiftParameter(name="success", swift_type="RestKitSuccess"),
            SwiftParameter(name="failure", swift_type="RestKitError")
        ])

        return SwiftTemplateMethods.create_parameter_signature(parameters)
Ejemplo n.º 2
0
 def test_create_swift_parameter_signature(self):
     parameters = [
         SwiftParameter("title", "String"),
         SwiftParameter("userId", "Int")
     ]
     parameter_signature = SwiftTemplateMethods.create_parameter_signature(parameters)
     self.assertEqual(parameter_signature, "title: String, userId: Int")
Ejemplo n.º 3
0
    def test_get_swift_data_type(self):
        array_field = Field("message", ["string", "array"])
        self.assertEqual(SwiftParameter.get_swift_data_type(array_field),
                         "Array")

        text_field = Field("title", ["string", "optional"])
        self.assertEqual(SwiftParameter.get_swift_data_type(text_field),
                         "String")
Ejemplo n.º 4
0
    def test_create_swift_id_parameter(self):
        request_object = DataObject("$postRequest", {
            "title": "string"
        })
        self.assertIsNone(SwiftParameter.create_id_parameter("/post/", request_object))
        self.assertIsNotNone(SwiftParameter.create_id_parameter("/post/:id/", request_object))

        request_object = DataObject("$postUpdateRequest", {
            "id": "int,primarykey",
            "title": "string"
        })
        self.assertIsNone(SwiftParameter.create_id_parameter("/post/:id/", request_object))
Ejemplo n.º 5
0
    def test_create_swift_id_parameter(self):
        request_object = DataObject("$postRequest", {"title": "string"})
        self.assertIsNone(
            SwiftParameter.create_id_parameter("/post/", request_object))
        self.assertIsNotNone(
            SwiftParameter.create_id_parameter("/post/:id/", request_object))

        request_object = DataObject("$postUpdateRequest", {
            "id": "int,primarykey",
            "title": "string"
        })
        self.assertIsNone(
            SwiftParameter.create_id_parameter("/post/:id/", request_object))
Ejemplo n.º 6
0
 def test_generate_swift_field_parameters(self):
     request_object = DataObject("$postUpdateRequest", {
         "id": "int,primarykey",
         "title": "string",
         "tags": "M2M,$tagRequest"
     })
     parameters = SwiftParameter.generate_field_parameters(request_object)
     self.assertEqual(parameters[0].name, "id")
     self.assertEqual(parameters[0].swift_type, "Int")
     self.assertEqual(parameters[1].name, "title")
     self.assertEqual(parameters[1].swift_type, "String")
Ejemplo n.º 7
0
 def test_generate_swift_field_parameters(self):
     request_object = DataObject("$postUpdateRequest", {
         "id": "int,primarykey",
         "title": "string",
         "tags": "M2M,$tagRequest"
     })
     parameters = SwiftParameter.generate_field_parameters(request_object)
     self.assertEqual(parameters[0].name, "id")
     self.assertEqual(parameters[0].swift_type, "Int")
     self.assertEqual(parameters[1].name, "title")
     self.assertEqual(parameters[1].swift_type, "String")
Ejemplo n.º 8
0
    def method_parameters(api):
        parameters = []

        # Create request object parameters
        request_object = iOSTemplateMethods.get_api_request_object(api)
        if request_object:
            parameters.extend(SwiftParameter.generate_field_parameters(request_object))
            parameters.extend(SwiftParameter.generate_relationship_parameters(request_object))

        # Add id parameter if we need it
        id_parameter = SwiftParameter.create_id_parameter(api.url_path, request_object)
        if id_parameter:
            parameters.append(id_parameter)

        # Add required RestKit parameters
        parameters.extend([
            SwiftParameter(name="success",
                           swift_type="RestKitSuccess"),

            SwiftParameter(name="failure",
                           swift_type="RestKitError")
        ])

        return SwiftTemplateMethods.create_parameter_signature(parameters)
Ejemplo n.º 9
0
 def test_generate_swift_relationship_parameters(self):
     schema = create_dynamic_schema({
         "$userRequest": {
             "username": "******",
             "profile": "O2O,$profileRequest",
             "tags": "M2M,$tagRequest"
         },
         "$profileRequest": {},
         "$tagRequest": {}
     }, [])
     request_object = schema.data_objects['$userRequest']
     parameters = SwiftParameter.generate_relationship_parameters(request_object)
     self.assertEqual(parameters[0].name, "profile")
     self.assertEqual(parameters[0].swift_type, "ProfileRequest")
     self.assertEqual(parameters[1].name, "tags")
     self.assertEqual(parameters[1].swift_type, "NSOrderedSet")
Ejemplo n.º 10
0
 def test_generate_swift_relationship_parameters(self):
     schema = create_dynamic_schema(
         {
             "$userRequest": {
                 "username": "******",
                 "profile": "O2O,$profileRequest",
                 "tags": "M2M,$tagRequest"
             },
             "$profileRequest": {},
             "$tagRequest": {}
         }, [])
     request_object = schema.data_objects['$userRequest']
     parameters = SwiftParameter.generate_relationship_parameters(
         request_object)
     self.assertEqual(parameters[0].name, "profile")
     self.assertEqual(parameters[0].swift_type, "ProfileRequest")
     self.assertEqual(parameters[1].name, "tags")
     self.assertEqual(parameters[1].swift_type, "NSOrderedSet")
Ejemplo n.º 11
0
    def method_name(api):
        # First create camel cased name from snake case
        method_name_string = ""
        for part in re.split(r'[/_]+', api.url_path):
            if part in [":id", "theID"]:
                continue
            else:
                method_name_string += part.capitalize()

        first_parameter_name = "Success"
        request_object = iOSTemplateMethods.get_api_request_object(api)
        if request_object and len(request_object.properties()) > 0:
            first_field = request_object.properties()[0]
            first_parameter_name = get_proper_name(first_field.name, capitalize_first=True)
        elif ObjCParameter.create_id_parameter(api.url_path, request_object) is not None:
            first_parameter_name = "TheID"
        elif SwiftParameter.create_id_parameter(api.url_path, request_object) is not None:
            first_parameter_name = "TheID"

        return "{}With{}".format(method_name_string, first_parameter_name)
Ejemplo n.º 12
0
    def method_name(api):
        # First create camel cased name from snake case
        method_name_string = ""
        for part in re.split(r'[/_]+', api.url_path):
            if part in [":id", "theID"]:
                continue
            else:
                method_name_string += part.capitalize()

        first_parameter_name = "Success"
        request_object = iOSTemplateMethods.get_api_request_object(api)
        if request_object and len(request_object.properties()) > 0:
            first_field = request_object.properties()[0]
            first_parameter_name = get_proper_name(first_field.name,
                                                   capitalize_first=True)
        elif ObjCParameter.create_id_parameter(api.url_path,
                                               request_object) is not None:
            first_parameter_name = "TheID"
        elif SwiftParameter.create_id_parameter(api.url_path,
                                                request_object) is not None:
            first_parameter_name = "TheID"

        return "{}With{}".format(method_name_string, first_parameter_name)
Ejemplo n.º 13
0
    def test_get_swift_data_type(self):
        array_field = Field("message", ["string", "array"])
        self.assertEqual(SwiftParameter.get_swift_data_type(array_field), "Array")

        text_field = Field("title", ["string", "optional"])
        self.assertEqual(SwiftParameter.get_swift_data_type(text_field), "String")